mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-11 13:52:20 +00:00
35 lines
1.5 KiB
SQL
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;
|