Loggest thine Stuff
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
1.5 KiB

2 years ago
2 years ago
2 years ago
  1. package projects
  2. import (
  3. "context"
  4. "git.aiterp.net/stufflog3/stufflog3/entities"
  5. "git.aiterp.net/stufflog3/stufflog3/models"
  6. )
  7. type Repository interface {
  8. Find(ctx context.Context, scopeID, projectID int) (*entities.Project, error)
  9. List(ctx context.Context, scopeID int) ([]entities.Project, error)
  10. ListByTags(ctx context.Context, scopeID int, tags []string) ([]entities.Project, error)
  11. FetchProjects(ctx context.Context, scopeID int, ids ...int) ([]entities.Project, error)
  12. Insert(ctx context.Context, project entities.Project) (*entities.Project, error)
  13. Update(ctx context.Context, project entities.Project, update models.ProjectUpdate) error
  14. Delete(ctx context.Context, project entities.Project) error
  15. FetchRequirements(ctx context.Context, scopeID int, requirementIDs ...int) ([]entities.Requirement, []entities.RequirementStat, error)
  16. ListRequirementsByScope(ctx context.Context, scopeID int) ([]entities.Requirement, []entities.RequirementStat, error)
  17. ListRequirements(ctx context.Context, projectID int) ([]entities.Requirement, []entities.RequirementStat, error)
  18. CreateRequirement(ctx context.Context, requirement entities.Requirement) (*entities.Requirement, error)
  19. UpdateRequirement(ctx context.Context, requirement entities.Requirement, update models.RequirementUpdate) error
  20. DeleteRequirement(ctx context.Context, requirement entities.Requirement) error
  21. UpsertRequirementStat(ctx context.Context, stat entities.RequirementStat) error
  22. DeleteRequirementStat(ctx context.Context, stat entities.RequirementStat) error
  23. }