feat: implement bank accounts, branches, and banks modules with CRUD operations

- Added BankAccountsController, BankAccountsService, and related DTOs for managing bank accounts.
- Implemented BankBranchesController, BankBranchesService, and related DTOs for managing bank branches.
- Created BanksController and BanksService for retrieving bank information.
- Integrated Prisma for database operations across all modules.
- Added response mapping for consistent API responses.
This commit is contained in:
2025-12-24 21:24:59 +03:30
parent 89c57a69c1
commit cbe51b9343
105 changed files with 18512 additions and 11840 deletions
+54
View File
@@ -0,0 +1,54 @@
model User {
id Int @id @default(autoincrement())
mobileNumber String @unique @db.Char(11)
password String
firstName String
lastName String
roleId Int
createdAt DateTime @default(now()) @db.Timestamp(0)
deletedAt DateTime? @db.Timestamp(0)
updatedAt DateTime @updatedAt @db.Timestamp(0)
refreshTokens RefreshToken[]
role Role @relation("User_Role", fields: [roleId], references: [id], onUpdate: NoAction)
@@index([roleId], map: "Users_roleId_fkey")
@@map("Users")
}
model Role {
id Int @id @default(autoincrement())
name String @unique @db.VarChar(100)
description String? @db.Text
permissions Json?
createdAt DateTime @default(now()) @db.Timestamp(0)
updatedAt DateTime @updatedAt @db.Timestamp(0)
deletedAt DateTime? @db.Timestamp(0)
users User[] @relation("User_Role")
@@map("Roles")
}
model OtpCode {
id Int @id @default(autoincrement())
mobileNumber String @db.VarChar(20)
code String @db.VarChar(10)
used Boolean @default(false)
expiresAt DateTime @db.Timestamp(0)
createdAt DateTime @default(now()) @db.Timestamp(0)
@@index([mobileNumber])
@@map("Otp_Codes")
}
model RefreshToken {
id Int @id @default(autoincrement())
tokenHash String @db.VarChar(255)
userId Int
revoked Boolean @default(false)
expiresAt DateTime @db.Timestamp(0)
createdAt DateTime @default(now()) @db.Timestamp(0)
user User @relation(fields: [userId], references: [id])
@@index([userId])
@@map("Refresh_Tokens")
}