migration.sql 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /*
  2. Warnings:
  3. - You are about to drop the `plan` table. If the table is not empty, all the data it contains will be lost.
  4. - You are about to drop the `plan_variant` table. If the table is not empty, all the data it contains will be lost.
  5. - You are about to drop the `subscription` table. If the table is not empty, all the data it contains will be lost.
  6. */
  7. -- CreateEnum
  8. CREATE TYPE "ExercisePrivacy" AS ENUM ('PUBLIC', 'PRIVATE');
  9. -- CreateEnum
  10. CREATE TYPE "ExerciseAttributeNameEnum" AS ENUM ('MUSCLE_GROUP', 'EQUIPMENT', 'DIFFICULTY', 'MOVEMENT_TYPE');
  11. -- CreateEnum
  12. CREATE TYPE "ExerciseAttributeValueEnum" AS ENUM ('CHEST', 'BACK', 'SHOULDERS', 'ARMS', 'LEGS', 'CORE', 'BARBELL', 'DUMBBELL', 'BODYWEIGHT', 'MACHINE', 'BEGINNER', 'INTERMEDIATE', 'ADVANCED', 'PUSH', 'PULL', 'SQUAT', 'HINGE');
  13. -- DropForeignKey
  14. ALTER TABLE "plan_variant" DROP CONSTRAINT "plan_variant_planId_fkey";
  15. -- DropForeignKey
  16. ALTER TABLE "subscription" DROP CONSTRAINT "subscription_planVariantId_fkey";
  17. -- DropForeignKey
  18. ALTER TABLE "subscription" DROP CONSTRAINT "subscription_userId_fkey";
  19. -- AlterTable
  20. ALTER TABLE "user" ADD COLUMN "locale" TEXT DEFAULT 'fr';
  21. -- DropTable
  22. DROP TABLE "plan";
  23. -- DropTable
  24. DROP TABLE "plan_variant";
  25. -- DropTable
  26. DROP TABLE "subscription";
  27. -- CreateTable
  28. CREATE TABLE "exercises" (
  29. "id" TEXT NOT NULL,
  30. "coachId" TEXT,
  31. "privacy" "ExercisePrivacy" NOT NULL DEFAULT 'PUBLIC',
  32. "name" TEXT NOT NULL,
  33. "nameEn" TEXT,
  34. "introduction" TEXT,
  35. "introductionEn" TEXT,
  36. "description" TEXT,
  37. "descriptionEn" TEXT,
  38. "fullVideoUrl" TEXT,
  39. "fullVideoImageUrl" TEXT,
  40. "isArchived" BOOLEAN NOT NULL DEFAULT false,
  41. "slug" TEXT,
  42. "slugEn" TEXT,
  43. "metaTitle" TEXT,
  44. "metaTitleEn" TEXT,
  45. "metaDescription" TEXT,
  46. "metaDescriptionEn" TEXT,
  47. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  48. "updatedAt" TIMESTAMP(3) NOT NULL,
  49. "deletedAt" TIMESTAMP(3),
  50. CONSTRAINT "exercises_pkey" PRIMARY KEY ("id")
  51. );
  52. -- CreateTable
  53. CREATE TABLE "exercise_attribute_names" (
  54. "id" TEXT NOT NULL,
  55. "name" "ExerciseAttributeNameEnum" NOT NULL,
  56. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  57. "updatedAt" TIMESTAMP(3) NOT NULL,
  58. "deletedAt" TIMESTAMP(3),
  59. CONSTRAINT "exercise_attribute_names_pkey" PRIMARY KEY ("id")
  60. );
  61. -- CreateTable
  62. CREATE TABLE "exercise_attribute_values" (
  63. "id" TEXT NOT NULL,
  64. "attributeNameId" TEXT NOT NULL,
  65. "value" "ExerciseAttributeValueEnum" NOT NULL,
  66. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  67. "updatedAt" TIMESTAMP(3) NOT NULL,
  68. "deletedAt" TIMESTAMP(3),
  69. CONSTRAINT "exercise_attribute_values_pkey" PRIMARY KEY ("id")
  70. );
  71. -- CreateTable
  72. CREATE TABLE "exercise_attributes" (
  73. "id" TEXT NOT NULL,
  74. "exerciseId" TEXT NOT NULL,
  75. "attributeNameId" TEXT NOT NULL,
  76. "attributeValueId" TEXT NOT NULL,
  77. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  78. "updatedAt" TIMESTAMP(3) NOT NULL,
  79. "deletedAt" TIMESTAMP(3),
  80. CONSTRAINT "exercise_attributes_pkey" PRIMARY KEY ("id")
  81. );
  82. -- CreateIndex
  83. CREATE UNIQUE INDEX "exercises_slug_key" ON "exercises"("slug");
  84. -- CreateIndex
  85. CREATE UNIQUE INDEX "exercises_slugEn_key" ON "exercises"("slugEn");
  86. -- CreateIndex
  87. CREATE UNIQUE INDEX "exercise_attributes_exerciseId_attributeNameId_attributeVal_key" ON "exercise_attributes"("exerciseId", "attributeNameId", "attributeValueId");
  88. -- AddForeignKey
  89. ALTER TABLE "exercise_attribute_values" ADD CONSTRAINT "exercise_attribute_values_attributeNameId_fkey" FOREIGN KEY ("attributeNameId") REFERENCES "exercise_attribute_names"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  90. -- AddForeignKey
  91. ALTER TABLE "exercise_attributes" ADD CONSTRAINT "exercise_attributes_exerciseId_fkey" FOREIGN KEY ("exerciseId") REFERENCES "exercises"("id") ON DELETE CASCADE ON UPDATE CASCADE;
  92. -- AddForeignKey
  93. ALTER TABLE "exercise_attributes" ADD CONSTRAINT "exercise_attributes_attributeNameId_fkey" FOREIGN KEY ("attributeNameId") REFERENCES "exercise_attribute_names"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  94. -- AddForeignKey
  95. ALTER TABLE "exercise_attributes" ADD CONSTRAINT "exercise_attributes_attributeValueId_fkey" FOREIGN KEY ("attributeValueId") REFERENCES "exercise_attribute_values"("id") ON DELETE RESTRICT ON UPDATE CASCADE;