Ctrl K
ComunidadGuías…

migrations/008_task_schedule.sql

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
CREATE TABLE IF NOT EXISTS task_schedule (
  task_schedule_id text PRIMARY KEY,
  creator_person_id text REFERENCES person(person_id),
  name text NOT NULL,
  prompt text NOT NULL,
  execution_mode text NOT NULL DEFAULT 'agent' CHECK (execution_mode IN ('agent', 'message')),
  agent_profile_name text NOT NULL,
  schedule_kind text NOT NULL CHECK (schedule_kind IN ('once', 'interval', 'cron')),
  run_at timestamptz,
  interval_second integer,
  cron_expression text,
  next_run_at timestamptz,
  last_run_at timestamptz,
  last_task_run_id text REFERENCES task_run(task_run_id),
  is_paused boolean NOT NULL DEFAULT false,
  created_at timestamptz NOT NULL,
  updated_at timestamptz NOT NULL,
  CHECK (
    (schedule_kind = 'once' AND run_at IS NOT NULL AND interval_second IS NULL AND cron_expression IS NULL) OR
    (schedule_kind = 'interval' AND interval_second IS NOT NULL AND interval_second > 0 AND cron_expression IS NULL) OR
    (schedule_kind = 'cron' AND cron_expression IS NOT NULL AND interval_second IS NULL)
  )
);

CREATE INDEX IF NOT EXISTS task_schedule_next_run_at_index
  ON task_schedule (next_run_at)
  WHERE is_paused = false;