prisma
This commit is contained in:
parent
04e0200d8b
commit
d7870a8153
2
.env
2
.env
|
@ -4,4 +4,4 @@
|
|||
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
|
||||
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
|
||||
|
||||
DATABASE_URL="mysql://<username>:<password>@<url_bdd>:<port_bdd>/<nom_bdd>?schema=public"
|
||||
DATABASE_URL="mysql://monelia:monelia@localhost:3306/monelia?schema=public"
|
|
@ -31,7 +31,7 @@ yarn-error.log*
|
|||
.pnpm-debug.log*
|
||||
|
||||
# env files (can opt-in for committing if needed)
|
||||
#.env*
|
||||
.env*
|
||||
|
||||
# vercel
|
||||
.vercel
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
"name": "monelia-nails",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"@prisma/client": "^6.6.0",
|
||||
"next": "15.3.0",
|
||||
"prisma": "^6.6.0",
|
||||
"react": "^19.0.0",
|
||||
|
@ -1270,6 +1271,28 @@
|
|||
"node": ">=12.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@prisma/client": {
|
||||
"version": "6.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.6.0.tgz",
|
||||
"integrity": "sha512-vfp73YT/BHsWWOAuthKQ/1lBgESSqYqAWZEYyTdGXyFAHpmewwWL2Iz6ErIzkj4aHbuc6/cGSsE6ZY+pBO04Cg==",
|
||||
"hasInstallScript": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=18.18"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"prisma": "*",
|
||||
"typescript": ">=5.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"prisma": {
|
||||
"optional": true
|
||||
},
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@prisma/config": {
|
||||
"version": "6.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.6.0.tgz",
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
"lint": "next lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@prisma/client": "^6.6.0",
|
||||
"next": "15.3.0",
|
||||
"prisma": "^6.6.0",
|
||||
"react": "^19.0.0",
|
||||
|
|
|
@ -0,0 +1,130 @@
|
|||
-- CreateTable
|
||||
CREATE TABLE `Utilisateur` (
|
||||
`ut_id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`ut_nom` VARCHAR(191) NULL,
|
||||
`ut_prenom` VARCHAR(191) NULL,
|
||||
`ut_mail` VARCHAR(191) NULL,
|
||||
`ut_type_cliente` INTEGER NULL,
|
||||
`ut_age` DATETIME(3) NULL,
|
||||
`ut_nb_rdv` INTEGER NULL,
|
||||
`ut_nb_rdv_honores` INTEGER NULL,
|
||||
`ut_prix_moyen` INTEGER NULL,
|
||||
`ut_pdp` INTEGER NULL,
|
||||
`ut_panier` INTEGER NULL,
|
||||
`ut_mdp` INTEGER NULL,
|
||||
`ut_telephone` INTEGER NULL,
|
||||
`ut_date_inscription` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`ut_derniere_connexion` DATETIME(3) NULL,
|
||||
`ut_slug` VARCHAR(191) NULL,
|
||||
|
||||
PRIMARY KEY (`ut_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Formation` (
|
||||
`fo_id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`fo_titre` VARCHAR(191) NULL,
|
||||
`fo_description` VARCHAR(191) NULL,
|
||||
`fo_prix` VARCHAR(191) NULL,
|
||||
`fo_miniature` LONGBLOB NULL,
|
||||
`fo_teaser` VARCHAR(191) NULL,
|
||||
`fo_date_publication` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`fo_desactive` BOOLEAN NOT NULL DEFAULT false,
|
||||
`fo_slug` VARCHAR(191) NULL,
|
||||
|
||||
PRIMARY KEY (`fo_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Video` (
|
||||
`vi_fo_id` INTEGER NOT NULL,
|
||||
`vi_id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`vi_titre` VARCHAR(191) NULL,
|
||||
`vi_description` VARCHAR(191) NULL,
|
||||
`vi_etape` INTEGER NULL,
|
||||
`vi_url` VARCHAR(191) NULL,
|
||||
`vi_slug` VARCHAR(191) NULL,
|
||||
|
||||
PRIMARY KEY (`vi_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Commande` (
|
||||
`co_id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`co_utilisateur` INTEGER NOT NULL,
|
||||
`co_date_creation` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`co_date_update` DATETIME(3) NULL,
|
||||
`co_slug` VARCHAR(191) NULL,
|
||||
`co_status` VARCHAR(191) NOT NULL DEFAULT 'IN PROGRESS',
|
||||
|
||||
PRIMARY KEY (`co_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `CommandeFormation` (
|
||||
`cof_id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`cof_formation` INTEGER NOT NULL,
|
||||
`cof_slug` VARCHAR(191) NULL,
|
||||
|
||||
PRIMARY KEY (`cof_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Achat` (
|
||||
`ac_id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`ac_utilisateur` INTEGER NOT NULL,
|
||||
`ac_formation` INTEGER NOT NULL,
|
||||
`ac_type` VARCHAR(191) NULL,
|
||||
`ac_slug` VARCHAR(191) NULL,
|
||||
`ac_date_achat` DATETIME(3) NULL,
|
||||
`ac_date_fin` DATETIME(3) NULL,
|
||||
|
||||
PRIMARY KEY (`ac_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Tag` (
|
||||
`ta_id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`ta_titre` VARCHAR(191) NULL,
|
||||
`ta_slug` VARCHAR(191) NULL,
|
||||
|
||||
PRIMARY KEY (`ta_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `TagVideo` (
|
||||
`tv_tag_id` INTEGER NOT NULL,
|
||||
`tv_video_id` INTEGER NOT NULL,
|
||||
|
||||
PRIMARY KEY (`tv_tag_id`, `tv_video_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Session` (
|
||||
`ut_id` INTEGER NOT NULL,
|
||||
`createAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`expireAt` DATETIME(3) NULL,
|
||||
|
||||
PRIMARY KEY (`ut_id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Video` ADD CONSTRAINT `Video_vi_fo_id_fkey` FOREIGN KEY (`vi_fo_id`) REFERENCES `Formation`(`fo_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Commande` ADD CONSTRAINT `Commande_co_utilisateur_fkey` FOREIGN KEY (`co_utilisateur`) REFERENCES `Utilisateur`(`ut_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `CommandeFormation` ADD CONSTRAINT `CommandeFormation_cof_formation_fkey` FOREIGN KEY (`cof_formation`) REFERENCES `Formation`(`fo_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Achat` ADD CONSTRAINT `Achat_ac_utilisateur_fkey` FOREIGN KEY (`ac_utilisateur`) REFERENCES `Utilisateur`(`ut_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Achat` ADD CONSTRAINT `Achat_ac_formation_fkey` FOREIGN KEY (`ac_formation`) REFERENCES `Formation`(`fo_id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `TagVideo` ADD CONSTRAINT `TagVideo_tv_tag_id_fkey` FOREIGN KEY (`tv_tag_id`) REFERENCES `Tag`(`ta_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `TagVideo` ADD CONSTRAINT `TagVideo_tv_video_id_fkey` FOREIGN KEY (`tv_video_id`) REFERENCES `Video`(`vi_id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@ -0,0 +1,3 @@
|
|||
# Please do not edit this file manually
|
||||
# It should be added in your version-control system (e.g., Git)
|
||||
provider = "mysql"
|
|
@ -6,10 +6,107 @@
|
|||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
output = "../src/generated/prisma"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "mysql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model Utilisateur {
|
||||
ut_id Int @id @default(autoincrement())
|
||||
ut_nom String?
|
||||
ut_prenom String?
|
||||
ut_mail String?
|
||||
ut_type_cliente Int?
|
||||
ut_age DateTime?
|
||||
ut_nb_rdv Int?
|
||||
ut_nb_rdv_honores Int?
|
||||
ut_prix_moyen Int?
|
||||
ut_pdp Int?
|
||||
ut_panier Int?
|
||||
ut_mdp Int?
|
||||
ut_telephone Int?
|
||||
ut_date_inscription DateTime @default(now())
|
||||
ut_derniere_connexion DateTime?
|
||||
ut_slug String?
|
||||
commande Commande[]
|
||||
achat Achat[]
|
||||
}
|
||||
|
||||
model Formation {
|
||||
fo_id Int @id @default(autoincrement())
|
||||
fo_titre String?
|
||||
fo_description String?
|
||||
fo_prix String?
|
||||
fo_miniature Bytes?
|
||||
fo_teaser String?
|
||||
fo_date_publication DateTime @default(now())
|
||||
fo_desactive Boolean @default(false)
|
||||
fo_slug String?
|
||||
fo_video Video[]
|
||||
commandeFormation CommandeFormation[]
|
||||
achat Achat[]
|
||||
}
|
||||
|
||||
model Video{
|
||||
formation Formation @relation(fields: [vi_fo_id],references: [fo_id], onDelete: Cascade)
|
||||
vi_fo_id Int
|
||||
vi_id Int @id @default(autoincrement())
|
||||
vi_titre String?
|
||||
vi_description String?
|
||||
vi_etape Int?
|
||||
vi_url String?
|
||||
vi_slug String?
|
||||
vi_tv TagVideo[]
|
||||
}
|
||||
|
||||
model Commande{
|
||||
co_id Int @id @default(autoincrement())
|
||||
co_utilisateur Int
|
||||
utilisateur Utilisateur @relation(fields: [co_utilisateur],references: [ut_id])
|
||||
co_date_creation DateTime @default(now())
|
||||
co_date_update DateTime?
|
||||
co_slug String?
|
||||
co_status String @default("IN PROGRESS")
|
||||
}
|
||||
|
||||
model CommandeFormation{
|
||||
cof_id Int @id @default(autoincrement())
|
||||
cof_formation Int
|
||||
cof_slug String?
|
||||
formation Formation @relation(fields: [cof_formation],references: [fo_id])
|
||||
}
|
||||
|
||||
model Achat{
|
||||
ac_id Int @id @default(autoincrement())
|
||||
ac_utilisateur Int
|
||||
utilisateur Utilisateur @relation(fields: [ac_utilisateur],references: [ut_id])
|
||||
ac_formation Int
|
||||
formation Formation @relation(fields: [ac_formation],references: [fo_id])
|
||||
ac_type String?
|
||||
ac_slug String ?
|
||||
ac_date_achat DateTime?
|
||||
ac_date_fin DateTime?
|
||||
}
|
||||
|
||||
model Tag {
|
||||
ta_id Int @id @default(autoincrement())
|
||||
ta_titre String?
|
||||
ta_slug String?
|
||||
vi_tv TagVideo[]
|
||||
}
|
||||
|
||||
model TagVideo{
|
||||
@@id([tv_tag_id, tv_video_id])
|
||||
tv_tag_id Int
|
||||
tag Tag @relation(fields: [tv_tag_id],references: [ta_id], onDelete: Cascade)
|
||||
tv_video_id Int
|
||||
video Video @relation(fields: [tv_video_id],references: [vi_id], onDelete: Cascade)
|
||||
}
|
||||
|
||||
model Session{
|
||||
ut_id Int @id
|
||||
createAt DateTime @default(now())
|
||||
expireAt DateTime?
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
import { PrismaClient } from "@prisma/client"
|
||||
|
||||
const prismaClientSingleton = () => {
|
||||
return new PrismaClient()
|
||||
}
|
||||
|
||||
declare const globalThis:{
|
||||
prismaGlobal : ReturnType<typeof prismaClientSingleton>
|
||||
} & typeof global
|
||||
|
||||
const prisma = globalThis.prismaGlobal ?? prismaClientSingleton()
|
||||
|
||||
export default prisma
|
||||
|
||||
|
||||
if (process.env.NODE_ENV !== "production") globalThis.prismaGlobal = prisma;
|
Loading…
Reference in New Issue