diff --git a/eme-backend/prisma/migrations/20260604115251_add_infrastructure_models/migration.sql b/eme-backend/prisma/migrations/20260604115251_add_infrastructure_models/migration.sql new file mode 100644 index 0000000..2772d84 --- /dev/null +++ b/eme-backend/prisma/migrations/20260604115251_add_infrastructure_models/migration.sql @@ -0,0 +1,46 @@ +BEGIN TRY + +BEGIN TRAN; + +-- CreateTable +CREATE TABLE [dbo].[salle_pret] ( + [id] INT NOT NULL IDENTITY(1,1), + [nom] NVARCHAR(1000) NOT NULL, + [localisation] NVARCHAR(1000) NOT NULL, + [campus_id] INT NOT NULL, + [actif] BIT NOT NULL CONSTRAINT [salle_pret_actif_df] DEFAULT 1, + [created_at] DATETIME2 NOT NULL CONSTRAINT [salle_pret_created_at_df] DEFAULT CURRENT_TIMESTAMP, + [updated_at] DATETIME2 NOT NULL, + CONSTRAINT [salle_pret_pkey] PRIMARY KEY CLUSTERED ([id]) +); + +-- CreateTable +CREATE TABLE [dbo].[poste_emprunt] ( + [id] INT NOT NULL IDENTITY(1,1), + [nom] NVARCHAR(1000) NOT NULL, + [identifiant_poste] NVARCHAR(1000) NOT NULL, + [salle_pret_id] INT NOT NULL, + [actif] BIT NOT NULL CONSTRAINT [poste_emprunt_actif_df] DEFAULT 1, + [created_at] DATETIME2 NOT NULL CONSTRAINT [poste_emprunt_created_at_df] DEFAULT CURRENT_TIMESTAMP, + [updated_at] DATETIME2 NOT NULL, + CONSTRAINT [poste_emprunt_pkey] PRIMARY KEY CLUSTERED ([id]) +); + +-- AddForeignKey +ALTER TABLE [dbo].[salle_pret] ADD CONSTRAINT [salle_pret_campus_id_fkey] FOREIGN KEY ([campus_id]) REFERENCES [dbo].[campus]([id]) ON DELETE NO ACTION ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE [dbo].[poste_emprunt] ADD CONSTRAINT [poste_emprunt_salle_pret_id_fkey] FOREIGN KEY ([salle_pret_id]) REFERENCES [dbo].[salle_pret]([id]) ON DELETE NO ACTION ON UPDATE CASCADE; + +COMMIT TRAN; + +END TRY +BEGIN CATCH + +IF @@TRANCOUNT > 0 +BEGIN + ROLLBACK TRAN; +END; +THROW + +END CATCH diff --git a/eme-backend/prisma/schema.prisma b/eme-backend/prisma/schema.prisma index ac247d6..a269d4f 100644 --- a/eme-backend/prisma/schema.prisma +++ b/eme-backend/prisma/schema.prisma @@ -16,6 +16,7 @@ model Campus { createdAt DateTime @default(now()) @map("created_at") updatedAt DateTime @updatedAt @map("updated_at") utilisateurs Utilisateur[] + sallesPret SallePret[] @@map("campus") } @@ -58,3 +59,30 @@ model CategorieMateriel { @@map("categorie_materiel") } + +model SallePret { + id Int @id @default(autoincrement()) + nom String + localisation String + 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]) + postes PosteEmprunt[] + + @@map("salle_pret") +} + +model PosteEmprunt { + id Int @id @default(autoincrement()) + nom String + identifiantPoste String @map("identifiant_poste") + sallePretId Int @map("salle_pret_id") + actif Boolean @default(true) + createdAt DateTime @default(now()) @map("created_at") + updatedAt DateTime @updatedAt @map("updated_at") + sallePret SallePret @relation(fields: [sallePretId], references: [id]) + + @@map("poste_emprunt") +}