package projects import ( "context" "git.aiterp.net/stufflog3/stufflog3/entities" "git.aiterp.net/stufflog3/stufflog3/models" ) type Repository interface { Find(ctx context.Context, scopeID, projectID int) (*entities.Project, error) List(ctx context.Context, scopeID int) ([]entities.Project, error) ListByTags(ctx context.Context, scopeID int, tags []string) ([]entities.Project, error) FetchProjects(ctx context.Context, scopeID int, ids ...int) ([]entities.Project, error) Insert(ctx context.Context, project entities.Project) (*entities.Project, error) Update(ctx context.Context, project entities.Project, update models.ProjectUpdate) error Delete(ctx context.Context, project entities.Project) error FetchRequirements(ctx context.Context, scopeID int, requirementIDs ...int) ([]entities.Requirement, []entities.RequirementStat, error) ListRequirementsByScope(ctx context.Context, scopeID int) ([]entities.Requirement, []entities.RequirementStat, error) ListRequirements(ctx context.Context, projectID int) ([]entities.Requirement, []entities.RequirementStat, error) CreateRequirement(ctx context.Context, requirement entities.Requirement) (*entities.Requirement, error) UpdateRequirement(ctx context.Context, requirement entities.Requirement, update models.RequirementUpdate) error DeleteRequirement(ctx context.Context, requirement entities.Requirement) error UpsertRequirementStat(ctx context.Context, stat entities.RequirementStat) error DeleteRequirementStat(ctx context.Context, stat entities.RequirementStat) error }