package posts import ( "context" "lmika.dev/lmika/hugo-crm/models" "lmika.dev/lmika/hugo-crm/providers/db" "lmika.dev/lmika/hugo-crm/services/jobs" "lmika.dev/lmika/hugo-crm/services/sitebuilder" "time" ) type Service struct { db *db.DB sb *sitebuilder.Service jobs *jobs.Service } func New( db *db.DB, sb *sitebuilder.Service, jobs *jobs.Service, ) *Service { return &Service{ db: db, sb: sb, jobs: jobs, } } func (s *Service) ListPostOfSite(ctx context.Context, site models.Site) ([]models.Post, error) { return s.db.ListPostsOfSite(ctx, site.ID) } func (s *Service) Create(ctx context.Context, site models.Site, body string) (models.Post, error) { post := models.Post{ SiteID: site.ID, Body: body, State: models.PostStatePublished, PostDate: time.Now(), CreatedAt: time.Now(), } if err := s.db.InsertPost(ctx, &post); err != nil { return models.Post{}, err } return post, s.jobs.Queue(ctx, s.sb.WritePost(site, post)) }