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.

35 lines
1.6KB

  1. package store
  2. import (
  3. "context"
  4. "encoding/json"
  5. "time"
  6. "qctextbuilder/internal/domain"
  7. )
  8. type TemplateStore interface {
  9. UpsertTemplates(ctx context.Context, templates []domain.Template) error
  10. GetTemplateByID(ctx context.Context, id int64) (*domain.Template, error)
  11. ListTemplates(ctx context.Context) ([]domain.Template, error)
  12. SetTemplateManifestStatus(ctx context.Context, templateID int64, status string, onboarded bool) error
  13. }
  14. type ManifestStore interface {
  15. CreateManifest(ctx context.Context, manifest domain.TemplateManifest, fields []domain.TemplateField) error
  16. GetActiveManifestByTemplateID(ctx context.Context, templateID int64) (*domain.TemplateManifest, error)
  17. ListFieldsByManifestID(ctx context.Context, manifestID string) ([]domain.TemplateField, error)
  18. UpdateFields(ctx context.Context, manifestID string, fields []domain.TemplateField) error
  19. }
  20. type BuildStore interface {
  21. CreateBuild(ctx context.Context, build domain.SiteBuild) error
  22. GetBuildByID(ctx context.Context, id string) (*domain.SiteBuild, error)
  23. ListBuildsByStatuses(ctx context.Context, statuses []string, limit int) ([]domain.SiteBuild, error)
  24. MarkBuildSubmitted(ctx context.Context, buildID string, jobID int64, status string, qcResult json.RawMessage, startedAt time.Time) error
  25. UpdateBuildFromJob(ctx context.Context, buildID string, status string, siteID *int64, previewURL string, qcResult json.RawMessage, qcError json.RawMessage, finishedAt *time.Time) error
  26. UpdateBuildEditorURL(ctx context.Context, buildID string, editorURL string, qcResult json.RawMessage) error
  27. }
  28. type SettingsStore interface{}