Files
growqr-backend/drizzle/0010_mission_actions.sql
2026-06-06 03:25:29 +05:30

35 lines
1.6 KiB
SQL

CREATE TABLE IF NOT EXISTS "mission_actions" (
"id" text PRIMARY KEY DEFAULT gen_random_uuid()::text NOT NULL,
"user_id" text NOT NULL REFERENCES "users"("id") ON DELETE cascade,
"mission_instance_id" text NOT NULL REFERENCES "grow_active_missions"("instance_id") ON DELETE cascade,
"mission_id" text NOT NULL,
"stage_id" text,
"agent_id" text NOT NULL,
"agent_name" text NOT NULL,
"base_agent" text,
"service_id" text,
"tool_name" text,
"mode" text NOT NULL,
"status" text DEFAULT 'queued' NOT NULL,
"title" text NOT NULL,
"body" text NOT NULL,
"prompt" text,
"payload" jsonb DEFAULT '{}'::jsonb NOT NULL,
"result" jsonb,
"error" text,
"source_event_id" text REFERENCES "grow_events"("id") ON DELETE set null,
"idempotency_key" text,
"priority" integer DEFAULT 0 NOT NULL,
"urgency" text DEFAULT 'calm' NOT NULL,
"due_at" timestamp with time zone,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
"resolved_at" timestamp with time zone
);
CREATE INDEX IF NOT EXISTS "mission_actions_mission_idx" ON "mission_actions" ("user_id", "mission_instance_id", "status", "priority");
CREATE INDEX IF NOT EXISTS "mission_actions_user_idx" ON "mission_actions" ("user_id", "status", "updated_at");
CREATE INDEX IF NOT EXISTS "mission_actions_source_idx" ON "mission_actions" ("source_event_id");
CREATE INDEX IF NOT EXISTS "mission_actions_due_idx" ON "mission_actions" ("due_at");
CREATE UNIQUE INDEX IF NOT EXISTS "mission_actions_idempotency_idx" ON "mission_actions" ("idempotency_key");