package db

import (
	"context"
	"lmika.dev/lmika/hugo-cms/gen/sqlc/dbq"
	"lmika.dev/lmika/hugo-cms/models"
)

func (db *DB) InsertSite(ctx context.Context, site *models.Site) error {
	id, err := db.q.NewSite(ctx, dbq.NewSiteParams{
		Name:        site.Name,
		Title:       site.Title,
		OwnerUserID: site.OwnerUserID,
		Theme:       site.Theme,
		Props:       []byte("{}"),
	})
	if err != nil {
		return err
	}
	site.ID = id
	return nil
}

func (db *DB) GetSite(ctx context.Context, id int64) (models.Site, error) {
	site, err := db.q.GetSiteWithID(ctx, id)
	if err != nil {
		return models.Site{}, err
	}

	return models.Site{
		ID:          site.ID,
		OwnerUserID: site.OwnerUserID,
		Name:        site.Name,
		Title:       site.Title,
		Theme:       site.Theme,
	}, nil
}

func (db *DB) UpdateSite(ctx context.Context, site models.Site) error {
	return db.q.UpdateSite(ctx, dbq.UpdateSiteParams{
		ID:    site.ID,
		Name:  site.Name,
		Title: site.Title,
		Theme: site.Theme,
	})
}