Files
growqr-backend/drizzle/0009_mission_suggestions.sql
2026-06-05 00:40:28 +05:30

48 lines
2.2 KiB
SQL

CREATE TABLE IF NOT EXISTS "mission_suggestions" (
"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,
"role" text NOT NULL,
"type" text NOT NULL,
"title" text NOT NULL,
"body" text NOT NULL,
"reason" text,
"priority" integer DEFAULT 0 NOT NULL,
"urgency" text DEFAULT 'calm' NOT NULL,
"status" text DEFAULT 'active' NOT NULL,
"cta_label" text NOT NULL,
"cta_href" text NOT NULL,
"source_refs" jsonb DEFAULT '{}'::jsonb NOT NULL,
"generated_by" text DEFAULT 'deterministic' NOT NULL,
"expires_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
);
CREATE INDEX IF NOT EXISTS "mission_suggestions_mission_idx" ON "mission_suggestions" ("user_id", "mission_instance_id", "status", "priority");
CREATE INDEX IF NOT EXISTS "mission_suggestions_role_idx" ON "mission_suggestions" ("mission_instance_id", "role", "status");
CREATE INDEX IF NOT EXISTS "mission_suggestions_expiry_idx" ON "mission_suggestions" ("expires_at");
CREATE TABLE IF NOT EXISTS "mission_coach_runs" (
"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,
"status" text DEFAULT 'running' NOT NULL,
"window_start" timestamp with time zone NOT NULL,
"window_end" timestamp with time zone NOT NULL,
"summary" text,
"input_digest" jsonb DEFAULT '{}'::jsonb NOT NULL,
"output" jsonb DEFAULT '{}'::jsonb NOT NULL,
"model" text,
"prompt_version" text DEFAULT 'mission-coach-v1' NOT NULL,
"skill_version" text,
"error" text,
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
"completed_at" timestamp with time zone
);
CREATE INDEX IF NOT EXISTS "mission_coach_runs_mission_idx" ON "mission_coach_runs" ("user_id", "mission_instance_id", "created_at");