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.

48 line
2.1KB

  1. package store
  2. import (
  3. "context"
  4. "encoding/json"
  5. "errors"
  6. "time"
  7. "qctextbuilder/internal/domain"
  8. )
  9. var ErrNotFound = errors.New("not found")
  10. type TemplateStore interface {
  11. UpsertTemplates(ctx context.Context, templates []domain.Template) error
  12. GetTemplateByID(ctx context.Context, id int64) (*domain.Template, error)
  13. ListTemplates(ctx context.Context) ([]domain.Template, error)
  14. SetTemplateManifestStatus(ctx context.Context, templateID int64, status string, onboarded bool) error
  15. }
  16. type ManifestStore interface {
  17. CreateManifest(ctx context.Context, manifest domain.TemplateManifest, fields []domain.TemplateField) error
  18. GetActiveManifestByTemplateID(ctx context.Context, templateID int64) (*domain.TemplateManifest, error)
  19. ListFieldsByManifestID(ctx context.Context, manifestID string) ([]domain.TemplateField, error)
  20. UpdateFields(ctx context.Context, manifestID string, fields []domain.TemplateField) error
  21. }
  22. type BuildStore interface {
  23. CreateBuild(ctx context.Context, build domain.SiteBuild) error
  24. GetBuildByID(ctx context.Context, id string) (*domain.SiteBuild, error)
  25. ListBuildsByStatuses(ctx context.Context, statuses []string, limit int) ([]domain.SiteBuild, error)
  26. MarkBuildSubmitted(ctx context.Context, buildID string, jobID int64, status string, qcResult json.RawMessage, startedAt time.Time) error
  27. UpdateBuildFromJob(ctx context.Context, buildID string, status string, siteID *int64, previewURL string, qcResult json.RawMessage, qcError json.RawMessage, finishedAt *time.Time) error
  28. UpdateBuildEditorURL(ctx context.Context, buildID string, editorURL string, qcResult json.RawMessage) error
  29. }
  30. type SettingsStore interface {
  31. UpsertSettings(ctx context.Context, settings domain.AppSettings) error
  32. GetSettings(ctx context.Context) (*domain.AppSettings, error)
  33. }
  34. type DraftStore interface {
  35. CreateDraft(ctx context.Context, draft domain.BuildDraft) error
  36. UpdateDraft(ctx context.Context, draft domain.BuildDraft) error
  37. GetDraftByID(ctx context.Context, id string) (*domain.BuildDraft, error)
  38. ListDrafts(ctx context.Context, limit int) ([]domain.BuildDraft, error)
  39. }