48 lines
2.2 KiB
SQL
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");
|