package store import ( "context" "time" "switchboard-core/models" ) // ScheduledTaskStore manages user-created cron-scheduled Starlark scripts. type ScheduledTaskStore interface { // CRUD Create(ctx context.Context, t *models.ScheduledTask) error GetByID(ctx context.Context, id string) (*models.ScheduledTask, error) Update(ctx context.Context, t *models.ScheduledTask) error Delete(ctx context.Context, id string) error // Queries List(ctx context.Context, opts ScheduledTaskListOptions) ([]models.ScheduledTask, int, error) ListByCreator(ctx context.Context, creatorID string) ([]models.ScheduledTask, error) ListEnabled(ctx context.Context) ([]models.ScheduledTask, error) // Lifecycle SetEnabled(ctx context.Context, id string, enabled bool) error UpdateFireState(ctx context.Context, id string, lastFireAt time.Time, nextFireAt *time.Time, lastError string, durationMs int) error } // ScheduledTaskListOptions provides filtering for scheduled task list queries. type ScheduledTaskListOptions struct { ListOptions CreatorID string Enabled *bool }