88 lines
2.6 KiB
SQL
88 lines
2.6 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "users" (
|
|
"id" TEXT NOT NULL,
|
|
"name" VARCHAR NOT NULL,
|
|
"role" VARCHAR NOT NULL,
|
|
"coach_id" TEXT,
|
|
"created_at" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "activity_logs" (
|
|
"id" SERIAL NOT NULL,
|
|
"timestamp" TIMESTAMP(6),
|
|
"status" VARCHAR,
|
|
"confidence" VARCHAR,
|
|
"details" JSONB,
|
|
"user_id" TEXT,
|
|
|
|
CONSTRAINT "activity_logs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "training_menus" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" VARCHAR,
|
|
"exercises" JSONB,
|
|
"created_at" TIMESTAMP(6),
|
|
"author_id" TEXT,
|
|
"client_id" TEXT,
|
|
|
|
CONSTRAINT "training_menus_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "user_recaps" (
|
|
"id" SERIAL NOT NULL,
|
|
"menu_id" INTEGER,
|
|
"user_id" TEXT,
|
|
"summary" JSONB,
|
|
"completed_at" TIMESTAMP(6),
|
|
|
|
CONSTRAINT "user_recaps_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ix_users_id" ON "users"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ix_users_coach_id" ON "users"("coach_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ix_activity_logs_id" ON "activity_logs"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ix_training_menus_id" ON "training_menus"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ix_training_menus_name" ON "training_menus"("name");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ix_training_menus_author_id" ON "training_menus"("author_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ix_user_recaps_id" ON "user_recaps"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "ix_user_recaps_user_id" ON "user_recaps"("user_id");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "users" ADD CONSTRAINT "users_coach_id_fkey" FOREIGN KEY ("coach_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "activity_logs" ADD CONSTRAINT "activity_logs_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "training_menus" ADD CONSTRAINT "training_menus_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE NO ACTION;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "training_menus" ADD CONSTRAINT "training_menus_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE NO ACTION;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "user_recaps" ADD CONSTRAINT "user_recaps_menu_id_fkey" FOREIGN KEY ("menu_id") REFERENCES "training_menus"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "user_recaps" ADD CONSTRAINT "user_recaps_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|