Files
HealthLog/prisma/migrations/0262_workout_insight_generation_claims/migration.sql
T

35 lines
1.5 KiB
SQL

-- Durable single-spend ownership and local-day capacity reservations for
-- per-workout Activity Insight generation. Existing insight rows remain valid
-- and are counted by the worker until a claim row exists for their workout.
CREATE TABLE "workout_insight_generation_claims" (
"id" TEXT NOT NULL,
"user_id" TEXT NOT NULL,
"workout_id" TEXT NOT NULL,
"local_date" TEXT NOT NULL,
"claim_id" TEXT,
"claimed_at" TIMESTAMP(3),
"provider_invoked_at" TIMESTAMP(3),
"completed_at" TIMESTAMP(3),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "workout_insight_generation_claims_pkey" PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "workout_insight_generation_claims_workout_id_key"
ON "workout_insight_generation_claims"("workout_id");
CREATE UNIQUE INDEX "workout_insight_generation_claims_claim_id_key"
ON "workout_insight_generation_claims"("claim_id");
CREATE INDEX "workout_insight_generation_claims_user_id_local_date_idx"
ON "workout_insight_generation_claims"("user_id", "local_date");
ALTER TABLE "workout_insight_generation_claims"
ADD CONSTRAINT "workout_insight_generation_claims_user_id_fkey"
FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "workout_insight_generation_claims"
ADD CONSTRAINT "workout_insight_generation_claims_workout_id_fkey"
FOREIGN KEY ("workout_id") REFERENCES "workouts"("id") ON DELETE CASCADE ON UPDATE CASCADE;