feat(db): add 4 reference models with initial migrations

This commit is contained in:
SaidSoighiri94
2026-06-04 13:31:33 +02:00
parent bb93245fa4
commit a1591a22a6
6 changed files with 200 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
PORT=3000
NODE_ENV=development
FRONTEND_URL=http://localhost:8080
DATABASE_URL="sqlserver://localhost:1433;database=eme_db;user=sa;password=YourStrongPassword123!;encrypt=true;trustServerCertificate=true"
DB_SERVER=localhost
DB_PORT=1433
DB_NAME=eme_db
DB_USER=sa
DB_PASSWORD=YourStrongPassword123!
AZURE_TENANT_ID=
AZURE_CLIENT_ID=
@@ -0,0 +1,71 @@
BEGIN TRY
BEGIN TRAN;
-- CreateTable
CREATE TABLE [dbo].[campus] (
[id] INT NOT NULL IDENTITY(1,1),
[nom] NVARCHAR(1000) NOT NULL,
[adresse] NVARCHAR(1000) NOT NULL,
[ville] NVARCHAR(1000) NOT NULL,
[code_postal] NVARCHAR(1000) NOT NULL,
[actif] BIT NOT NULL,
[created_at] DATETIME2 NOT NULL,
[updated_at] DATETIME2 NOT NULL,
CONSTRAINT [campus_pkey] PRIMARY KEY CLUSTERED ([id])
);
-- CreateTable
CREATE TABLE [dbo].[role] (
[id] INT NOT NULL IDENTITY(1,1),
[code] NVARCHAR(1000) NOT NULL,
[libelle] NVARCHAR(1000) NOT NULL,
[description] NVARCHAR(1000) NOT NULL,
CONSTRAINT [role_pkey] PRIMARY KEY CLUSTERED ([id])
);
-- CreateTable
CREATE TABLE [dbo].[utilisateur] (
[id] INT NOT NULL IDENTITY(1,1),
[microsoft_id] NVARCHAR(1000) NOT NULL,
[nom] NVARCHAR(1000) NOT NULL,
[prenom] NVARCHAR(1000) NOT NULL,
[email] NVARCHAR(1000) NOT NULL,
[classe] NVARCHAR(1000) NOT NULL,
[role_id] INT NOT NULL,
[campus_id] INT NOT NULL,
[actif] BIT NOT NULL,
[created_at] DATETIME2 NOT NULL,
[updated_at] DATETIME2 NOT NULL,
CONSTRAINT [utilisateur_pkey] PRIMARY KEY CLUSTERED ([id])
);
-- CreateTable
CREATE TABLE [dbo].[categorie_materiel] (
[id] INT NOT NULL IDENTITY(1,1),
[nom] NVARCHAR(1000) NOT NULL,
[description] NVARCHAR(1000) NOT NULL,
[actif] BIT NOT NULL,
[created_at] DATETIME2 NOT NULL,
[updated_at] DATETIME2 NOT NULL,
CONSTRAINT [categorie_materiel_pkey] PRIMARY KEY CLUSTERED ([id])
);
-- AddForeignKey
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_role_id_fkey] FOREIGN KEY ([role_id]) REFERENCES [dbo].[role]([id]) ON DELETE NO ACTION ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_campus_id_fkey] FOREIGN KEY ([campus_id]) REFERENCES [dbo].[campus]([id]) ON DELETE NO ACTION ON UPDATE CASCADE;
COMMIT TRAN;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRAN;
END;
THROW
END CATCH
@@ -0,0 +1,25 @@
BEGIN TRY
BEGIN TRAN;
-- AlterTable
ALTER TABLE [dbo].[campus] ADD CONSTRAINT [campus_actif_df] DEFAULT 1 FOR [actif], CONSTRAINT [campus_created_at_df] DEFAULT CURRENT_TIMESTAMP FOR [created_at];
-- AlterTable
ALTER TABLE [dbo].[categorie_materiel] ADD CONSTRAINT [categorie_materiel_actif_df] DEFAULT 1 FOR [actif], CONSTRAINT [categorie_materiel_created_at_df] DEFAULT CURRENT_TIMESTAMP FOR [created_at];
-- AlterTable
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_actif_df] DEFAULT 1 FOR [actif], CONSTRAINT [utilisateur_created_at_df] DEFAULT CURRENT_TIMESTAMP FOR [created_at];
COMMIT TRAN;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRAN;
END;
THROW
END CATCH
@@ -0,0 +1,28 @@
BEGIN TRY
BEGIN TRAN;
-- AlterTable
ALTER TABLE [dbo].[utilisateur] ALTER COLUMN [classe] NVARCHAR(1000) NULL;
-- CreateIndex
ALTER TABLE [dbo].[role] ADD CONSTRAINT [role_code_key] UNIQUE NONCLUSTERED ([code]);
-- CreateIndex
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_microsoft_id_key] UNIQUE NONCLUSTERED ([microsoft_id]);
-- CreateIndex
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_email_key] UNIQUE NONCLUSTERED ([email]);
COMMIT TRAN;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRAN;
END;
THROW
END CATCH
@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "mssql"
+60
View File
@@ -0,0 +1,60 @@
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlserver"
}
model Campus {
id Int @id @default(autoincrement())
nom String
adresse String
ville String
codePostal String @map("code_postal")
actif Boolean @default(true)
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
utilisateurs Utilisateur[]
@@map("campus")
}
model Role {
id Int @id @default(autoincrement())
code String @unique
libelle String
description String
utilisateurs Utilisateur[]
@@map("role")
}
model Utilisateur {
id Int @id @default(autoincrement())
microsoftId String @unique @map("microsoft_id")
nom String
prenom String
email String @unique
classe String?
roleId Int @map("role_id")
campusId Int @map("campus_id")
actif Boolean @default(true)
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
campus Campus @relation(fields: [campusId], references: [id])
role Role @relation(fields: [roleId], references: [id])
@@map("utilisateur")
}
model CategorieMateriel {
id Int @id @default(autoincrement())
nom String
description String
actif Boolean @default(true)
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
@@map("categorie_materiel")
}