package repository

import "github.com/ajaxray/geek-life/model"

// ProjectRepository interface defines methods of project data accessor
type ProjectRepository interface {
	GetAll(ctx *model.UserContext) ([]model.Project, error)
	GetByID(ctx *model.UserContext, id int64) (model.Project, error)
	GetByTitle(ctx *model.UserContext, title string) (model.Project, error)
	GetByUUID(ctx *model.UserContext, UUID string) (model.Project, error)
	Create(ctx *model.UserContext, title, UUID string) (model.Project, error)
	Update(ctx *model.UserContext, p *model.Project) error
	UpdateField(ctx *model.UserContext, p *model.Project, field string, value interface{}) error
	Delete(ctx *model.UserContext, p *model.Project) error
}
