package storage import ( "context" "encoding/json" "github.com/jackc/pgx/v5/pgxpool" "github.com/nomadcode/nomadcode-core/internal/db" ) type Task = db.Task type Store struct { queries *db.Queries } func NewStore(pool *pgxpool.Pool) *Store { return &Store{queries: db.New(pool)} } func (s *Store) CreateTask(ctx context.Context, title, source string, payload json.RawMessage) (db.Task, error) { return s.queries.CreateTask(ctx, db.CreateTaskParams{ Title: title, Source: source, Payload: payload, }) } func (s *Store) GetTask(ctx context.Context, id string) (db.Task, error) { return s.queries.GetTask(ctx, id) } func (s *Store) ListTasks(ctx context.Context, limit int32) ([]db.Task, error) { return s.queries.ListTasks(ctx, limit) } func (s *Store) UpdateStatus(ctx context.Context, id, status string) (db.Task, error) { return s.queries.UpdateTaskStatus(ctx, db.UpdateTaskStatusParams{ ID: id, Status: status, }) } func (s *Store) CompleteTask(ctx context.Context, id string, result json.RawMessage) (db.Task, error) { return s.queries.CompleteTask(ctx, db.CompleteTaskParams{ ID: id, Result: result, }) } func (s *Store) FailTask(ctx context.Context, id, message string) (db.Task, error) { return s.queries.FailTask(ctx, db.FailTaskParams{ ID: id, Error: &message, }) }