package models import ( "context" "database/sql" . "github.com/go-jet/jet/v2/postgres" "screenmark/screenmark/.gen/haystack/haystack/model" . "screenmark/screenmark/.gen/haystack/haystack/table" "github.com/google/uuid" ) type ListModel struct { dbPool *sql.DB } func (m ListModel) Save(ctx context.Context, userId uuid.UUID, name string, description string) (model.Lists, error) { stmt := Lists.INSERT(Lists.UserID, Lists.Name, Lists.Description). VALUES(userId, name, description). RETURNING(Lists.ID, Lists.Name, Lists.Description) newList := model.Lists{} err := stmt.QueryContext(ctx, m.dbPool, &newList) return newList, err } func (m ListModel) List(ctx context.Context, userId uuid.UUID) ([]model.Lists, error) { stmt := Lists.SELECT(Lists.AllColumns). WHERE(Lists.UserID.EQ(UUID(userId))) lists := []model.Lists{} err := stmt.QueryContext(ctx, m.dbPool, &lists) return lists, err } func (m ListModel) SaveInto(ctx context.Context, listId uuid.UUID, imageId uuid.UUID) error { stmt := ImageLists.INSERT(ImageLists.ListID, ImageLists.ImageID). VALUES(listId, imageId) _, err := stmt.ExecContext(ctx, m.dbPool) return err } func NewListModel(db *sql.DB) ListModel { return ListModel{dbPool: db} }