From dfa73cdab0f378a6105ad1ec4a30788a0e41ceee Mon Sep 17 00:00:00 2001 From: SaidSoighiri94 Date: Thu, 4 Jun 2026 14:03:32 +0200 Subject: [PATCH] feat(db): add CarteEtudiante model --- .../migration.sql | 32 +++++++++++++++++++ eme-backend/prisma/schema.prisma | 19 +++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 eme-backend/prisma/migrations/20260604120227_add_carte_etudiante/migration.sql diff --git a/eme-backend/prisma/migrations/20260604120227_add_carte_etudiante/migration.sql b/eme-backend/prisma/migrations/20260604120227_add_carte_etudiante/migration.sql new file mode 100644 index 0000000..1c2643e --- /dev/null +++ b/eme-backend/prisma/migrations/20260604120227_add_carte_etudiante/migration.sql @@ -0,0 +1,32 @@ +BEGIN TRY + +BEGIN TRAN; + +-- CreateTable +CREATE TABLE [dbo].[carte_etudiante] ( + [id] INT NOT NULL IDENTITY(1,1), + [utilisateur_id] INT NOT NULL, + [qr_code] NVARCHAR(1000) NOT NULL, + [date_activation] DATETIME2 NOT NULL, + [date_expiration] DATETIME2 NOT NULL, + [actif] BIT NOT NULL CONSTRAINT [carte_etudiante_actif_df] DEFAULT 1, + [created_at] DATETIME2 NOT NULL CONSTRAINT [carte_etudiante_created_at_df] DEFAULT CURRENT_TIMESTAMP, + [updated_at] DATETIME2 NOT NULL, + CONSTRAINT [carte_etudiante_pkey] PRIMARY KEY CLUSTERED ([id]) +); + +-- AddForeignKey +ALTER TABLE [dbo].[carte_etudiante] ADD CONSTRAINT [carte_etudiante_utilisateur_id_fkey] FOREIGN KEY ([utilisateur_id]) REFERENCES [dbo].[utilisateur]([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 a269d4f..a5edd21 100644 --- a/eme-backend/prisma/schema.prisma +++ b/eme-backend/prisma/schema.prisma @@ -43,8 +43,9 @@ model Utilisateur { 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]) + campus Campus @relation(fields: [campusId], references: [id]) + role Role @relation(fields: [roleId], references: [id]) + cartes CarteEtudiante[] @@map("utilisateur") } @@ -86,3 +87,17 @@ model PosteEmprunt { @@map("poste_emprunt") } + +model CarteEtudiante { + id Int @id @default(autoincrement()) + utilisateurId Int @map("utilisateur_id") + qrCode String @map("qr_code") + dateActivation DateTime @map("date_activation") + dateExpiration DateTime @map("date_expiration") + actif Boolean @default(true) + createdAt DateTime @default(now()) @map("created_at") + updatedAt DateTime @updatedAt @map("updated_at") + utilisateur Utilisateur @relation(fields: [utilisateurId], references: [id]) + + @@map("carte_etudiante") +}