diff --git a/src/app/api/idnot/UserController.ts b/src/app/api/idnot/UserController.ts index 7c574a83..24863fff 100644 --- a/src/app/api/idnot/UserController.ts +++ b/src/app/api/idnot/UserController.ts @@ -49,7 +49,6 @@ export default class UserController extends ApiController { //success this.httpSuccess(response, { accessToken, refreshToken }); } catch (error) { - console.log(error) this.httpInternalError(response); return; } diff --git a/src/app/api/super-admin/RulesController.ts b/src/app/api/super-admin/RulesController.ts index fe7e4ee3..84038796 100644 --- a/src/app/api/super-admin/RulesController.ts +++ b/src/app/api/super-admin/RulesController.ts @@ -49,8 +49,8 @@ export default class RulesController extends ApiController { const ruleEntity = Rule.hydrate(req.body); //validate rule - await validateOrReject(ruleEntity, { groups: ["createRule"] }); - + await validateOrReject(ruleEntity, {groups: ["createRule"]}); + //call service to get prisma entity const ruleEntityCreated = await this.rulesService.create(ruleEntity); diff --git a/src/app/index.ts b/src/app/index.ts index f23a9a7d..9848d5c1 100644 --- a/src/app/index.ts +++ b/src/app/index.ts @@ -11,7 +11,7 @@ import DocumentTypesController from "./api/super-admin/DocumentTypesController"; import IdNotUserController from "./api/idnot/UserController"; import DocumentsControllerCustomer from "./api/customer/DocumentsController"; import FilesController from "./api/super-admin/FilesController"; -import RulesController from "./api/super-admin/RolesController"; +import RulesController from "./api/super-admin/RulesController"; import RolesController from "./api/super-admin/RolesController"; diff --git a/src/app/middlewares/AuthHandler.ts b/src/app/middlewares/AuthHandler.ts index 549cfe1f..3ab26600 100644 --- a/src/app/middlewares/AuthHandler.ts +++ b/src/app/middlewares/AuthHandler.ts @@ -18,7 +18,6 @@ export default function authHandler(req: Request, response: Response, next: Next response.sendStatus(HttpCodes.UNAUTHORIZED); return; } - console.log(userPayload); req.body.user = userPayload next(); }); diff --git a/src/common/databases/migrations/20230628100711_v7/migration.sql b/src/common/databases/migrations/20230628100711_v7/migration.sql new file mode 100644 index 00000000..4d8f4bf3 --- /dev/null +++ b/src/common/databases/migrations/20230628100711_v7/migration.sql @@ -0,0 +1,144 @@ +/* + Warnings: + + - You are about to drop the `deed_has_document_types` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `deed_type_has_document_types` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `office_folder_has_customers` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `office_folder_has_stakeholder` table. If the table is not empty, all the data it contains will be lost. + - You are about to drop the `user_has_notifications` table. If the table is not empty, all the data it contains will be lost. + +*/ +-- DropForeignKey +ALTER TABLE "deed_has_document_types" DROP CONSTRAINT "deed_has_document_types_deed_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "deed_has_document_types" DROP CONSTRAINT "deed_has_document_types_document_type_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "deed_type_has_document_types" DROP CONSTRAINT "deed_type_has_document_types_deed_type_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "deed_type_has_document_types" DROP CONSTRAINT "deed_type_has_document_types_document_type_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "office_folder_has_customers" DROP CONSTRAINT "office_folder_has_customers_customer_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "office_folder_has_customers" DROP CONSTRAINT "office_folder_has_customers_office_folder_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "office_folder_has_stakeholder" DROP CONSTRAINT "office_folder_has_stakeholder_office_folder_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "office_folder_has_stakeholder" DROP CONSTRAINT "office_folder_has_stakeholder_user_stakeholder_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "user_has_notifications" DROP CONSTRAINT "user_has_notifications_notification_uid_fkey"; + +-- DropForeignKey +ALTER TABLE "user_has_notifications" DROP CONSTRAINT "user_has_notifications_user_uid_fkey"; + +-- DropTable +DROP TABLE "deed_has_document_types"; + +-- DropTable +DROP TABLE "deed_type_has_document_types"; + +-- DropTable +DROP TABLE "office_folder_has_customers"; + +-- DropTable +DROP TABLE "office_folder_has_stakeholder"; + +-- DropTable +DROP TABLE "user_has_notifications"; + +-- CreateTable +CREATE TABLE "_OfficeFolderHasCustomers" ( + "A" TEXT NOT NULL, + "B" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "_UserHasNotifications" ( + "A" TEXT NOT NULL, + "B" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "_OfficeFolderHasStakeholders" ( + "A" TEXT NOT NULL, + "B" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "_DeedHasDocumentTypes" ( + "A" TEXT NOT NULL, + "B" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "_DeedTypeHasDocumentTypes" ( + "A" TEXT NOT NULL, + "B" TEXT NOT NULL +); + +-- CreateIndex +CREATE UNIQUE INDEX "_OfficeFolderHasCustomers_AB_unique" ON "_OfficeFolderHasCustomers"("A", "B"); + +-- CreateIndex +CREATE INDEX "_OfficeFolderHasCustomers_B_index" ON "_OfficeFolderHasCustomers"("B"); + +-- CreateIndex +CREATE UNIQUE INDEX "_UserHasNotifications_AB_unique" ON "_UserHasNotifications"("A", "B"); + +-- CreateIndex +CREATE INDEX "_UserHasNotifications_B_index" ON "_UserHasNotifications"("B"); + +-- CreateIndex +CREATE UNIQUE INDEX "_OfficeFolderHasStakeholders_AB_unique" ON "_OfficeFolderHasStakeholders"("A", "B"); + +-- CreateIndex +CREATE INDEX "_OfficeFolderHasStakeholders_B_index" ON "_OfficeFolderHasStakeholders"("B"); + +-- CreateIndex +CREATE UNIQUE INDEX "_DeedHasDocumentTypes_AB_unique" ON "_DeedHasDocumentTypes"("A", "B"); + +-- CreateIndex +CREATE INDEX "_DeedHasDocumentTypes_B_index" ON "_DeedHasDocumentTypes"("B"); + +-- CreateIndex +CREATE UNIQUE INDEX "_DeedTypeHasDocumentTypes_AB_unique" ON "_DeedTypeHasDocumentTypes"("A", "B"); + +-- CreateIndex +CREATE INDEX "_DeedTypeHasDocumentTypes_B_index" ON "_DeedTypeHasDocumentTypes"("B"); + +-- AddForeignKey +ALTER TABLE "_OfficeFolderHasCustomers" ADD CONSTRAINT "_OfficeFolderHasCustomers_A_fkey" FOREIGN KEY ("A") REFERENCES "customers"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_OfficeFolderHasCustomers" ADD CONSTRAINT "_OfficeFolderHasCustomers_B_fkey" FOREIGN KEY ("B") REFERENCES "office_folders"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_UserHasNotifications" ADD CONSTRAINT "_UserHasNotifications_A_fkey" FOREIGN KEY ("A") REFERENCES "notifications"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_UserHasNotifications" ADD CONSTRAINT "_UserHasNotifications_B_fkey" FOREIGN KEY ("B") REFERENCES "users"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_OfficeFolderHasStakeholders" ADD CONSTRAINT "_OfficeFolderHasStakeholders_A_fkey" FOREIGN KEY ("A") REFERENCES "office_folders"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_OfficeFolderHasStakeholders" ADD CONSTRAINT "_OfficeFolderHasStakeholders_B_fkey" FOREIGN KEY ("B") REFERENCES "users"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_DeedHasDocumentTypes" ADD CONSTRAINT "_DeedHasDocumentTypes_A_fkey" FOREIGN KEY ("A") REFERENCES "deed"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_DeedHasDocumentTypes" ADD CONSTRAINT "_DeedHasDocumentTypes_B_fkey" FOREIGN KEY ("B") REFERENCES "document_types"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_DeedTypeHasDocumentTypes" ADD CONSTRAINT "_DeedTypeHasDocumentTypes_A_fkey" FOREIGN KEY ("A") REFERENCES "deed_types"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_DeedTypeHasDocumentTypes" ADD CONSTRAINT "_DeedTypeHasDocumentTypes_B_fkey" FOREIGN KEY ("B") REFERENCES "document_types"("uid") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/src/common/databases/schema.prisma b/src/common/databases/schema.prisma index 6fb4da16..35e7d73c 100644 --- a/src/common/databases/schema.prisma +++ b/src/common/databases/schema.prisma @@ -50,20 +50,20 @@ model Contacts { } model Users { - uid String @id @unique @default(uuid()) @map("uid") - idNot String @unique @db.VarChar(255) - contact Contacts @relation(fields: [contact_uid], references: [uid], onDelete: Cascade) - contact_uid String @unique @db.VarChar(255) - role Roles @relation(fields: [roles_uid], references: [uid], onDelete: Cascade) - roles_uid String @db.VarChar(255) - office_role OfficeRoles? @relation(fields: [office_role_uid], references: [uid], onDelete: Cascade) - office_role_uid String? @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - office_membership Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) - office_uid String @db.VarChar(255) - user_has_notifications UserHasNotifications[] - office_folder_has_stakeholder OfficeFolderHasStakeholders[] + uid String @id @unique @default(uuid()) @map("uid") + idNot String @unique @db.VarChar(255) + contact Contacts @relation(fields: [contact_uid], references: [uid], onDelete: Cascade) + contact_uid String @unique @db.VarChar(255) + role Roles @relation(fields: [roles_uid], references: [uid], onDelete: Cascade) + roles_uid String @db.VarChar(255) + office_role OfficeRoles? @relation(fields: [office_role_uid], references: [uid], onDelete: Cascade) + office_role_uid String? @db.VarChar(255) + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + office_membership Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) + office_uid String @db.VarChar(255) + notifications Notifications[] @relation("UserHasNotifications") + office_folders OfficeFolders[] @relation("OfficeFolderHasStakeholders") @@map("users") } @@ -82,96 +82,56 @@ model Offices { users Users[] office_folders OfficeFolders[] document_types DocumentTypes[] - OfficeRoles OfficeRoles[] + office_roles OfficeRoles[] @@map("offices") } model Customers { - uid String @id @unique @default(uuid()) - status ECustomerStatus @default(PENDING) - contact Contacts @relation(fields: [contact_uid], references: [uid], onDelete: Cascade) - contact_uid String @unique @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - office_folder_has_customers OfficeFolderHasCustomers[] - documents Documents[] + uid String @id @unique @default(uuid()) + status ECustomerStatus @default(PENDING) + contact Contacts @relation(fields: [contact_uid], references: [uid], onDelete: Cascade) + contact_uid String @unique @db.VarChar(255) + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + office_folders OfficeFolders[] @relation("OfficeFolderHasCustomers") + documents Documents[] @@map("customers") } -model UserHasNotifications { - uid String @id @unique @default(uuid()) - user Users @relation(fields: [user_uid], references: [uid]) - user_uid String @db.VarChar(255) - notification Notifications @relation(fields: [notification_uid], references: [uid], onDelete: Cascade) - notification_uid String @db.VarChar(255) - notification_status ENotificationStatus @default(UNREAD) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - - @@unique([notification_uid, user_uid]) - @@map("user_has_notifications") -} - model Notifications { - uid String @id @unique @default(uuid()) - message String @db.VarChar(255) - redirection_url String @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - user_has_notifications UserHasNotifications[] + uid String @id @unique @default(uuid()) + message String @db.VarChar(255) + redirection_url String @db.VarChar(255) + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + users Users[] @relation("UserHasNotifications") @@map("notifications") } model OfficeFolders { - uid String @id @unique @default(uuid()) - folder_number String @db.VarChar(255) - name String @db.VarChar(255) - description String? @db.VarChar(255) - archived_description String? @db.VarChar(255) - status EFolderStatus @default(LIVE) - deed Deeds @relation(fields: [deed_uid], references: [uid], onDelete: Cascade) - deed_uid String @unique @db.VarChar(255) - office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) - office_uid String @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - office_folder_has_customers OfficeFolderHasCustomers[] - office_folder_has_stakeholder OfficeFolderHasStakeholders[] - documents Documents[] + uid String @id @unique @default(uuid()) + folder_number String @db.VarChar(255) + name String @db.VarChar(255) + description String? @db.VarChar(255) + archived_description String? @db.VarChar(255) + status EFolderStatus @default(LIVE) + deed Deeds @relation(fields: [deed_uid], references: [uid], onDelete: Cascade) + deed_uid String @unique @db.VarChar(255) + office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) + office_uid String @db.VarChar(255) + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + stakeholders Users[] @relation("OfficeFolderHasStakeholders") + customers Customers[] @relation("OfficeFolderHasCustomers") + documents Documents[] @@unique([folder_number, office_uid]) @@map("office_folders") } -model OfficeFolderHasCustomers { - uid String @id @unique @default(uuid()) - customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade) - customer_uid String @db.VarChar(255) - office_folder OfficeFolders @relation(fields: [office_folder_uid], references: [uid], onDelete: Cascade) - office_folder_uid String @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - - @@unique([office_folder_uid, customer_uid]) - @@map("office_folder_has_customers") -} - -model OfficeFolderHasStakeholders { - uid String @id @unique @default(uuid()) - office_folder OfficeFolders @relation(fields: [office_folder_uid], references: [uid], onDelete: Cascade) - office_folder_uid String @db.VarChar(255) - user_stakeholder Users @relation(fields: [user_stakeholder_uid], references: [uid], onDelete: Cascade) - user_stakeholder_uid String @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - - @@unique([office_folder_uid, user_stakeholder_uid]) - @@map("office_folder_has_stakeholder") -} - model Documents { uid String @id @unique @default(uuid()) document_status EDocumentStatus @default(ASKED) @@ -230,77 +190,51 @@ model BlockchainAnchors { } model DocumentTypes { - uid String @id @unique @default(uuid()) - name String @db.VarChar(255) - public_description String @db.VarChar(255) - private_description String? @db.VarChar(255) - office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) - office_uid String @db.VarChar(255) - archived_at DateTime? - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - documents Documents[] - deed_has_document_types DeedHasDocumentTypes[] - deed_type_has_document_types DeedTypeHasDocumentTypes[] + uid String @id @unique @default(uuid()) + name String @db.VarChar(255) + public_description String @db.VarChar(255) + private_description String? @db.VarChar(255) + office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) + office_uid String @db.VarChar(255) + archived_at DateTime? + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + documents Documents[] + deeds Deeds[] @relation("DeedHasDocumentTypes") + deed_type DeedTypes[] @relation("DeedTypeHasDocumentTypes") @@unique([name, office_uid]) @@map("document_types") } -model DeedHasDocumentTypes { - uid String @id @unique @default(uuid()) - document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid], onDelete: Cascade) - document_type_uid String @db.VarChar(255) - deed Deeds @relation(fields: [deed_uid], references: [uid], onDelete: Cascade) - deed_uid String @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - - @@unique([deed_uid, document_type_uid]) - @@map("deed_has_document_types") -} - model Deeds { - uid String @id @unique @default(uuid()) - deed_type DeedTypes @relation(fields: [deed_type_uid], references: [uid], onDelete: Cascade) - deed_type_uid String @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - deed_has_document_types DeedHasDocumentTypes[] - office_folder OfficeFolders? + uid String @id @unique @default(uuid()) + deed_type DeedTypes @relation(fields: [deed_type_uid], references: [uid], onDelete: Cascade) + deed_type_uid String @db.VarChar(255) + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + document_types DocumentTypes[] @relation("DeedHasDocumentTypes") + office_folder OfficeFolders? @@map("deed") } model DeedTypes { - uid String @id @unique @default(uuid()) - name String @db.VarChar(255) - description String @db.VarChar(255) - archived_at DateTime? - office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) - office_uid String @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - deed Deeds[] - deed_type_has_document_types DeedTypeHasDocumentTypes[] + uid String @id @unique @default(uuid()) + name String @db.VarChar(255) + description String @db.VarChar(255) + archived_at DateTime? + office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) + office_uid String @db.VarChar(255) + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + deed Deeds[] + document_types DocumentTypes[] @relation("DeedTypeHasDocumentTypes") @@unique([name, office_uid]) @@map("deed_types") } -model DeedTypeHasDocumentTypes { - uid String @id @unique @default(uuid()) - document_type DocumentTypes @relation(fields: [document_type_uid], references: [uid], onDelete: Cascade) - document_type_uid String @db.VarChar(255) - deed_type DeedTypes @relation(fields: [deed_type_uid], references: [uid], onDelete: Cascade) - deed_type_uid String @db.VarChar(255) - created_at DateTime? @default(now()) - updated_at DateTime? @updatedAt - - @@unique([deed_type_uid, document_type_uid]) - @@map("deed_type_has_document_types") -} - model Roles { uid String @id @unique @default(uuid()) name String @db.VarChar(255) @@ -336,30 +270,6 @@ model Rules { @@map("rules") } -// model RolesHasRules { -// uid String @id @unique @default(uuid()) -// role Roles @relation(fields: [role_uid], references: [uid], onDelete: Cascade) -// role_uid String @db.VarChar(255) -// rule Rules @relation(fields: [rule_uid], references: [uid], onDelete: Cascade) -// rule_uid String @db.VarChar(255) -// created_at DateTime? @default(now()) -// updated_at DateTime? @updatedAt - -// @@map("role_has_rules") -// } - -// model OfficesRolesHasRules { -// uid String @id @unique @default(uuid()) -// office_role OfficeRoles @relation(fields: [office_role_uid], references: [uid], onDelete: Cascade) -// rule Rules @relation(fields: [rule_uid], references: [uid], onDelete: Cascade) -// office_role_uid String @db.VarChar(255) -// rule_uid String @db.VarChar(255) -// created_at DateTime? @default(now()) -// updated_at DateTime? @updatedAt - -// @@map("office_role_has_rules") -// } - enum ECivility { MALE FEMALE diff --git a/src/common/databases/seeders/seeder.ts b/src/common/databases/seeders/seeder.ts index e7e2816a..a64ab0b5 100644 --- a/src/common/databases/seeders/seeder.ts +++ b/src/common/databases/seeders/seeder.ts @@ -1,599 +1,1618 @@ -import { - // Addresses, - // Contacts, - // Customers, - // DeedHasDocumentTypes, - // DeedTypeHasDocumentTypes, - // DeedTypes, - // Deeds, - // DocumentHistory, - // DocumentTypes, - // Documents, - // EDocumentStatus, - // EFolderStatus, - // EOfficeStatus, - // OfficeFolderHasCustomers, - // OfficeFolders, - // Offices, - // Users, - // ECivility, - // ECustomerStatus, - PrismaClient, -// Roles, -} from "@prisma/client"; +import 'module-alias/register'; +import { EFolderStatus, EOfficeStatus, ECivility, ECustomerStatus, PrismaClient, Prisma } from "@prisma/client"; +import User, { + Address, + Contact, + Customer, + Deed, + DeedType, + Office, + OfficeFolder, + OfficeRole, + Role, + Rule, + DocumentType, +} from "le-coffre-resources/dist/SuperAdmin"; -(async () => { +export default async function main() { const prisma = new PrismaClient(); - console.log(prisma); - // const randomString = () => { - // const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - // let result = ""; - // for (let i = 10; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; - // return result; - // }; - // const uidCustomer1: string = randomString(); - // const uidCustomer2: string = randomString(); + - // const uidContact1: string = randomString(); - // const uidContact2: string = randomString(); - // const uidContact3: string = randomString(); - // const uidContact4: string = randomString(); + const randomString = () => { + const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + let result = ""; + for (let i = 10; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; + return result; + }; - // const uidAddress1: string = randomString(); - // const uidAddress2: string = randomString(); - // const uidAddress3: string = randomString(); - // const uidAddress4: string = randomString(); + const idNot1 = randomString(); + const idNot2 = randomString(); + const idNot3 = randomString(); + const idNot4 = randomString(); + const idNot5 = randomString(); + const idNot6 = randomString(); - // const uidOffice1: string = randomString(); - // const uidOffice2: string = randomString(); + const addresses: Address[] = [ + { + address: "148 Avenue du bac", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Pierre Emillion", + city: "Pacé", + zip_code: 35740, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Pierre Charles", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Pierre Pologne", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Pierre Marcel", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Pierre Jacques", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Pierre Pascal", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Maxime Henry", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Maxime Francis", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Avenue Paul Roger", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Avenue Paul Franck", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Avenue Paul Maréchal", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Avenue Marcel Denis", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Place Alexandre", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Place Alexandre Jacques", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Place Alexandre 2", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue du livre", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Place de la joie", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Paul Henry", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + { + address: "Rue Marcelin", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), + }, + ]; - // const uidUser1: string = randomString(); - // const uidUser2: string = randomString(); + const contacts: Contact[] = [ + { + address: addresses[0], + first_name: "Manon", + last_name: "Simon", + email: "manon.simon@gmail.com", + phone_number: "06 12 34 56 78", + cell_phone_number: "06 12 34 56 78", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[1], + first_name: "Kevin", + last_name: "Hautefaye", + email: "kevin.hautefaye@gmail.com", + phone_number: "06 23 45 67 89", + cell_phone_number: "06 23 45 67 89", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[2], + first_name: "Maxime", + last_name: "Lalo", + email: "maxime.lalo@gmail.com", + phone_number: "06 34 56 78 90", + cell_phone_number: "06 34 56 78 90", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[3], + first_name: "Vincent", + last_name: "Brognard", + email: "vincent.brognard@gmail.com", + phone_number: "06 45 67 89 01", + cell_phone_number: "06 45 67 89 01", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[4], + first_name: "Maxime", + last_name: "Leroy", + email: "maxime.leroy@hotmail.fr", + phone_number: "06 56 78 90 12", + cell_phone_number: "06 56 78 90 12", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[5], + first_name: "Thibault", + last_name: "Dubois", + email: "thibault.dubois@outlook.com", + phone_number: "06 67 89 01 23", + cell_phone_number: "06 67 89 01 23", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[6], + first_name: "Léa", + last_name: "Fontaine", + email: "lea.fontaine@gmail.com", + phone_number: "06 78 90 12 34", + cell_phone_number: "06 78 90 12 34", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[7], + first_name: "Guillaume", + last_name: "Renaud", + email: "guillaume.renaud@gmail.com", + phone_number: "06 89 01 23 45", + cell_phone_number: "06 89 01 23 45", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[8], + first_name: "Lucie", + last_name: "Chevalier", + email: "lucie.chevalier@outlook.com", + phone_number: "07 12 34 56 78", + cell_phone_number: "07 12 34 56 78", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[9], + first_name: "Sébastien", + last_name: "Dubois", + email: "sebastien.dubois@gmail.com", + phone_number: "07 23 45 67 89", + cell_phone_number: "07 23 45 67 89", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[10], + first_name: "Mathilde", + last_name: "Durand", + email: "mathilde.durand@gmail.com", + phone_number: "07 34 56 78 90", + cell_phone_number: "07 34 56 78 90", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[11], + first_name: "Antoine", + last_name: "Bernard", + email: "antoine.bernard@outlook.com", + phone_number: "07 45 67 89 01", + cell_phone_number: "07 45 67 89 01", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[12], + first_name: "Camille", + last_name: "Laurent", + email: "camille.laurent@gmail.com", + phone_number: "07 56 78 90 12", + cell_phone_number: "07 56 78 90 12", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[13], + first_name: "Julien", + last_name: "Mercier", + email: "julien.mercier@hotmail.fr", + phone_number: "07 67 89 01 23", + cell_phone_number: "07 67 89 01 23", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[14], + first_name: "Charlotte", + last_name: "Lefebvre", + email: "charlotte.lefebvre@gmail.com", + phone_number: "07 78 90 12 34", + cell_phone_number: "07 78 90 12 34", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[15], + first_name: "Caroline", + last_name: "Pallut", + email: "caroline.pallut@gmail.com", + phone_number: "07 89 01 23 45", + cell_phone_number: "07 89 01 23 45", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[16], + first_name: "Nadège", + last_name: "Gauchet", + email: "nedege.gauchet@outlook.com", + phone_number: "06 11 22 33 44", + cell_phone_number: "06 11 22 33 44", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[17], + first_name: "Matthieu", + last_name: "Bougeard", + email: "matthieu.bougeard@gmail.com", + phone_number: "07 22 33 44 55", + cell_phone_number: "07 22 33 44 55", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[18], + first_name: "Cécile", + last_name: "Celton", + email: "cecile.celton@outlook.com", + phone_number: "06 55 66 77 88", + cell_phone_number: "06 55 66 77 88", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[19], + first_name: "Gwendal", + last_name: "Texier", + email: "gwendal.texier@gmail.com", + phone_number: "07 88 99 00 11", + cell_phone_number: "07 88 99 00 11", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + ]; - // const uidRole1: string = randomString(); - // const uidRole2: string = randomString(); + const offices: Office[] = [ + { + idNot: idNot1, + name: "Office Rennes", + crpcen: randomString(), + address: addresses[0], + created_at: new Date(), + updated_at: new Date(), + office_status: EOfficeStatus.ACTIVATED, + }, + ]; - // const uidOfficeFolder1: string = randomString(); - // const uidOfficeFolder2: string = randomString(); - // const uidOfficeFolder3: string = randomString(); - // const uidOfficeFolder4: string = randomString(); - // const uidOfficeFolder5: string = randomString(); + const customers: Customer[] = [ + { + contact: contacts[5], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[6], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[7], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[8], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[9], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[10], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[11], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[12], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[13], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[14], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[15], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[16], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[17], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[18], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[19], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + ]; - // const uidDeed1: string = randomString(); - // const uidDeed2: string = randomString(); - // const uidDeed3: string = randomString(); - // const uidDeed4: string = randomString(); - // const uidDeed5: string = randomString(); + const rules: Rule[] = [ + { + name: "GET users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET deedtypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET documentTypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT deedtypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT documentTypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST deedtypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST documentTypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST deedtypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST documentTypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE deedtypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE documentTypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + + ]; - // const uidDeedType1: string = randomString(); - // const uidDeedType2: string = randomString(); + const roles: Role[] = [ + { + name: "super-admin", + created_at: new Date(), + updated_at: new Date(), + rules: rules, + }, + { + name: "admin", + created_at: new Date(), + updated_at: new Date(), + rules: rules.slice(0,33), + }, + { + name: "notary", + created_at: new Date(), + updated_at: new Date(), + rules: rules.slice(0,22), + }, + { + name: "default", + created_at: new Date(), + updated_at: new Date(), + rules: rules.slice(0,11), + } + ]; - // const uidDocument1: string = randomString(); - // const uidDocument2: string = randomString(); - // const uidDocument3: string = randomString(); - // const uidDocument4: string = randomString(); - // const uidDocument5: string = randomString(); + const officeRoles: OfficeRole[] = [ + { + name: "admin", + created_at: new Date(), + updated_at: new Date(), + office: offices[0]!, + rules: rules.slice(0,40), + }, + { + name: "notary", + created_at: new Date(), + updated_at: new Date(), + office: offices[0]!, + rules: rules.slice(0,33), + }, + { + name: "deputy", + created_at: new Date(), + updated_at: new Date(), + office: offices[0]!, + rules: rules.slice(0,22), + }, + { + name: "listener", + created_at: new Date(), + updated_at: new Date(), + office: offices[0]!, + rules: rules.slice(0,11), + } + ]; - // const uidDocumentType1: string = randomString(); - // const uidDocumentType2: string = randomString(); - // const uidDocumentType3: string = randomString(); + const users: User[] = [ + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot2, + contact: contacts[0], + office_membership: offices[0], + role: roles[0], + }, + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot3, + contact: contacts[1], + office_membership: offices[0], + role: roles[1], + }, + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot4, + contact: contacts[2], + office_membership: offices[0], + role: roles[2], + office_role: officeRoles[2], + }, + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot5, + contact: contacts[3], + office_membership: offices[0], + role: roles[1], + office_role: officeRoles[3], + }, + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot6, + contact: contacts[4], + office_membership: offices[0], + role: roles[3], + }, + ]; - // const uidOfficeFolderHasCustomer1: string = randomString(); - // const uidOfficeFolderHasCustomer2: string = randomString(); + const deedTypes: DeedType[] = [ + { + name: "Acte de donation", + archived_at: null, + description: "Acte de donation", + office: offices[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "Acte de vente", + archived_at: null, + description: "Acte de vente", + office: offices[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "Acte de succession", + archived_at: null, + description: "Acte de succession", + office: offices[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "Acte de vente de maison individuelle", + archived_at: null, + description: "Acte de vente de maison individuelle", + office: offices[0], + created_at: new Date(), + updated_at: new Date(), + }, + ]; - // const uidDeedHasDocumentType1: string = randomString(); - // const uidDeedHasDocumentType2: string = randomString(); + const deeds: Deed[] = [ + { + deed_type: deedTypes[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[1], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[1], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[1], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[1], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[1], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[1], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[1], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[2], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[2], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[2], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[2], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[2], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[2], + created_at: new Date(), + updated_at: new Date(), + }, + { + deed_type: deedTypes[2], + created_at: new Date(), + updated_at: new Date(), + }, + ]; - // const uidDeedTypeHasDocumentType1: string = randomString(); - // const uidDeedTypeHasDocumentType2: string = randomString(); + const documentTypes: DocumentType[] = [ + { + archived_at: null, + name: "Document d'identité", + office: offices[0], + private_description: + "Document officiel d'identification utilisé par plusieurs personnes pour prouver leur identité et leur nationalité (CNI, passeport)", + public_description: + "Document officiel d'identification utilisé par plusieurs personnes pour prouver leur identité et leur nationalité (CNI, passeport)", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Taxe Foncière", + office: offices[0], + private_description: "Impôt annuel imposé sur les propriétés foncières et utilisé pour financer les services publics locaux.", + public_description: "Impôt annuel imposé sur les propriétés foncières et utilisé pour financer les services publics locaux.", + created_at: new Date(), + updated_at: new Date(), + }, - // const uidDocumentHistory1: string = randomString(); - // const uidDocumentHistory2: string = randomString(); + { + archived_at: null, + name: "Contrat Mariage", + office: offices[0], + private_description: "Accord légal qui établit les droits et les obligations entre deux personnes s'unissant en mariage.", + public_description: "Accord légal qui établit les droits et les obligations entre deux personnes s'unissant en mariage.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Livret de famille", + office: offices[0], + private_description: + "Document officiel qui enregistre les détails et les événements familiaux tels que les mariages, les naissances et les décès d'un couple et de leurs enfants.", + public_description: + "Document officiel qui enregistre les détails et les événements familiaux tels que les mariages, les naissances et les décès d'un couple et de leurs enfants.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Bail commercial", + office: offices[0], + private_description: + "Contrat légal entre un propriétaire et un locataire pour la location d'un bien immobilier utilisé à des fins commerciales ou professionnelles.", + public_description: + "Contrat légal entre un propriétaire et un locataire pour la location d'un bien immobilier utilisé à des fins commerciales ou professionnelles.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Statuts SCI", + office: offices[0], + private_description: "Document légal qui définit les règles et les dispositions régissant la Société Civile Immobilière (SCI).", + public_description: "Document légal qui définit les règles et les dispositions régissant la Société Civile Immobilière (SCI).", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Avis de taxe foncière", + office: offices[0], + private_description: "Notification officielle indiquant le montant de l'impôt foncier dû sur une propriété.", + public_description: "Notification officielle indiquant le montant de l'impôt foncier dû sur une propriété.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Appel de charge de copropriété", + office: offices[0], + private_description: + "Document envoyé aux copropriétaires pour les informer des dépenses et des charges communes liées à la gestion et à l'entretien de l'immeuble.", + public_description: + "Document envoyé aux copropriétaires pour les informer des dépenses et des charges communes liées à la gestion et à l'entretien de l'immeuble.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "PVAG", + office: offices[0], + private_description: + "Compte rendu écrit des discussions, décisions et résolutions prises lors d'une réunion d'assemblée générale de copropriété.", + public_description: + "Compte rendu écrit des discussions, décisions et résolutions prises lors d'une réunion d'assemblée générale de copropriété.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Règlement de copropriété", + office: offices[0], + private_description: + "Document juridique qui établit les règles et les droits des copropriétaires d'un immeuble en copropriété.", + public_description: "Document juridique qui établit les règles et les droits des copropriétaires d'un immeuble en copropriété.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Titre de propriété", + office: offices[0], + private_description: "Document légal qui atteste de la propriété d'un bien immobilier et en identifie le propriétaire.", + public_description: "Document légal qui atteste de la propriété d'un bien immobilier et en identifie le propriétaire.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Plan et loi carrez", + office: offices[0], + private_description: + "Document officiel qui mesure la superficie d'un lot ou d'un bien immobilier, conformément à la loi Carrez qui encadre les transactions immobilières.", + public_description: + "Document officiel qui mesure la superficie d'un lot ou d'un bien immobilier, conformément à la loi Carrez qui encadre les transactions immobilières.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "CNI", + office: offices[0], + private_description: + "Document officiel d'identification délivré par l'État pour prouver l'identité et la nationalité d'une personne.", + public_description: + "Document officiel d'identification délivré par l'État pour prouver l'identité et la nationalité d'une personne.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Modifications règlement copropriété (plusieurs)", + office: offices[0], + private_description: + "Documents légaux qui apportent des changements ou des ajustements aux règles et dispositions du règlement de copropriété initial.", + public_description: + "Documents légaux qui apportent des changements ou des ajustements aux règles et dispositions du règlement de copropriété initial.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Avis de décès", + office: offices[0], + private_description: "Notification officielle délivrée par les autorités compétentes pour informer du décès d'une personne.", + public_description: "Notification officielle délivrée par les autorités compétentes pour informer du décès d'une personne.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Lettre de mission", + office: offices[0], + private_description: + "Document contractuel qui définit les termes et les objectifs d'une mission confiée à une personne ou à une entreprise.", + public_description: + "Document contractuel qui définit les termes et les objectifs d'une mission confiée à une personne ou à une entreprise.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "DPE", + office: offices[0], + private_description: "Diagnostic de Performance Energétique.", + public_description: "Diagnostic de Performance Energétique.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "RIB", + office: offices[0], + private_description: "Relevé d'identité bancaire ou IBAN.", + public_description: "Relevé d'identité bancaire ou IBAN.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Acte d'achat par la SCI", + office: offices[0], + private_description: "Acte d'achat par la SCI.", + public_description: "Acte d'achat par la SCI.", + created_at: new Date(), + updated_at: new Date(), + }, + ]; - // // const existingData = await prisma.contacts.findFirst({ where: { uid: uidContact4 } }); - // // if (existingData) { - // // console.log("Seed data already exists. Skipping seeding process."); - // // return; - // // } + const officeFolders: OfficeFolder[] = [ + { + folder_number: "0001", + name: "Vente par Mme. Simon au profit de Mme. Lextrait", + deed: deeds[0], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + { + folder_number: "0002", + name: "Donation des parts sociales de la société SARL FLORE", + deed: deeds[1], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + { + folder_number: "0003", + name: "Vente par Mme. Lefebvre au profit de Mme. Mathieu", + deed: deeds[2], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + { + folder_number: "0004", + name: "Vente par Mme. Chevalier au profit de M. Daveau", + deed: deeds[3], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + { + folder_number: "0005", + name: "Vente par M. Lalo au profit de Mme. Pigale", + deed: deeds[4], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + { + folder_number: "0006", + name: "Donation des parts sociales de la société SMART-TALENT", + deed: deeds[5], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + { + folder_number: "0007", + name: "Vente par M. Girard au profit de M. Louis", + deed: deeds[6], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + { + folder_number: "0008", + name: "Vente par Mme. Leclerc au profit de M. Louis", + deed: deeds[7], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + { + folder_number: "0009", + name: "Vente par M. Lambert au profit de M. Holmes", + deed: deeds[8], + status: EFolderStatus.LIVE, + created_at: new Date(), + updated_at: new Date(), + office: offices[0], + description: null, + archived_description: null, + }, + ]; + for (const office of offices) { + const officeCreated = await prisma.offices.create({ + data: { + idNot: office.idNot, + name: office.name, + crpcen: office.crpcen, + address: { + create: { + address: office.address!.address, + zip_code: office.address!.zip_code, + city: office.address!.city, + }, + }, + office_status: EOfficeStatus.DESACTIVATED, + }, + }); +; office.uid = officeCreated.uid; + } + for (const rule of rules) { + const ruleCreated = await prisma.rules.create({ + data: { + name: rule.name + }, + }); + rule.uid = ruleCreated.uid; + } - // const customers: Customers[] = [ - // { - // uid: uidCustomer1, - // contact_uid: uidContact1, - // created_at: new Date(), - // updated_at: new Date(), - // status: ECustomerStatus.PENDING, - // }, - // { - // uid: uidCustomer2, - // contact_uid: uidContact2, - // created_at: new Date(), - // updated_at: new Date(), - // status: ECustomerStatus.PENDING, - // }, - // ]; + for (const role of roles) { + const roleCreated = await prisma.roles.create({ + data: { + name: role.name, + rules: { + connect: role.rules?.map((rule) => ({ + uid: rule.uid!, + })), + }, + }, + }); + role.uid = roleCreated.uid; + } - // const addresses: Addresses[] = [ - // { - // uid: uidAddress1, - // address: "123 Main St", - // city: "Los Angeles", - // zip_code: 90001, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidAddress2, - // address: "Rue Pierre Emillion", - // city: "Paris", - // zip_code: 75003, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidAddress3, - // address: "Rue Pierre Charles", - // city: "Paris", - // zip_code: 75003, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidAddress4, - // address: "Rue Pierre Pologne", - // city: "Paris", - // zip_code: 75003, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; + for (const officeRole of officeRoles) { + const officeRoleCreated = await prisma.officeRoles.create({ + data: { + name: officeRole.name, + office: { + connect: { + uid: officeRole.office.uid, + }, + }, + rules: { + connect: officeRole.rules?.map((rule) => ({ + uid: rule.uid!, + })), + }, + }, + }); + officeRole.uid = officeRoleCreated.uid; + } - // const contacts: Contacts[] = [ - // { - // uid: uidContact1, - // address_uid: uidAddress1, - // first_name: "John", - // last_name: "Doe", - // email: "john.doe@example.com", - // phone_number: randomString(), - // cell_phone_number: randomString(), - // birthdate: null, - // created_at: new Date(), - // updated_at: new Date(), - // civility: ECivility.MALE, - // }, - // { - // uid: uidContact2, - // address_uid: uidAddress2, - // first_name: "Jane", - // last_name: "Doe", - // email: "jane.doe@example.com", - // phone_number: randomString(), - // cell_phone_number: randomString(), - // birthdate: null, - // created_at: new Date(), - // updated_at: new Date(), - // civility: ECivility.FEMALE, - // }, - // { - // uid: uidContact3, - // address_uid: uidAddress3, - // first_name: "Maitre Marcelino", - // last_name: "Jack", - // email: "Marcelino.Jack@example.com", - // phone_number: randomString(), - // cell_phone_number: randomString(), - // birthdate: null, - // created_at: new Date(), - // updated_at: new Date(), - // civility: ECivility.MALE, - // }, - // { - // uid: uidContact4, - // address_uid: uidAddress4, - // first_name: "Maitre Massi", - // last_name: "Jack", - // email: "Massi.Jack@example.com", - // phone_number: randomString(), - // cell_phone_number: randomString(), - // birthdate: null, - // created_at: new Date(), - // updated_at: new Date(), - // civility: ECivility.FEMALE, - // }, - // ]; + for (const user of users) { + const createArgs: Prisma.UsersCreateArgs = { + data: { + idNot: user.idNot, + office_membership: { + connectOrCreate: { + where: { + idNot: user.office_membership!.idNot, + }, + create: { + idNot: user.office_membership!.idNot, + name: user.office_membership!.name, + crpcen: user.office_membership!.crpcen, + address: { + create: { + address: user.office_membership!.address!.address, + zip_code: user.office_membership!.address!.zip_code, + city: user.office_membership!.address!.city, + }, + }, + }, + }, + }, + contact: { + create: { + first_name: user.contact!.first_name, + last_name: user.contact!.last_name, + email: user.contact!.email, + phone_number: user.contact!.phone_number, + cell_phone_number: user.contact!.cell_phone_number, + civility: ECivility[user.contact!.civility as keyof typeof ECivility], + address: {}, + }, + }, + role: { + connect: { + uid: user.role!.uid, + }, + }, + }, + }; + if (user.contact!.address) { + createArgs.data.contact!.create!.address!.create = { + address: user.contact!.address.address, + zip_code: user.contact!.address.zip_code, + city: user.contact!.address.city, + }; + } + if (user.office_role) { + createArgs.data.office_role = { + connect: { + uid: user.office_role.uid, + }, + }; + } + const userCreated = await prisma.users.create(createArgs); + user.uid = userCreated.uid; + } - // const offices: Offices[] = [ - // { - // uid: uidOffice1, - // idNot: randomString(), - // name: "LA Office", - // crpcen: randomString(), - // address_uid: uidAddress1, - // created_at: new Date(), - // updated_at: new Date(), - // office_status: EOfficeStatus.ACTIVATED, - // }, - // { - // uid: uidOffice2, - // idNot: randomString(), - // name: "NYC Office", - // crpcen: randomString(), - // address_uid: uidAddress2, - // created_at: new Date(), - // updated_at: new Date(), - // office_status: EOfficeStatus.DESACTIVATED, - // }, - // ]; + for (const customer of customers) { + const createArgs: Prisma.CustomersCreateArgs = { + data: { + status: ECustomerStatus.PENDING, + contact: { + create: { + first_name: customer.contact!.first_name, + last_name: customer.contact!.last_name, + email: customer.contact!.email, + phone_number: customer.contact!.phone_number, + cell_phone_number: customer.contact!.cell_phone_number, + civility: ECivility[customer.contact!.civility as keyof typeof ECivility], + address: {}, + }, + }, + }, + }; - // const roles: Roles[] = [ - // { - // uid: uidRole1, - // name: 'super-admin', - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidRole2, - // name: 'admin', - // created_at: new Date(), - // updated_at: new Date(), - // } - // ]; + if (customer.contact?.address) { + createArgs.data.contact!.create!.address = { + create: { + address: customer.contact?.address?.address, + zip_code: customer.contact?.address?.zip_code, + city: customer.contact?.address?.city, + }, + }; + } + const customersCreated = await prisma.customers.create(createArgs); + customer.uid = customersCreated.uid; + } - // const users: Users[] = [ - // { - // uid: uidUser1, - // created_at: new Date(), - // updated_at: new Date(), - // idNot: randomString(), - // contact_uid: uidContact1, - // office_uid: uidOffice1, - // roles_uid: uidRole1, - // }, - // { - // uid: uidUser2, - // created_at: new Date(), - // updated_at: new Date(), - // idNot: randomString(), - // contact_uid: uidContact2, - // office_uid: uidOffice2, - // roles_uid: uidRole2, - // }, - // ]; + for (const deedType of deedTypes) { + const createArgs: Prisma.DeedTypesCreateArgs = { + data: { + name: deedType.name, + description: deedType.description, + office: { + connect: { + uid: deedType.office!.uid, + }, + }, + }, + }; + if (deedType.document_types) { + createArgs.data.document_types = { + connect: deedType.document_types.map((documentType) => ({ + uid: documentType.uid, + })), + }; + } + const deedTypeCreated = await prisma.deedTypes.create(createArgs); + deedType.uid = deedTypeCreated.uid; + } - // const officeFolders: OfficeFolders[] = [ - // { - // uid: uidOfficeFolder1, - // folder_number: "0001", - // name: "Dossier", - // deed_uid: uidDeed1, - // status: EFolderStatus.LIVE, - // created_at: new Date(), - // updated_at: new Date(), - // office_uid: uidOffice1, - // description: null, - // archived_description: null, - // }, - // { - // uid: uidOfficeFolder2, - // folder_number: "0002", - // name: "Dossier", - // deed_uid: uidDeed2, - // status: EFolderStatus.LIVE, - // created_at: new Date(), - // updated_at: new Date(), - // office_uid: uidOffice2, - // description: null, - // archived_description: null, - // }, - // { - // uid: uidOfficeFolder3, - // folder_number: "0003", - // name: "Dossier", - // deed_uid: uidDeed3, - // status: EFolderStatus.LIVE, - // created_at: new Date(), - // updated_at: new Date(), - // office_uid: uidOffice2, - // description: null, - // archived_description: null, - // }, - // { - // uid: uidOfficeFolder4, - // folder_number: "0004", - // name: "Dossier", - // deed_uid: uidDeed4, - // status: EFolderStatus.ARCHIVED, - // created_at: new Date(), - // updated_at: new Date(), - // office_uid: uidOffice2, - // description: null, - // archived_description: null, - // }, - // { - // uid: uidOfficeFolder5, - // folder_number: "0005", - // name: "Dossier", - // deed_uid: uidDeed5, - // status: EFolderStatus.ARCHIVED, - // created_at: new Date(), - // updated_at: new Date(), - // office_uid: uidOffice2, - // description: null, - // archived_description: null, - // }, - // ]; + for (const deed of deeds) { + const createArgs: Prisma.DeedsCreateArgs = { + data: { + deed_type: { + connect: { + uid: deed.deed_type!.uid, + }, + }, + }, + }; + const deedTypeWithDocumentTypes = await prisma.deedTypes.findUniqueOrThrow({ + where: { + uid: deed.deed_type!.uid, + }, + include: { document_types: true }, + }); - // const deeds: Deeds[] = [ - // { - // uid: uidDeed1, - // deed_type_uid: uidDeedType1, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDeed2, - // deed_type_uid: uidDeedType2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDeed3, - // deed_type_uid: uidDeedType2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDeed4, - // deed_type_uid: uidDeedType2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDeed5, - // deed_type_uid: uidDeedType2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; + if (deedTypeWithDocumentTypes.document_types) { + createArgs.data.document_types = { + connect: deedTypeWithDocumentTypes.document_types.map((documentType) => ({ + uid: documentType.uid, + })), + }; + } + const deedCreated = await prisma.deeds.create(createArgs); + deed.uid = deedCreated.uid; + } - // const deedTypes: DeedTypes[] = [ - // { - // uid: uidDeedType1, - // name: "Acte de mariage", - // archived_at: null, - // description: "Acte regroupant deux personnes en mariage", - // office_uid: uidOffice1, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDeedType2, - // name: "Vente d'un bien immobilier", - // archived_at: null, - // description: "Permet de vendre un bien immobilier à une entité ou une personne physique", - // office_uid: uidOffice2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; + for (const documentType of documentTypes) { + const documentTypeCreated = await prisma.documentTypes.create({ + data: { + name: documentType.name, + public_description: documentType.public_description, + private_description: documentType.private_description, + office: { + connect: { + uid: documentType.office!.uid, + }, + }, + }, + }); + documentType.uid = documentTypeCreated.uid; + } - // const documents: Documents[] = [ - // { - // uid: uidDocument1, - // blockchain_anchor_uid: null, - // depositor_uid: uidCustomer1, - // document_status: EDocumentStatus.DEPOSITED, - // folder_uid: uidOfficeFolder1, - // document_type_uid: uidDocumentType1, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDocument2, - // blockchain_anchor_uid: null, - // depositor_uid: uidCustomer2, - // document_status: EDocumentStatus.ASKED, - // folder_uid: uidOfficeFolder2, - // document_type_uid: uidDocumentType2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDocument3, - // blockchain_anchor_uid: null, - // depositor_uid: uidCustomer1, - // document_status: EDocumentStatus.ASKED, - // folder_uid: uidOfficeFolder1, - // document_type_uid: uidDocumentType3, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDocument4, - // blockchain_anchor_uid: null, - // depositor_uid: uidCustomer1, - // document_status: EDocumentStatus.ASKED, - // folder_uid: uidOfficeFolder1, - // document_type_uid: uidDocumentType2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDocument5, - // blockchain_anchor_uid: null, - // depositor_uid: uidCustomer1, - // document_status: EDocumentStatus.ASKED, - // folder_uid: uidOfficeFolder1, - // document_type_uid: uidDocumentType1, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; + for (const officeFolder of officeFolders) { + const officeFolderCreated = await prisma.officeFolders.create({ + data: { + folder_number: officeFolder.folder_number, + name: officeFolder.name, + description: officeFolder.description, + status: EFolderStatus.LIVE, + deed: { + connect: { + uid: officeFolder.deed?.uid, + }, + }, + office: { + connect: { + uid: officeFolder.office!.uid, + }, + }, + stakeholders: { + connect: officeFolder.stakeholders?.map((stakeholder) => ({ + uid: stakeholder.uid!, + })), + } + } + }); + officeFolder.uid = officeFolderCreated.uid; + } - // const documentTypes: DocumentTypes[] = [ - // { - // uid: uidDocumentType1, - // archived_at: null, - // name: "Acte de naissance", - // office_uid: uidOffice1, - // private_description: "Ce document est confidentiel, et ne doit pas être divulgué", - // public_description: "Acte de naissance est un document officiel qui atteste de la naissance d'une personne", - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDocumentType2, - // archived_at: null, - // name: "Carte d'identité", - // office_uid: uidOffice1, - // private_description: "Ce document est confidentiel, demander un recto-verso au client", - // public_description: "Carte d'identité est un document officiel qui atteste de l'identité d'une personne", - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDocumentType3, - // archived_at: null, - // name: "Autres documents", - // office_uid: uidOffice1, - // private_description: "Ce document est confidentiel, demander un recto-verso au client", - // public_description: "Carte d'identité est un document officiel qui atteste de l'identité d'une personne", - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; - - // const officeFolderHasCustomers: OfficeFolderHasCustomers[] = [ - // { - // uid: uidOfficeFolderHasCustomer1, - // customer_uid: uidCustomer1, - // office_folder_uid: uidOfficeFolder1, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidOfficeFolderHasCustomer2, - // customer_uid: uidCustomer2, - // office_folder_uid: uidOfficeFolder2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; - - // const deedHasDocumentTypes: DeedHasDocumentTypes[] = [ - // { - // uid: uidDeedHasDocumentType1, - // deed_uid: uidDeed1, - // document_type_uid: uidDocumentType1, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDeedHasDocumentType2, - // deed_uid: uidDeed2, - // document_type_uid: uidDocumentType2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; - - // const deedTypeHasDocumentTypes: DeedTypeHasDocumentTypes[] = [ - // { - // uid: uidDeedTypeHasDocumentType1, - // deed_type_uid: uidDeedType1, - // document_type_uid: uidDocumentType1, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDeedTypeHasDocumentType2, - // deed_type_uid: uidDeedType2, - // document_type_uid: uidDocumentType2, - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; - - // const documentHistories: DocumentHistory[] = [ - // { - // uid: uidDocumentHistory1, - // document_status: EDocumentStatus.ASKED, - // document_uid: uidDocument1, - // refused_reason: "", - // created_at: new Date(), - // updated_at: new Date(), - // }, - // { - // uid: uidDocumentHistory2, - // document_status: EDocumentStatus.DEPOSITED, - // document_uid: uidDocument1, - // refused_reason: "Le document n'est pas conforme", - // created_at: new Date(), - // updated_at: new Date(), - // }, - // ]; - - // for (const address of addresses) { - // await prisma.addresses.create({ data: address }); - // } - - // for (const contact of contacts) { - // await prisma.contacts.create({ data: contact }); - // } - - // for (const office of offices) { - // await prisma.offices.create({ data: office }); - // } - - // for (const role of roles) { - // await prisma.roles.create({ data: role }); - // } - - // for (const user of users) { - // await prisma.users.create({ data: user }); - // } - - // for (const customer of customers) { - // await prisma.customers.create({ data: customer }); - // } - - // for (const deedType of deedTypes) { - // await prisma.deedTypes.create({ data: deedType }); - // } - - // for (const deed of deeds) { - // await prisma.deeds.create({ data: deed }); - // } - // for (const officeFolder of officeFolders) { - // await prisma.officeFolders.create({ data: officeFolder }); - // } - - // for (const documentType of documentTypes) { - // await prisma.documentTypes.create({ data: documentType }); - // } - - // for (const document of documents) { - // await prisma.documents.create({ data: document }); - // } - - // for (const documentHistory of documentHistories) { - // await prisma.documentHistory.create({ data: documentHistory }); - // } - - // for (const officeFolderHasCustomer of officeFolderHasCustomers) { - // await prisma.officeFolderHasCustomers.create({ data: officeFolderHasCustomer }); - // } - - // for (const deedHasDocumentType of deedHasDocumentTypes) { - // await prisma.deedHasDocumentTypes.create({ data: deedHasDocumentType }); - // } - - // for (const deedTypeHasDocumentType of deedTypeHasDocumentTypes) { - // await prisma.deedTypeHasDocumentTypes.create({ data: deedTypeHasDocumentType }); - // } - - // console.log(">MOCK DATA - Seeding completed!"); -})(); + console.log(">MOCK DATA - Seeding completed!"); +} +main(); diff --git a/src/common/databases/seeders/seeder2.ts b/src/common/databases/seeders/seeder2.ts deleted file mode 100644 index c16b9a91..00000000 --- a/src/common/databases/seeders/seeder2.ts +++ /dev/null @@ -1,1963 +0,0 @@ -import { - Addresses, - Contacts, - Customers, - DeedHasDocumentTypes, - DeedTypeHasDocumentTypes, - DeedTypes, - Deeds, - DocumentTypes, - Documents, - EFolderStatus, - EOfficeStatus, - OfficeFolderHasCustomers, - OfficeFolders, - Offices, - Users, - ECivility, - ECustomerStatus, - PrismaClient, - Roles, - Rules, - OfficeRoles, -} from "@prisma/client"; - -(async () => { - const prisma = new PrismaClient(); - - const existingData = await prisma.contacts.findFirst({ where: { email: "john.doe@example.com" } }); - if (existingData) { - console.log("Seed data already exists. Skipping seeding process."); - return; - } - - const randomString = () => { - const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - let result = ""; - for (let i = 10; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; - return result; - }; - const uidCustomer1: string = randomString(); - const uidCustomer2: string = randomString(); - const uidCustomer3: string = randomString(); - const uidCustomer4: string = randomString(); - const uidCustomer5: string = randomString(); - const uidCustomer6: string = randomString(); - const uidCustomer7: string = randomString(); - const uidCustomer8: string = randomString(); - const uidCustomer9: string = randomString(); - const uidCustomer10: string = randomString(); - const uidCustomer11: string = randomString(); - const uidCustomer12: string = randomString(); - const uidCustomer13: string = randomString(); - const uidCustomer14: string = randomString(); - const uidCustomer15: string = randomString(); - - const uidContact1: string = randomString(); - const uidContact2: string = randomString(); - const uidContact3: string = randomString(); - const uidContact4: string = randomString(); - const uidContact5: string = randomString(); - const uidContact6: string = randomString(); - const uidContact7: string = randomString(); - const uidContact8: string = randomString(); - const uidContact9: string = randomString(); - const uidContact10: string = randomString(); - const uidContact11: string = randomString(); - const uidContact12: string = randomString(); - const uidContact13: string = randomString(); - const uidContact14: string = randomString(); - const uidContact15: string = randomString(); - const uidContact16: string = randomString(); - const uidContact17: string = randomString(); - const uidContact18: string = randomString(); - const uidContact19: string = randomString(); - const uidContact20: string = randomString(); - - const uidAddress1: string = randomString(); - const uidAddress2: string = randomString(); - const uidAddress3: string = randomString(); - const uidAddress4: string = randomString(); - const uidAddress5: string = randomString(); - const uidAddress6: string = randomString(); - const uidAddress7: string = randomString(); - const uidAddress8: string = randomString(); - const uidAddress9: string = randomString(); - const uidAddress10: string = randomString(); - const uidAddress11: string = randomString(); - const uidAddress12: string = randomString(); - const uidAddress13: string = randomString(); - const uidAddress14: string = randomString(); - const uidAddress15: string = randomString(); - const uidAddress16: string = randomString(); - const uidAddress17: string = randomString(); - const uidAddress18: string = randomString(); - const uidAddress19: string = randomString(); - const uidAddress20: string = randomString(); - - const uidOffice1: string = randomString(); - - const uidUser1: string = randomString(); - const uidUser2: string = randomString(); - const uidUser3: string = randomString(); - const uidUser4: string = randomString(); - const uidUser5: string = randomString(); - - const uidRole1: string = randomString(); - const uidRole2: string = randomString(); - const uidOfficeRole1: string = randomString(); - const uidOfficeRole2: string = randomString(); - - const uidRule1: string = randomString(); - const uidRule2: string = randomString(); - - const uidOfficeFolder1: string = randomString(); - const uidOfficeFolder2: string = randomString(); - const uidOfficeFolder3: string = randomString(); - const uidOfficeFolder4: string = randomString(); - const uidOfficeFolder5: string = randomString(); - const uidOfficeFolder6: string = randomString(); - const uidOfficeFolder7: string = randomString(); - const uidOfficeFolder8: string = randomString(); - const uidOfficeFolder9: string = randomString(); - - const uidDeed1: string = randomString(); - const uidDeed2: string = randomString(); - const uidDeed3: string = randomString(); - const uidDeed4: string = randomString(); - const uidDeed5: string = randomString(); - const uidDeed6: string = randomString(); - const uidDeed7: string = randomString(); - const uidDeed8: string = randomString(); - const uidDeed9: string = randomString(); - const uidDeed10: string = randomString(); - const uidDeed11: string = randomString(); - const uidDeed12: string = randomString(); - const uidDeed13: string = randomString(); - const uidDeed14: string = randomString(); - const uidDeed15: string = randomString(); - const uidDeed16: string = randomString(); - const uidDeed17: string = randomString(); - const uidDeed18: string = randomString(); - const uidDeed19: string = randomString(); - const uidDeed20: string = randomString(); - const uidDeed21: string = randomString(); - - - const uidDeedType1: string = randomString(); - const uidDeedType2: string = randomString(); - const uidDeedType3: string = randomString(); - const uidDeedType4: string = randomString(); - - const uidDocumentType1: string = randomString(); - const uidDocumentType2: string = randomString(); - const uidDocumentType3: string = randomString(); - const uidDocumentType4: string = randomString(); - const uidDocumentType5: string = randomString(); - const uidDocumentType6: string = randomString(); - const uidDocumentType7: string = randomString(); - const uidDocumentType8: string = randomString(); - const uidDocumentType9: string = randomString(); - const uidDocumentType10: string = randomString(); - const uidDocumentType11: string = randomString(); - const uidDocumentType12: string = randomString(); - const uidDocumentType13: string = randomString(); - const uidDocumentType14: string = randomString(); - const uidDocumentType15: string = randomString(); - const uidDocumentType16: string = randomString(); - const uidDocumentType17: string = randomString(); - const uidDocumentType18: string = randomString(); - const uidDocumentType19: string = randomString(); - - - const uidOfficeFolderHasCustomer1: string = randomString(); - const uidOfficeFolderHasCustomer3: string = randomString(); - const uidOfficeFolderHasCustomer4: string = randomString(); - - const uidDeedHasDocumentType1: string = randomString(); - const uidDeedHasDocumentType2: string = randomString(); - const uidDeedHasDocumentType3: string = randomString(); - const uidDeedHasDocumentType4: string = randomString(); - const uidDeedHasDocumentType5: string = randomString(); - const uidDeedHasDocumentType6: string = randomString(); - const uidDeedHasDocumentType7: string = randomString(); - const uidDeedHasDocumentType8: string = randomString(); - const uidDeedHasDocumentType9: string = randomString(); - const uidDeedHasDocumentType10: string = randomString(); - const uidDeedHasDocumentType11: string = randomString(); - const uidDeedHasDocumentType12: string = randomString(); - const uidDeedHasDocumentType13: string = randomString(); - const uidDeedHasDocumentType14: string = randomString(); - const uidDeedHasDocumentType15: string = randomString(); - const uidDeedHasDocumentType16: string = randomString(); - const uidDeedHasDocumentType17: string = randomString(); - const uidDeedHasDocumentType18: string = randomString(); - const uidDeedHasDocumentType19: string = randomString(); - const uidDeedHasDocumentType20: string = randomString(); - const uidDeedHasDocumentType21: string = randomString(); - const uidDeedHasDocumentType22: string = randomString(); - const uidDeedHasDocumentType23: string = randomString(); - const uidDeedHasDocumentType24: string = randomString(); - const uidDeedHasDocumentType25: string = randomString(); - const uidDeedHasDocumentType26: string = randomString(); - const uidDeedHasDocumentType27: string = randomString(); - const uidDeedHasDocumentType28: string = randomString(); - const uidDeedHasDocumentType29: string = randomString(); - const uidDeedHasDocumentType30: string = randomString(); - const uidDeedHasDocumentType31: string = randomString(); - const uidDeedHasDocumentType32: string = randomString(); - const uidDeedHasDocumentType33: string = randomString(); - const uidDeedHasDocumentType34: string = randomString(); - const uidDeedHasDocumentType35: string = randomString(); - const uidDeedHasDocumentType36: string = randomString(); - const uidDeedHasDocumentType37: string = randomString(); - const uidDeedHasDocumentType38: string = randomString(); - const uidDeedHasDocumentType39: string = randomString(); - const uidDeedHasDocumentType40: string = randomString(); - const uidDeedHasDocumentType41: string = randomString(); - const uidDeedHasDocumentType42: string = randomString(); - const uidDeedHasDocumentType43: string = randomString(); - const uidDeedHasDocumentType44: string = randomString(); - const uidDeedHasDocumentType45: string = randomString(); - - - - const uidDeedTypeHasDocumentType1: string = randomString(); - const uidDeedTypeHasDocumentType2: string = randomString(); - const uidDeedTypeHasDocumentType3: string = randomString(); - const uidDeedTypeHasDocumentType4: string = randomString(); - const uidDeedTypeHasDocumentType5: string = randomString(); - const uidDeedTypeHasDocumentType6: string = randomString(); - const uidDeedTypeHasDocumentType7: string = randomString(); - const uidDeedTypeHasDocumentType8: string = randomString(); - const uidDeedTypeHasDocumentType9: string = randomString(); - const uidDeedTypeHasDocumentType10: string = randomString(); - const uidDeedTypeHasDocumentType11: string = randomString(); - const uidDeedTypeHasDocumentType12: string = randomString(); - const uidDeedTypeHasDocumentType13: string = randomString(); - const uidDeedTypeHasDocumentType14: string = randomString(); - const uidDeedTypeHasDocumentType15: string = randomString(); - const uidDeedTypeHasDocumentType16: string = randomString(); - const uidDeedTypeHasDocumentType17: string = randomString(); - const uidDeedTypeHasDocumentType18: string = randomString(); - const uidDeedTypeHasDocumentType19: string = randomString(); - const uidDeedTypeHasDocumentType20: string = randomString(); - const uidDeedTypeHasDocumentType21: string = randomString(); - const uidDeedTypeHasDocumentType22: string = randomString(); - - - - - const customers: Customers[] = [ - { - uid: uidCustomer1, - contact_uid: uidContact1, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer2, - contact_uid: uidContact2, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer3, - contact_uid: uidContact3, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer4, - contact_uid: uidContact4, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer5, - contact_uid: uidContact5, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer6, - contact_uid: uidContact6, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer7, - contact_uid: uidContact7, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer8, - contact_uid: uidContact8, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer9, - contact_uid: uidContact9, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer10, - contact_uid: uidContact10, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer11, - contact_uid: uidContact11, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer12, - contact_uid: uidContact12, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer13, - contact_uid: uidContact13, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer14, - contact_uid: uidContact14, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - uid: uidCustomer15, - contact_uid: uidContact15, - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - ]; - - const addresses: Addresses[] = [ - { - uid: uidAddress1, - address: "148 Avenue du bac", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress2, - address: "Rue Pierre Emillion", - city: "Pacé", - zip_code: 35740, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress3, - address: "Rue Pierre Charles", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress4, - address: "Rue Pierre Pologne", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress5, - address: "Rue Pierre Marcel", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress6, - address: "Rue Pierre Jacques", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress7, - address: "Rue Pierre Pascal", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress8, - address: "Rue Maxime Henry", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress9, - address: "Rue Maxime Francis", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress10, - address: "Avenue Paul Roger", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress11, - address: "Avenue Paul Franck", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress12, - address: "Avenue Paul Maréchal", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress13, - address: "Avenue Marcel Denis", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress14, - address: "Place Alexandre", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress15, - address: "Place Alexandre Jacques", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress16, - address: "Place Alexandre 2", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress17, - address: "Rue du livre", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress18, - address: "Place de la joie", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress19, - address: "Rue Paul Henry", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidAddress20, - address: "Rue Marcelin", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - - ]; - - const contacts: Contacts[] = [ - { - uid: uidContact1, - address_uid: uidAddress1, - first_name: "Manon", - last_name: "Simon", - email: "manon.simon@gmail.com", - phone_number: "06 12 34 56 78", - cell_phone_number: "06 12 34 56 78", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact2, - address_uid: uidAddress2, - first_name: "Kevin", - last_name: "Hautefaye", - email: "kevin.hautefaye@gmail.com", - phone_number: "06 23 45 67 89", - cell_phone_number: "06 23 45 67 89", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact3, - address_uid: uidAddress3, - first_name: "Maxime", - last_name: "Lalo", - email: "maxime.lalo@gmail.com", - phone_number: "06 34 56 78 90", - cell_phone_number: "06 34 56 78 90", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact4, - address_uid: uidAddress4, - first_name: "Vincent", - last_name: "Brognard", - email: "vincent.brognard@gmail.com", - phone_number: "06 45 67 89 01", - cell_phone_number: "06 45 67 89 01", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact5, - address_uid: uidAddress5, - first_name: "Maxime", - last_name: "Leroy", - email: "maxime.leroy@hotmail.fr", - phone_number: "06 56 78 90 12", - cell_phone_number: "06 56 78 90 12", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact6, - address_uid: uidAddress6, - first_name: "Thibault", - last_name: "Dubois", - email: "thibault.dubois@outlook.com", - phone_number: "06 67 89 01 23", - cell_phone_number: "06 67 89 01 23", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact7, - address_uid: uidAddress7, - first_name: "Léa", - last_name: "Fontaine", - email: "lea.fontaine@gmail.com", - phone_number: "06 78 90 12 34", - cell_phone_number: "06 78 90 12 34", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact8, - address_uid: uidAddress8, - first_name: "Guillaume", - last_name: "Renaud", - email: "guillaume.renaud@gmail.com", - phone_number: "06 89 01 23 45", - cell_phone_number: "06 89 01 23 45", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact9, - address_uid: uidAddress9, - first_name: "Lucie", - last_name: "Chevalier", - email: "lucie.chevalier@outlook.com", - phone_number: "07 12 34 56 78", - cell_phone_number: "07 12 34 56 78", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact10, - address_uid: uidAddress10, - first_name: "Sébastien", - last_name: "Dubois", - email: "sebastien.dubois@gmail.com", - phone_number: "07 23 45 67 89", - cell_phone_number: "07 23 45 67 89", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact11, - address_uid: uidAddress11, - first_name: "Mathilde", - last_name: "Durand", - email: "mathilde.durand@gmail.com", - phone_number: "07 34 56 78 90", - cell_phone_number: "07 34 56 78 90", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact12, - address_uid: uidAddress12, - first_name: "Antoine", - last_name: "Bernard", - email: "antoine.bernard@outlook.com", - phone_number: "07 45 67 89 01", - cell_phone_number: "07 45 67 89 01", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact13, - address_uid: uidAddress13, - first_name: "Camille", - last_name: "Laurent", - email: "camille.laurent@gmail.com", - phone_number: "07 56 78 90 12", - cell_phone_number: "07 56 78 90 12", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact14, - address_uid: uidAddress14, - first_name: "Julien", - last_name: "Mercier", - email: "julien.mercier@hotmail.fr", - phone_number: "07 67 89 01 23", - cell_phone_number: "07 67 89 01 23", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact15, - address_uid: uidAddress15, - first_name: "Charlotte", - last_name: "Lefebvre", - email: "charlotte.lefebvre@gmail.com", - phone_number: "07 78 90 12 34", - cell_phone_number: "07 78 90 12 34", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact16, - address_uid: uidAddress16, - first_name: "Caroline", - last_name: "Pallut", - email: "caroline.pallut@gmail.com", - phone_number: "07 89 01 23 45", - cell_phone_number: "07 89 01 23 45", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact17, - address_uid: uidAddress17, - first_name: "Nadège", - last_name: "Gauchet", - email: "nedege.gauchet@outlook.com", - phone_number: "06 11 22 33 44", - cell_phone_number: "06 11 22 33 44", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact18, - address_uid: uidAddress18, - first_name: "Matthieu", - last_name: "Bougeard", - email: "matthieu.bougeard@gmail.com", - phone_number: "07 22 33 44 55", - cell_phone_number: "07 22 33 44 55", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - uid: uidContact19, - address_uid: uidAddress19, - first_name: "Cécile", - last_name: "Celton", - email: "cecile.celton@outlook.com", - phone_number: "06 55 66 77 88", - cell_phone_number: "06 55 66 77 88", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - uid: uidContact20, - address_uid: uidAddress20, - first_name: "Gwendal", - last_name: "Texier", - email: "gwendal.texier@gmail.com", - phone_number: "07 88 99 00 11", - cell_phone_number: "07 88 99 00 11", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - ]; - - const offices: Offices[] = [ - { - uid: uidOffice1, - idNot: randomString(), - name: "Office Rennes", - crpcen: randomString(), - address_uid: uidAddress1, - created_at: new Date(), - updated_at: new Date(), - office_status: EOfficeStatus.ACTIVATED, - } - ]; - - const rules: Rules[] = [ - { - uid: uidRule1, - name: 'GET users', - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidRule2, - name: 'GET offices', - created_at: new Date(), - updated_at: new Date(), - } - ]; - - const roles: Roles[] = [ - { - uid: uidRole1, - name: 'super-admin', - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidRole2, - name: 'admin', - created_at: new Date(), - updated_at: new Date(), - } - ]; - - const officeRoles: OfficeRoles[] = [ - { - uid: uidOfficeRole1, - name: 'super-admin', - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - }, - { - uid: uidOfficeRole2, - name: 'admin', - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - } - ]; - - const users: Users[] = [ - { - uid: uidUser1, - created_at: new Date(), - updated_at: new Date(), - idNot: randomString(), - contact_uid: uidContact16, - office_uid: uidOffice1, - roles_uid: uidRole1, - office_role_uid: uidOfficeRole1, - }, - { - uid: uidUser2, - created_at: new Date(), - updated_at: new Date(), - idNot: randomString(), - contact_uid: uidContact17, - office_uid: uidOffice1, - roles_uid: uidRole2, - office_role_uid: uidOfficeRole2, - }, - { - uid: uidUser3, - created_at: new Date(), - updated_at: new Date(), - idNot: randomString(), - contact_uid: uidContact18, - office_uid: uidOffice1, - roles_uid: uidRole1, - office_role_uid: null, - }, - { - uid: uidUser4, - created_at: new Date(), - updated_at: new Date(), - idNot: randomString(), - contact_uid: uidContact19, - office_uid: uidOffice1, - roles_uid: uidRole2, - office_role_uid: null, - }, - { - uid: uidUser5, - created_at: new Date(), - updated_at: new Date(), - idNot: randomString(), - contact_uid: uidContact20, - office_uid: uidOffice1, - roles_uid: uidRole1, - office_role_uid: null, - }, - ]; - - const officeFolders: OfficeFolders[] = [ - { - uid: uidOfficeFolder1, - folder_number: "0001", - name: "Vente par Mme. Simon au profit de Mme. Lextrait", - deed_uid: uidDeed1, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - { - uid: uidOfficeFolder2, - folder_number: "0002", - name: "Donation des parts sociales de la société SARL FLORE", - deed_uid: uidDeed2, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - { - uid: uidOfficeFolder3, - folder_number: "0003", - name: "Vente par Mme. Lefebvre au profit de Mme. Mathieu", - deed_uid: uidDeed3, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - { - uid: uidOfficeFolder4, - folder_number: "0004", - name: "Vente par Mme. Chevalier au profit de M. Daveau", - deed_uid: uidDeed4, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - { - uid: uidOfficeFolder5, - folder_number: "0005", - name: "Vente par M. Lalo au profit de Mme. Pigale", - deed_uid: uidDeed5, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - { - uid: uidOfficeFolder6, - folder_number: "0006", - name: "Donation des parts sociales de la société SMART-TALENT", - deed_uid: uidDeed6, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - { - uid: uidOfficeFolder7, - folder_number: "0007", - name: "Vente par M. Girard au profit de M. Louis", - deed_uid: uidDeed7, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - { - uid: uidOfficeFolder8, - folder_number: "0008", - name: "Vente par Mme. Leclerc au profit de M. Louis", - deed_uid: uidDeed8, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - { - uid: uidOfficeFolder9, - folder_number: "0009", - name: "Vente par M. Lambert au profit de M. Holmes", - deed_uid: uidDeed9, - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office_uid: uidOffice1, - description: null, - archived_description: null, - }, - ]; - - const deeds: Deeds[] = [ - { - uid: uidDeed1, - deed_type_uid: uidDeedType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed2, - deed_type_uid: uidDeedType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed3, - deed_type_uid: uidDeedType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed4, - deed_type_uid: uidDeedType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed5, - deed_type_uid: uidDeedType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed6, - deed_type_uid: uidDeedType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed7, - deed_type_uid: uidDeedType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed8, - deed_type_uid: uidDeedType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed9, - deed_type_uid: uidDeedType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed10, - deed_type_uid: uidDeedType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed11, - deed_type_uid: uidDeedType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed12, - deed_type_uid: uidDeedType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed13, - deed_type_uid: uidDeedType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed14, - deed_type_uid: uidDeedType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed15, - deed_type_uid: uidDeedType3, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed16, - deed_type_uid: uidDeedType3, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed17, - deed_type_uid: uidDeedType3, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed18, - deed_type_uid: uidDeedType3, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed19, - deed_type_uid: uidDeedType3, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed20, - deed_type_uid: uidDeedType3, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeed21, - deed_type_uid: uidDeedType3, - created_at: new Date(), - updated_at: new Date(), - }, - ]; - - const deedTypes: DeedTypes[] = [ - { - uid: uidDeedType1, - name: "Acte de donation", - archived_at: null, - description: "Acte de donation", - office_uid: uidOffice1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedType2, - name: "Acte de vente", - archived_at: null, - description: "Acte de vente", - office_uid: uidOffice1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedType3, - name: "Acte de succession", - archived_at: null, - description: "Acte de succession", - office_uid: uidOffice1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedType4, - name: "Acte de vente de maison individuelle", - archived_at: null, - description: "Acte de vente de maison individuelle", - office_uid: uidOffice1, - created_at: new Date(), - updated_at: new Date(), - }, - - ]; - - const documents: Documents[] = [ - ]; - - const documentTypes: DocumentTypes[] = [ - { - uid: uidDocumentType1, - archived_at: null, - name: "Document d'identité", - office_uid: uidOffice1, - private_description: "Document officiel d'identification utilisé par plusieurs personnes pour prouver leur identité et leur nationalité (CNI, passeport)", - public_description: "Document officiel d'identification utilisé par plusieurs personnes pour prouver leur identité et leur nationalité (CNI, passeport)", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType2, - archived_at: null, - name: "Taxe Foncière", - office_uid: uidOffice1, - private_description: "Impôt annuel imposé sur les propriétés foncières et utilisé pour financer les services publics locaux.", - public_description: "Impôt annuel imposé sur les propriétés foncières et utilisé pour financer les services publics locaux.", - created_at: new Date(), - updated_at: new Date(), - }, - - { - uid: uidDocumentType3, - archived_at: null, - name: "Contrat Mariage", - office_uid: uidOffice1, - private_description: "Accord légal qui établit les droits et les obligations entre deux personnes s'unissant en mariage.", - public_description: "Accord légal qui établit les droits et les obligations entre deux personnes s'unissant en mariage.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType4, - archived_at: null, - name: "Livret de famille", - office_uid: uidOffice1, - private_description: "Document officiel qui enregistre les détails et les événements familiaux tels que les mariages, les naissances et les décès d'un couple et de leurs enfants.", - public_description: "Document officiel qui enregistre les détails et les événements familiaux tels que les mariages, les naissances et les décès d'un couple et de leurs enfants.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType16, - archived_at: null, - name: "Bail commercial", - office_uid: uidOffice1, - private_description: "Contrat légal entre un propriétaire et un locataire pour la location d'un bien immobilier utilisé à des fins commerciales ou professionnelles.", - public_description: "Contrat légal entre un propriétaire et un locataire pour la location d'un bien immobilier utilisé à des fins commerciales ou professionnelles.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType5, - archived_at: null, - name: "Statuts SCI", - office_uid: uidOffice1, - private_description: "Document légal qui définit les règles et les dispositions régissant la Société Civile Immobilière (SCI).", - public_description: "Document légal qui définit les règles et les dispositions régissant la Société Civile Immobilière (SCI).", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType6, - archived_at: null, - name: "Avis de taxe foncière", - office_uid: uidOffice1, - private_description: "Notification officielle indiquant le montant de l'impôt foncier dû sur une propriété.", - public_description: "Notification officielle indiquant le montant de l'impôt foncier dû sur une propriété.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType7, - archived_at: null, - name: "Appel de charge de copropriété", - office_uid: uidOffice1, - private_description: "Document envoyé aux copropriétaires pour les informer des dépenses et des charges communes liées à la gestion et à l'entretien de l'immeuble.", - public_description: "Document envoyé aux copropriétaires pour les informer des dépenses et des charges communes liées à la gestion et à l'entretien de l'immeuble.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType8, - archived_at: null, - name: "PVAG", - office_uid: uidOffice1, - private_description: "Compte rendu écrit des discussions, décisions et résolutions prises lors d'une réunion d'assemblée générale de copropriété.", - public_description: "Compte rendu écrit des discussions, décisions et résolutions prises lors d'une réunion d'assemblée générale de copropriété.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType9, - archived_at: null, - name: "Règlement de copropriété", - office_uid: uidOffice1, - private_description: "Document juridique qui établit les règles et les droits des copropriétaires d'un immeuble en copropriété.", - public_description: "Document juridique qui établit les règles et les droits des copropriétaires d'un immeuble en copropriété.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType10, - archived_at: null, - name: "Titre de propriété", - office_uid: uidOffice1, - private_description: "Document légal qui atteste de la propriété d'un bien immobilier et en identifie le propriétaire.", - public_description: "Document légal qui atteste de la propriété d'un bien immobilier et en identifie le propriétaire.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType11, - archived_at: null, - name: "Plan et loi carrez", - office_uid: uidOffice1, - private_description: "Document officiel qui mesure la superficie d'un lot ou d'un bien immobilier, conformément à la loi Carrez qui encadre les transactions immobilières.", - public_description: "Document officiel qui mesure la superficie d'un lot ou d'un bien immobilier, conformément à la loi Carrez qui encadre les transactions immobilières.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType12, - archived_at: null, - name: "CNI", - office_uid: uidOffice1, - private_description: "Document officiel d'identification délivré par l'État pour prouver l'identité et la nationalité d'une personne.", - public_description: "Document officiel d'identification délivré par l'État pour prouver l'identité et la nationalité d'une personne.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType13, - archived_at: null, - name: "Modifications règlement copropriété (plusieurs)", - office_uid: uidOffice1, - private_description: "Documents légaux qui apportent des changements ou des ajustements aux règles et dispositions du règlement de copropriété initial.", - public_description: "Documents légaux qui apportent des changements ou des ajustements aux règles et dispositions du règlement de copropriété initial.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType14, - archived_at: null, - name: "Avis de décès", - office_uid: uidOffice1, - private_description: "Notification officielle délivrée par les autorités compétentes pour informer du décès d'une personne.", - public_description: "Notification officielle délivrée par les autorités compétentes pour informer du décès d'une personne.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType15, - archived_at: null, - name: "Lettre de mission", - office_uid: uidOffice1, - private_description: "Document contractuel qui définit les termes et les objectifs d'une mission confiée à une personne ou à une entreprise.", - public_description: "Document contractuel qui définit les termes et les objectifs d'une mission confiée à une personne ou à une entreprise.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType17, - archived_at: null, - name: "DPE", - office_uid: uidOffice1, - private_description: "Diagnostic de Performance Energétique.", - public_description: "Diagnostic de Performance Energétique.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType18, - archived_at: null, - name: "RIB", - office_uid: uidOffice1, - private_description: "Relevé d'identité bancaire ou IBAN.", - public_description: "Relevé d'identité bancaire ou IBAN.", - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDocumentType19, - archived_at: null, - name: "Acte d'achat par la SCI", - office_uid: uidOffice1, - private_description: "Acte d'achat par la SCI.", - public_description: "Acte d'achat par la SCI.", - created_at: new Date(), - updated_at: new Date(), - }, - ]; - - const officeFolderHasCustomers: OfficeFolderHasCustomers[] = [ - { - uid: uidOfficeFolderHasCustomer1, - customer_uid: uidCustomer1, - office_folder_uid: uidOfficeFolder1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidOfficeFolderHasCustomer3, - customer_uid: uidCustomer3, - office_folder_uid: uidOfficeFolder3, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidOfficeFolderHasCustomer4, - customer_uid: uidCustomer4, - office_folder_uid: uidOfficeFolder4, - created_at: new Date(), - updated_at: new Date(), - }, - - ]; - - const deedHasDocumentTypes: DeedHasDocumentTypes[] = [ - { - uid: uidDeedHasDocumentType1, - deed_uid: uidDeed1, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType2, - deed_uid: uidDeed1, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType3, - deed_uid: uidDeed1, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType4, - deed_uid: uidDeed1, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType5, - deed_uid: uidDeed1, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedHasDocumentType6, - deed_uid: uidDeed2, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType7, - deed_uid: uidDeed2, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType8, - deed_uid: uidDeed2, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType9, - deed_uid: uidDeed2, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType10, - deed_uid: uidDeed2, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedHasDocumentType11, - deed_uid: uidDeed3, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType12, - deed_uid: uidDeed3, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType13, - deed_uid: uidDeed3, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType14, - deed_uid: uidDeed3, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType15, - deed_uid: uidDeed3, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedHasDocumentType16, - deed_uid: uidDeed4, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType17, - deed_uid: uidDeed4, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType18, - deed_uid: uidDeed4, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType19, - deed_uid: uidDeed4, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType20, - deed_uid: uidDeed4, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedHasDocumentType21, - deed_uid: uidDeed5, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType22, - deed_uid: uidDeed5, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType23, - deed_uid: uidDeed5, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType24, - deed_uid: uidDeed5, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType25, - deed_uid: uidDeed5, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedHasDocumentType26, - deed_uid: uidDeed6, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType27, - deed_uid: uidDeed6, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType28, - deed_uid: uidDeed6, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType29, - deed_uid: uidDeed6, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType30, - deed_uid: uidDeed6, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedHasDocumentType31, - deed_uid: uidDeed7, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType32, - deed_uid: uidDeed7, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType33, - deed_uid: uidDeed7, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType34, - deed_uid: uidDeed7, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType35, - deed_uid: uidDeed7, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedHasDocumentType36, - deed_uid: uidDeed8, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType37, - deed_uid: uidDeed8, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType38, - deed_uid: uidDeed8, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType39, - deed_uid: uidDeed8, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType40, - deed_uid: uidDeed8, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedHasDocumentType41, - deed_uid: uidDeed9, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType42, - deed_uid: uidDeed9, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType43, - deed_uid: uidDeed9, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType44, - deed_uid: uidDeed9, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedHasDocumentType45, - deed_uid: uidDeed9, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - ]; - - const deedTypeHasDocumentTypes: DeedTypeHasDocumentTypes[] = [ - { - uid: uidDeedTypeHasDocumentType1, - deed_type_uid: uidDeedType1, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType2, - deed_type_uid: uidDeedType1, - document_type_uid: uidDocumentType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType3, - deed_type_uid: uidDeedType1, - document_type_uid: uidDocumentType3, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType9, - deed_type_uid: uidDeedType1, - document_type_uid: uidDocumentType4, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType10, - deed_type_uid: uidDeedType1, - document_type_uid: uidDocumentType16, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType11, - deed_type_uid: uidDeedType1, - document_type_uid: uidDocumentType5, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType12, - deed_type_uid: uidDeedType1, - document_type_uid: uidDocumentType19, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedTypeHasDocumentType13, - deed_type_uid: uidDeedType2, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType14, - deed_type_uid: uidDeedType2, - document_type_uid: uidDocumentType13, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType15, - deed_type_uid: uidDeedType2, - document_type_uid: uidDocumentType2, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType16, - deed_type_uid: uidDeedType2, - document_type_uid: uidDocumentType8, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType17, - deed_type_uid: uidDeedType2, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedTypeHasDocumentType18, - deed_type_uid: uidDeedType3, - document_type_uid: uidDocumentType14, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType19, - deed_type_uid: uidDeedType3, - document_type_uid: uidDocumentType15, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType20, - deed_type_uid: uidDeedType3, - document_type_uid: uidDocumentType4, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType21, - deed_type_uid: uidDeedType3, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType22, - deed_type_uid: uidDeedType3, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - - - { - uid: uidDeedTypeHasDocumentType4, - deed_type_uid: uidDeedType4, - document_type_uid: uidDocumentType1, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType5, - deed_type_uid: uidDeedType4, - document_type_uid: uidDocumentType6, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType6, - deed_type_uid: uidDeedType4, - document_type_uid: uidDocumentType10, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType7, - deed_type_uid: uidDeedType4, - document_type_uid: uidDocumentType17, - created_at: new Date(), - updated_at: new Date(), - }, - { - uid: uidDeedTypeHasDocumentType8, - deed_type_uid: uidDeedType4, - document_type_uid: uidDocumentType18, - created_at: new Date(), - updated_at: new Date(), - }, - ]; - - - for (const address of addresses) { - await prisma.addresses.create({ data: address }); - } - - for (const contact of contacts) { - await prisma.contacts.create({ data: contact }); - } - - for (const office of offices) { - await prisma.offices.create({ data: office }); - } - - for (const rule of rules) { - await prisma.rules.create({ data: rule }); - } - - for (const role of roles) { - await prisma.roles.create({ data: role }); - } - - for (const officeRole of officeRoles) { - await prisma.officeRoles.create({ data: officeRole }); - } - - for (const user of users) { - await prisma.users.create({ data: user }); - } - - for (const customer of customers) { - await prisma.customers.create({ data: customer }); - } - - for (const deedType of deedTypes) { - await prisma.deedTypes.create({ data: deedType }); - } - - for (const deed of deeds) { - await prisma.deeds.create({ data: deed }); - } - for (const officeFolder of officeFolders) { - await prisma.officeFolders.create({ data: officeFolder }); - } - - for (const documentType of documentTypes) { - await prisma.documentTypes.create({ data: documentType }); - } - - for (const document of documents) { - await prisma.documents.create({ data: document }); - } - - for (const officeFolderHasCustomer of officeFolderHasCustomers) { - await prisma.officeFolderHasCustomers.create({ data: officeFolderHasCustomer }); - } - - for (const deedHasDocumentType of deedHasDocumentTypes) { - await prisma.deedHasDocumentTypes.create({ data: deedHasDocumentType }); - } - - for (const deedTypeHasDocumentType of deedTypeHasDocumentTypes) { - await prisma.deedTypeHasDocumentTypes.create({ data: deedTypeHasDocumentType }); - } - - console.log(">MOCK DATA - Seeding completed!"); -})(); diff --git a/src/common/repositories/AddressesRepository.ts b/src/common/repositories/AddressesRepository.ts deleted file mode 100644 index 268d9059..00000000 --- a/src/common/repositories/AddressesRepository.ts +++ /dev/null @@ -1,38 +0,0 @@ -import Database from "@Common/databases/database"; -import BaseRepository from "@Repositories/BaseRepository"; -import { Service } from "typedi"; -import { Addresses } from "@prisma/client"; - -@Service() -export default class AddressesRepository extends BaseRepository { - constructor(private database: Database) { - super(); - } - protected get model() { - return this.database.getClient().addresses; - } - protected get instanceDb() { - return this.database.getClient(); - } - - /** - * @description : Find many addresses - */ - public async findMany(query: any): Promise { - query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); - return this.model.findMany(query); - } - - /** - * @description : Find one address - */ - public async findOneByUid(uid: string): Promise { - const addressEntity = await this.model.findUnique({ - where: { - uid: uid, - }, - }); - - return addressEntity; - } -} diff --git a/src/common/repositories/ContactsRepository.ts b/src/common/repositories/ContactsRepository.ts deleted file mode 100644 index 26836b4a..00000000 --- a/src/common/repositories/ContactsRepository.ts +++ /dev/null @@ -1,38 +0,0 @@ -import Database from "@Common/databases/database"; -import BaseRepository from "@Repositories/BaseRepository"; -import { Service } from "typedi"; -import { Contacts } from "@prisma/client"; - -@Service() -export default class ContactsRepository extends BaseRepository { - constructor(private database: Database) { - super(); - } - protected get model() { - return this.database.getClient().contacts; - } - protected get instanceDb() { - return this.database.getClient(); - } - - /** - * @description : Find many contacts - */ - public async findMany(query: any): Promise { - query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); - return this.model.findMany(query); - } - - /** - * @description : Find unique contact - */ - public async findOneByUid(uid: string): Promise { - const contactEntity = await this.model.findUnique({ - where: { - uid: uid, - }, - }); - - return contactEntity; - } -} diff --git a/src/common/repositories/CustomersRepository.ts b/src/common/repositories/CustomersRepository.ts index c1b48c22..a4ebfe4a 100644 --- a/src/common/repositories/CustomersRepository.ts +++ b/src/common/repositories/CustomersRepository.ts @@ -19,11 +19,7 @@ export default class CustomersRepository extends BaseRepository { /** * @description : Find many customers */ - public async findMany(query: Prisma.CustomersFindManyArgs): Promise< - (Customers & { - contact: Contacts; - })[] - > { + public async findMany(query: Prisma.CustomersFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); if (!query.include) return this.model.findMany({ ...query, include: { contact: true } }); return this.model.findMany({ ...query, include: { contact: { include: { address: true } } } }); @@ -32,7 +28,7 @@ export default class CustomersRepository extends BaseRepository { /** * @description : Create a customer */ - public async create(customer: Customer): Promise { + public async create(customer: Customer): Promise { const createArgs: Prisma.CustomersCreateArgs = { data: { status: ECustomerStatus.PENDING, @@ -50,12 +46,12 @@ export default class CustomersRepository extends BaseRepository { }, }; - if (customer.contact!.address) { + if (customer.contact?.address) { createArgs.data.contact!.create!.address = { create: { - address: customer.contact!.address!.address, - zip_code: customer.contact!.address!.zip_code, - city: customer.contact!.address!.city, + address: customer.contact?.address?.address, + zip_code: customer.contact?.address?.zip_code, + city: customer.contact?.address?.city, }, }; } @@ -65,7 +61,7 @@ export default class CustomersRepository extends BaseRepository { /** * @description : Update data from a customer */ - public async update(uid: string, customer: Customer): Promise { + public async update(uid: string, customer: Customer): Promise { const updateArgs: Prisma.CustomersUpdateArgs = { where: { uid: uid, @@ -98,17 +94,12 @@ export default class CustomersRepository extends BaseRepository { /** * @description : Find unique customer */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.CustomersFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.CustomersInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const customerEntity = await this.model.findUnique(findOneArgs); - - return customerEntity; + include: query, + }); } } diff --git a/src/common/repositories/DeedTypesRepository.ts b/src/common/repositories/DeedTypesRepository.ts index 7a695488..3004726a 100644 --- a/src/common/repositories/DeedTypesRepository.ts +++ b/src/common/repositories/DeedTypesRepository.ts @@ -1,7 +1,7 @@ import Database from "@Common/databases/database"; import BaseRepository from "@Repositories/BaseRepository"; import { Service } from "typedi"; -import { DeedTypes, Prisma } from "@prisma/client"; +import { DeedTypes, DocumentTypes, Prisma } from "@prisma/client"; import { DeedType } from "le-coffre-resources/dist/SuperAdmin"; @Service() @@ -19,7 +19,7 @@ export default class DeedTypesRepository extends BaseRepository { /** * @description : Find many deed types */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.DeedTypesFindManyArgs): Promise { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -39,23 +39,20 @@ export default class DeedTypesRepository extends BaseRepository { }, }, }; - if (deedType.deed_type_has_document_types) { - createArgs.data.deed_type_has_document_types = { - createMany: { - data: deedType.deed_type_has_document_types.map((relation) => ({ - document_type_uid: relation.document_type.uid!, - })), - skipDuplicates: true, - }, + if (deedType.document_types) { + createArgs.data.document_types = { + connect: deedType.document_types.map((documentType) => ({ + uid: documentType.uid, + })), }; } - return this.model.create(createArgs); + return this.model.create({...createArgs, include: { document_types: true }}); } /** * @description : Update data of a deed type */ - public async update(uid: string, deedType: DeedType): Promise { + public async update(uid: string, deedType: DeedType): Promise { const updateArgs: Prisma.DeedTypesUpdateArgs = { where: { uid: uid, @@ -69,39 +66,26 @@ export default class DeedTypesRepository extends BaseRepository { uid: deedType.office!.uid, }, }, - }, - include: { - deed_type_has_document_types: true, + document_types: { + set: deedType.document_types?.map((documentType) => ({ + uid: documentType.uid!, + })) + } }, }; - if (deedType.deed_type_has_document_types) { - updateArgs.data.deed_type_has_document_types = { - deleteMany: { deed_type_uid: uid }, - createMany: { - data: deedType.deed_type_has_document_types.map((relation) => ({ - document_type_uid: relation.document_type.uid!, - })), - skipDuplicates: true, - }, - }; - } - return this.model.update(updateArgs); + + return this.model.update({...updateArgs, include: { document_types: true }}); } /** * @description : Find unique deed type */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.DeedTypesFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.DeedTypesInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const deedTypeEntity = await this.model.findUnique(findOneArgs); - - return deedTypeEntity; + include: query, + }); } } diff --git a/src/common/repositories/DeedsRepository.ts b/src/common/repositories/DeedsRepository.ts index ce6bef38..80fbe59a 100644 --- a/src/common/repositories/DeedsRepository.ts +++ b/src/common/repositories/DeedsRepository.ts @@ -1,7 +1,7 @@ import Database from "@Common/databases/database"; import BaseRepository from "@Repositories/BaseRepository"; import { Service } from "typedi"; -import { Deeds, Prisma } from "@prisma/client"; +import { Deeds, DocumentTypes, Prisma } from "@prisma/client"; import { Deed } from "le-coffre-resources/dist/Notary"; @Service() @@ -19,7 +19,7 @@ export default class DeedsRepository extends BaseRepository { /** * @description : Find many users */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.DeedsFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -27,7 +27,7 @@ export default class DeedsRepository extends BaseRepository { /** * @description : Create a deed based on a deed type */ - public async create(deed: Deed): Promise { + public async create(deed: Deed): Promise { const createArgs: Prisma.DeedsCreateArgs = { data: { deed_type: { @@ -41,66 +41,53 @@ export default class DeedsRepository extends BaseRepository { where: { uid: deed.deed_type!.uid, }, - include: { deed_type_has_document_types: true }, + include: { document_types: true }, }); if (deedTypeWithDocumentTypes.archived_at) throw new Error("deed type is archived"); - if (deedTypeWithDocumentTypes.deed_type_has_document_types) { - createArgs.data.deed_has_document_types = { - createMany: { - data: deedTypeWithDocumentTypes.deed_type_has_document_types.map((relation) => ({ - document_type_uid: relation.document_type_uid, - })), - skipDuplicates: true, - }, + if (deedTypeWithDocumentTypes.document_types) { + createArgs.data.document_types = { + connect: deedTypeWithDocumentTypes.document_types.map((documentType) => ({ + uid: documentType.uid, + })), }; } - return this.model.create(createArgs); + return this.model.create({ ...createArgs, include: { document_types: true } }); } /** * @description : Update data of a deed type */ - public async update(uid: string, deed: Deed): Promise { + public async update(uid: string, deed: Deed): Promise { const updateArgs: Prisma.DeedsUpdateArgs = { where: { uid: uid, }, - data: {}, + data: { + document_types: { + set: deed.document_types?.map((documentType) => ({ + uid: documentType.uid!, + })), + }, + }, include: { - deed_has_document_types: true, + document_types: true, }, }; - - if (deed.deed_has_document_types) { - updateArgs.data.deed_has_document_types = { - deleteMany: { deed_uid: uid }, - createMany: { - data: deed.deed_has_document_types.map((relation) => ({ - document_type_uid: relation.document_type.uid!, - })), - skipDuplicates: true, - }, - }; - } - return this.model.update(updateArgs); + + return this.model.update({ ...updateArgs, include: { document_types: true } }); } /** * @description : Find unique deed */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.DeedsFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.DeedsInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const deedTypeEntity = await this.model.findUnique(findOneArgs); - - return deedTypeEntity; + include: query, + }); } } diff --git a/src/common/repositories/DocumentTypesRepository.ts b/src/common/repositories/DocumentTypesRepository.ts index 04d785ba..0a0eab32 100644 --- a/src/common/repositories/DocumentTypesRepository.ts +++ b/src/common/repositories/DocumentTypesRepository.ts @@ -19,7 +19,7 @@ export default class DocumentTypesRepository extends BaseRepository { /** * @description : Find many document types */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.DocumentTypesFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -28,7 +28,7 @@ export default class DocumentTypesRepository extends BaseRepository { * @description : Create a document type */ public async create(documentType: DocumentType): Promise { - return this.model.create({ + const createArgs: Prisma.DocumentTypesCreateArgs = { data: { name: documentType.name, public_description: documentType.public_description, @@ -39,14 +39,15 @@ export default class DocumentTypesRepository extends BaseRepository { }, }, }, - }); + }; + return this.model.create(createArgs); } /** * @description : update given document type */ public async update(uid: string, documentType: DocumentType): Promise { - return this.model.update({ + const updateArgs: Prisma.DocumentTypesUpdateArgs = { where: { uid: uid, }, @@ -60,24 +61,21 @@ export default class DocumentTypesRepository extends BaseRepository { uid: documentType.office!.uid, }, }, - }, - }); + } + }; + + return this.model.update(updateArgs); } /** * @description : find unique document type */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.DocumentTypesFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.DocumentTypesInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const documentTypeEntity = await this.model.findUnique(findOneArgs); - - return documentTypeEntity; + include: query, + }); } } diff --git a/src/common/repositories/DocumentsRepository.ts b/src/common/repositories/DocumentsRepository.ts index d6e784c9..2f1f08d6 100644 --- a/src/common/repositories/DocumentsRepository.ts +++ b/src/common/repositories/DocumentsRepository.ts @@ -1,7 +1,7 @@ import Database from "@Common/databases/database"; import BaseRepository from "@Repositories/BaseRepository"; import { Service } from "typedi"; -import { Documents, EDocumentStatus, Prisma } from "@prisma/client"; +import { DocumentTypes, Documents, EDocumentStatus, Prisma } from "@prisma/client"; import { Document } from "le-coffre-resources/dist/SuperAdmin"; @Service() @@ -19,7 +19,7 @@ export default class DocumentsRepository extends BaseRepository { /** * @description : Find many documents */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.DocumentsFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -27,8 +27,8 @@ export default class DocumentsRepository extends BaseRepository { /** * @description : Create a document */ - public async create(document: Document): Promise { - const documentCreated = await this.model.create({ + public async create(document: Document): Promise { + const createArgs: Prisma.DocumentsCreateArgs = { data: { folder: { connect: { @@ -46,7 +46,9 @@ export default class DocumentsRepository extends BaseRepository { }, }, }, - }); + }; + + const documentCreated = await this.model.create({...createArgs, include: {document_type: true}}); await this.instanceDb.documentHistory.create({ data: { @@ -64,15 +66,29 @@ export default class DocumentsRepository extends BaseRepository { /** * @description : Create many documents linked to an office folder */ - public async createMany(documents: Document[]): Promise { - return this.model.createMany({ + public async createMany(documents: Document[]): Promise { + const createArgs: Prisma.DocumentsCreateManyArgs = { data: documents.map((document) => ({ folder_uid: document.folder!.uid!, depositor_uid: document.depositor!.uid!, document_type_uid: document.document_type!.uid!, })), skipDuplicates: true, - }); + }; + + const batchPayload = await this.model.createMany(createArgs); + + const documentsCreated = await this.model.findMany({orderBy: {created_at: 'desc'}, take: batchPayload.count}); + + const createHistoryArgs: Prisma.DocumentHistoryCreateManyArgs = { + data: documentsCreated.map((document) => ({ + document_uid: document.uid!, + })), + skipDuplicates: true, + }; + await this.instanceDb.documentHistory.createMany(createHistoryArgs); + + return documentsCreated; } /** @@ -109,17 +125,12 @@ export default class DocumentsRepository extends BaseRepository { /** * @description : Find unique document */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.DocumentsFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.DocumentsInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const documentEntity = await this.model.findUnique(findOneArgs); - - return documentEntity; + include: query, + }); } } diff --git a/src/common/repositories/FilesRepository.ts b/src/common/repositories/FilesRepository.ts index 9a0816c9..d7998b54 100644 --- a/src/common/repositories/FilesRepository.ts +++ b/src/common/repositories/FilesRepository.ts @@ -1,7 +1,7 @@ import Database from "@Common/databases/database"; import BaseRepository from "@Repositories/BaseRepository"; import { Service } from "typedi"; -import { Files } from "@prisma/client"; +import { Documents, Files, Prisma } from "@prisma/client"; import { File } from "le-coffre-resources/dist/SuperAdmin"; @Service() @@ -19,7 +19,7 @@ export default class FilesRepository extends BaseRepository { /** * @description : Find many files */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.FilesFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -27,8 +27,8 @@ export default class FilesRepository extends BaseRepository { /** * @description : Create a file linked to a document */ - public async create(file: File, key: string): Promise { - return this.model.create({ + public async create(file: File, key: string): Promise { + const createArgs: Prisma.FilesCreateArgs = { data: { document: { connect: { @@ -40,30 +40,35 @@ export default class FilesRepository extends BaseRepository { mimetype: file.mimetype, size: file.size, key: key - }, - include: { document: true } - }); + } + }; + return this.model.create({...createArgs, include: { document: true }}); } /** * @description : Update data of a file */ - public async update(uid: string, file: File): Promise { - return this.model.update({ + public async update(uid: string, file: File, key: string): Promise { + const updateArgs: Prisma.FilesUpdateArgs = { where: { uid: uid, }, data: { + file_name: file.file_name, file_path: file.file_path, - }, - }); + mimetype: file.mimetype, + size: file.size, + key: key + } + }; + return this.model.update({...updateArgs, include: { document: true }}); } /** * @description : Delete a file key and archive */ - public async deleteKeyAndArchive(uid: string): Promise { - return this.model.update({ + public async deleteKeyAndArchive(uid: string): Promise { + const updateArgs: Prisma.FilesUpdateArgs = { where: { uid: uid, }, @@ -71,19 +76,19 @@ export default class FilesRepository extends BaseRepository { key: null, archived_at: new Date(Date.now()) } - }); + }; + return this.model.update({...updateArgs, include: { document: true }}); } /** * @description : Find unique file */ - public async findOneByUid(uid: string): Promise { - const fileEntity = await this.model.findUnique({ + public async findOneByUid(uid: string, query?: Prisma.FilesInclude) { + return this.model.findUnique({ where: { uid: uid, }, + include: query, }); - - return fileEntity; } } diff --git a/src/common/repositories/OfficeFoldersRepository.ts b/src/common/repositories/OfficeFoldersRepository.ts index d148cc46..70530560 100644 --- a/src/common/repositories/OfficeFoldersRepository.ts +++ b/src/common/repositories/OfficeFoldersRepository.ts @@ -1,7 +1,7 @@ import Database from "@Common/databases/database"; import BaseRepository from "@Repositories/BaseRepository"; import { Service } from "typedi"; -import { EFolderStatus, OfficeFolders, Prisma } from "@prisma/client"; +import { Customers, Documents, EFolderStatus, OfficeFolders, Prisma, Users } from "@prisma/client"; import { OfficeFolder } from "le-coffre-resources/dist/SuperAdmin"; @Service() @@ -19,7 +19,7 @@ export default class OfficeFoldersRepository extends BaseRepository { /** * @description : Find many office folders */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.OfficeFoldersFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -27,7 +27,7 @@ export default class OfficeFoldersRepository extends BaseRepository { /** * @description : Create new office folder with stakeholders */ - public async create(officeFolder: OfficeFolder): Promise { + public async create(officeFolder: OfficeFolder): Promise { const createArgs: Prisma.OfficeFoldersCreateArgs = { data: { folder_number: officeFolder.folder_number, @@ -36,7 +36,7 @@ export default class OfficeFoldersRepository extends BaseRepository { status: EFolderStatus.LIVE, deed: { connect: { - uid: officeFolder.deed?.uid + uid: officeFolder.deed?.uid, }, }, office: { @@ -44,28 +44,24 @@ export default class OfficeFoldersRepository extends BaseRepository { uid: officeFolder.office!.uid, }, }, - }, - include: { - office_folder_has_stakeholder: true, - }, - }; - if (officeFolder.office_folder_has_stakeholder) { - createArgs.data.office_folder_has_stakeholder = { - createMany: { - data: officeFolder.office_folder_has_stakeholder.map((relation) => ({ - user_stakeholder_uid: relation.user_stakeholder.uid!, + stakeholders: { + connect: officeFolder.stakeholders?.map((stakeholder) => ({ + uid: stakeholder.uid!, })), - skipDuplicates: true, - }, - }; - } - return this.model.create(createArgs); + } + } + }; + + return this.model.create({...createArgs, include: {stakeholders: true}}); } /** * @description : Update data of an office folder */ - public async update(officeFolderuid: string, officeFolder: OfficeFolder): Promise { + public async update( + officeFolderuid: string, + officeFolder: OfficeFolder, + ): Promise { const updateArgs: Prisma.OfficeFoldersUpdateArgs = { where: { uid: officeFolderuid, @@ -76,64 +72,44 @@ export default class OfficeFoldersRepository extends BaseRepository { description: officeFolder.description, status: EFolderStatus[officeFolder.status as keyof typeof EFolderStatus], archived_description: officeFolder.archived_description, - }, - include: { - office_folder_has_stakeholder: true, - office_folder_has_customers: true, - documents: true, + stakeholders: { + set: officeFolder.stakeholders?.map((stakeholder) => ({ + uid: stakeholder.uid!, + })), + }, + customers: { + set: officeFolder.customers?.map((customer) => ({ + uid: customer.uid!, + })), + }, + documents: { + set: officeFolder.documents?.map((document) => ({ + uid: document.uid!, + })), + }, }, }; - if (officeFolder.office_folder_has_stakeholder) { - updateArgs.data.office_folder_has_stakeholder = { - deleteMany: { office_folder_uid: officeFolderuid }, - createMany: { - data: officeFolder.office_folder_has_stakeholder.map((relation) => ({ - user_stakeholder_uid: relation.user_stakeholder.uid!, - })), - skipDuplicates: true, - }, - }; - } - if (officeFolder.office_folder_has_customers) { - updateArgs.data.office_folder_has_customers = { - deleteMany: { office_folder_uid: officeFolderuid }, - createMany: { - data: officeFolder.office_folder_has_customers.map((relation) => ({ - customer_uid: relation.customer.uid!, - })), - skipDuplicates: true, - }, - }; - } - if (officeFolder.documents) { - updateArgs.data.documents = { - createMany: { - data: officeFolder.documents.map((relation) => ({ - document_type_uid: relation.document_type!.uid!, - depositor_uid: relation.depositor!.uid!, - })), - skipDuplicates: true, - }, - }; - } - return this.model.update(updateArgs); + + return this.model.update({ + ...updateArgs, + include: { + stakeholders: true, + customers: true, + documents: true, + }, + }); } /** * @description : Find one office folder */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.OfficeFoldersFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.OfficeFoldersInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const officeFolderEntity = await this.model.findUnique(findOneArgs); - - return officeFolderEntity; + include: query, + }); } /** diff --git a/src/common/repositories/OfficeRolesRepository.ts b/src/common/repositories/OfficeRolesRepository.ts index a197e725..781920ef 100644 --- a/src/common/repositories/OfficeRolesRepository.ts +++ b/src/common/repositories/OfficeRolesRepository.ts @@ -1,7 +1,7 @@ import Database from "@Common/databases/database"; import BaseRepository from "@Repositories/BaseRepository"; import { Service } from "typedi"; -import { OfficeRoles, Prisma } from "@prisma/client"; +import { OfficeRoles, Prisma, Rules } from "@prisma/client"; import { OfficeRole } from "le-coffre-resources/dist/SuperAdmin"; @Service() @@ -19,7 +19,7 @@ export default class OfficeRolesRepository extends BaseRepository { /** * @description : Find many officeRoles */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.OfficeRolesFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -27,7 +27,7 @@ export default class OfficeRolesRepository extends BaseRepository { /** * @description : Create new officeRole with rules */ - public async create(officeRole: OfficeRole): Promise { + public async create(officeRole: OfficeRole): Promise { const createArgs: Prisma.OfficeRolesCreateArgs = { data: { name: officeRole.name, @@ -44,13 +44,13 @@ export default class OfficeRolesRepository extends BaseRepository { }, }; - return this.model.create(createArgs); + return this.model.create({...createArgs, include: {rules: true}}); } /** * @description : Update data of a officeRole with rules */ - public async update(officeRole: OfficeRole): Promise { + public async update(officeRole: OfficeRole): Promise { const updateArgs: Prisma.OfficeRolesUpdateArgs = { where: { uid: officeRole.uid, @@ -65,24 +65,19 @@ export default class OfficeRolesRepository extends BaseRepository { }, }; - return this.model.update(updateArgs); + return this.model.update({...updateArgs, include: {rules: true}}); } /** * @description : Find one officeRole */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.OfficeRolesFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.OfficeRolesInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const officeRoleEntity = await this.model.findUnique(findOneArgs); - - return officeRoleEntity; + include: query, + }); } /** diff --git a/src/common/repositories/OfficesRepository.ts b/src/common/repositories/OfficesRepository.ts index e74a1d52..f1b72517 100644 --- a/src/common/repositories/OfficesRepository.ts +++ b/src/common/repositories/OfficesRepository.ts @@ -19,7 +19,7 @@ export default class OfficesRepository extends BaseRepository { /** * @description : Find many users */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.OfficesFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); @@ -29,7 +29,7 @@ export default class OfficesRepository extends BaseRepository { * @description : Create an office */ public async create(office: OfficeRessource): Promise { - return this.model.create({ + const createArgs: Prisma.OfficesCreateArgs = { data: { idNot: office.idNot, name: office.name, @@ -43,14 +43,15 @@ export default class OfficesRepository extends BaseRepository { }, office_status: EOfficeStatus.DESACTIVATED, }, - }); + }; + return this.model.create(createArgs); } /** * @description : Update data from an office */ public async update(uid: string, office: OfficeRessource): Promise { - return this.model.update({ + const updateArgs: Prisma.OfficesUpdateArgs = { where: { uid: uid, }, @@ -65,23 +66,29 @@ export default class OfficesRepository extends BaseRepository { }, office_status: EOfficeStatus[office.office_status as keyof typeof EOfficeStatus], }, + }; + return this.model.update(updateArgs); + } + + /** + * @description : Find one office + */ + public async findOneByUid(uid: string, query?: Prisma.OfficesInclude) { + return this.model.findUnique({ + where: { + uid: uid, + }, + include: query, }); } /** * @description : Find one office */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.OfficesFindUniqueArgs = { - where: { - uid: uid, - }, - }; - if (query) { - findOneArgs.include = query; - } - const officeEntity = await this.model.findUnique(findOneArgs); - - return officeEntity; + public async findOneByProvider(providerName: string, id: string, query?: Prisma.OfficesInclude) { + return this.model.findUnique({ + where: { [providerName]: id }, + include: query, + }); } } diff --git a/src/common/repositories/RolesRepository.ts b/src/common/repositories/RolesRepository.ts index 56e5f919..20d203c7 100644 --- a/src/common/repositories/RolesRepository.ts +++ b/src/common/repositories/RolesRepository.ts @@ -19,7 +19,7 @@ export default class RolesRepository extends BaseRepository { /** * @description : Find many roles */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.RolesFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -66,18 +66,13 @@ export default class RolesRepository extends BaseRepository { /** * @description : Find one role */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.RolesFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.RolesInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const roleEntity = await this.model.findUnique(findOneArgs); - - return roleEntity; + include: query, + }); } /** diff --git a/src/common/repositories/RulesRepository.ts b/src/common/repositories/RulesRepository.ts index 7d015429..431d2cc7 100644 --- a/src/common/repositories/RulesRepository.ts +++ b/src/common/repositories/RulesRepository.ts @@ -19,7 +19,7 @@ export default class RulesRepository extends BaseRepository { /** * @description : Find many rules */ - public async findMany(query: any): Promise { + public async findMany(query: Prisma.RulesFindManyArgs) { query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } @@ -56,18 +56,13 @@ export default class RulesRepository extends BaseRepository { /** * @description : Find one rule */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.RulesFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.RulesInclude) { + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const ruleEntity = await this.model.findUnique(findOneArgs); - - return ruleEntity; + include: query, + }); } /** diff --git a/src/common/repositories/UsersRepository.ts b/src/common/repositories/UsersRepository.ts index 8767fb5a..a2f89268 100644 --- a/src/common/repositories/UsersRepository.ts +++ b/src/common/repositories/UsersRepository.ts @@ -157,18 +157,13 @@ export default class UsersRepository extends BaseRepository { /** * @description : Find one user */ - public async findOneByUid(uid: string, query?: any): Promise { - const findOneArgs: Prisma.UsersFindUniqueArgs = { + public async findOneByUid(uid: string, query?: Prisma.UsersInclude){ + return this.model.findUnique({ where: { uid: uid, }, - }; - if (query) { - findOneArgs.include = query; - } - const userEntity = await this.model.findUnique(findOneArgs); - - return userEntity; + include: query, + }); } /** diff --git a/src/services/common/AddressesService/AddressesService.ts b/src/services/common/AddressesService/AddressesService.ts deleted file mode 100644 index 4054aaba..00000000 --- a/src/services/common/AddressesService/AddressesService.ts +++ /dev/null @@ -1,27 +0,0 @@ -import AddressesRepository from "@Repositories/AddressesRepository"; -import BaseService from "@Services/BaseService"; -import { Addresses } from "@prisma/client"; -import { Service } from "typedi"; - -@Service() -export default class AddressesService extends BaseService { - constructor(private addressRepository: AddressesRepository) { - super(); - } - - /** - * @description : Get all addresses - * @throws {Error} If addresses cannot be get - */ - public async get(query: any): Promise { - return this.addressRepository.findMany(query); - } - - /** - * @description : Get a address by uid - * @throws {Error} If address cannot be get - */ - public async getByUid(uid: string): Promise { - return this.addressRepository.findOneByUid(uid); - } -} diff --git a/src/services/common/AuthService/AuthService.ts b/src/services/common/AuthService/AuthService.ts index 39348d51..2890f951 100644 --- a/src/services/common/AuthService/AuthService.ts +++ b/src/services/common/AuthService/AuthService.ts @@ -32,19 +32,29 @@ export default class AuthService extends BaseService { if (!user) return null; const rules: string[] = []; - if (user.office_role?.rules.length) { - user.office_role.rules.forEach((relation: any) => { - rules.push(relation.rule.name); + if (user.office_role) { + user.office_role.rules.forEach((rule) => { + rules.push(rule.name); }); - return { userId: user.uid, openId: {providerName: providerName, userId: user.idNot}, office_IdNot_Id: user.office_membership.idNot, role: user.role.name, rules: rules }; + return { + userId: user.uid, + openId: { providerName: providerName, userId: user.idNot }, + office_IdNot_Id: user.office_membership.idNot, + role: user.role.name, + rules: rules, + }; } - if (!rules.length) { - user.role.rules.forEach((relation: any) => { - rules.push(relation.rule.name); - }); - } - return { userId: user.uid, openId: {providerName: providerName, userId: user.idNot}, office_IdNot_Id: user.office_membership.idNot, role: user.role.name, rules: rules }; + user.role.rules.forEach((rule) => { + rules.push(rule.name); + }); + return { + userId: user.uid, + openId: { providerName: providerName, userId: user.idNot }, + office_IdNot_Id: user.office_membership.idNot, + role: user.role.name, + rules: rules, + }; } public generateAccessToken(user: any): string { diff --git a/src/services/common/ContactsService/ContactsService.ts b/src/services/common/ContactsService/ContactsService.ts deleted file mode 100644 index 116c9cbe..00000000 --- a/src/services/common/ContactsService/ContactsService.ts +++ /dev/null @@ -1,27 +0,0 @@ -import ContactsRepository from "@Repositories/ContactsRepository"; -import BaseService from "@Services/BaseService"; -import { Contacts } from "@prisma/client"; -import { Service } from "typedi"; - -@Service() -export default class ContactsService extends BaseService { - constructor(private contactRepository: ContactsRepository) { - super(); - } - - /** - * @description : Get all contacts - * @throws {Error} If contacts cannot be get - */ - public async get(query: any): Promise { - return this.contactRepository.findMany(query); - } - - /** - * @description : Get a contact by uid - * @throws {Error} If contact cannot be get - */ - public async getByUid(uid: string): Promise { - return this.contactRepository.findOneByUid(uid); - } -} diff --git a/src/services/common/FilesService/FilesService.ts b/src/services/common/FilesService/FilesService.ts index 78cf9588..6118a4eb 100644 --- a/src/services/common/FilesService/FilesService.ts +++ b/src/services/common/FilesService/FilesService.ts @@ -72,7 +72,8 @@ export default class FilesService extends BaseService { * @throws {Error} If file cannot be modified */ public async update(uid: string, file: File): Promise { - return this.filesRepository.update(uid, file); + const key = v4(); + return this.filesRepository.update(uid, file, key); } /** diff --git a/src/services/customer/DocumentsService/DocumentsService.ts b/src/services/customer/DocumentsService/DocumentsService.ts index e8aeec5e..e04a1864 100644 --- a/src/services/customer/DocumentsService/DocumentsService.ts +++ b/src/services/customer/DocumentsService/DocumentsService.ts @@ -1,4 +1,4 @@ -import { Documents, Prisma } from "@prisma/client"; +import { Documents } from "@prisma/client"; import { Document } from "le-coffre-resources/dist/Customer"; import DocumentsRepository from "@Repositories/DocumentsRepository"; import BaseService from "@Services/BaseService"; @@ -30,7 +30,7 @@ export default class DocumentsService extends BaseService { * @description : Create new documents * @throws {Error} If documents or one of them cannot be created */ - public async createMany(documents: Document[]): Promise { + public async createMany(documents: Document[]): Promise { return this.documentsRepository.createMany(documents); } diff --git a/src/services/super-admin/DocumentsService/DocumentsService.ts b/src/services/super-admin/DocumentsService/DocumentsService.ts index bf7a421b..5310e5bb 100644 --- a/src/services/super-admin/DocumentsService/DocumentsService.ts +++ b/src/services/super-admin/DocumentsService/DocumentsService.ts @@ -1,4 +1,4 @@ -import { Documents, Prisma } from "@prisma/client"; +import { Documents } from "@prisma/client"; import { Document } from "le-coffre-resources/dist/SuperAdmin"; import DocumentsRepository from "@Repositories/DocumentsRepository"; import BaseService from "@Services/BaseService"; @@ -30,7 +30,7 @@ export default class DocumentsService extends BaseService { * @description : Create new documents * @throws {Error} If documents or one of them cannot be created */ - public async createMany(documents: Document[]): Promise { + public async createMany(documents: Document[]): Promise { return this.documentsRepository.createMany(documents); } diff --git a/src/services/super-admin/OfficeFoldersService/OfficeFoldersService.ts b/src/services/super-admin/OfficeFoldersService/OfficeFoldersService.ts index 91fd7113..6de0e5dc 100644 --- a/src/services/super-admin/OfficeFoldersService/OfficeFoldersService.ts +++ b/src/services/super-admin/OfficeFoldersService/OfficeFoldersService.ts @@ -59,11 +59,11 @@ export default class OfficeFoldersService extends BaseService { * @throws {Error} If document cannot be deleted */ public async delete(uid: string): Promise { - const officeFolderEntity = await this.officeFoldersRepository.findOneByUid(uid, { office_folder_has_customers: true }); + const officeFolderEntity = await this.officeFoldersRepository.findOneByUid(uid, { customers: true }); if(!officeFolderEntity) throw new Error('office folder not found'); const officeFolder = OfficeFolder.hydrate(officeFolderEntity, { strategy: "excludeAll" }); - if (officeFolder.office_folder_has_customers && officeFolder.office_folder_has_customers.length !== 0) { + if (officeFolder.customers?.length) { throw new Error("This folder is used by customers"); } return this.officeFoldersRepository.delete(uid); diff --git a/src/test/config/Init.ts b/src/test/config/Init.ts index a488d9a0..74721622 100644 --- a/src/test/config/Init.ts +++ b/src/test/config/Init.ts @@ -5,6 +5,7 @@ import { ECivility, ECustomerStatus, Offices, + Prisma, PrismaClient, Roles, Rules, @@ -43,23 +44,26 @@ export const initDocumentType = (documentType: DocumentType, office: Office): Pr }); }; -export const initDeedType = (deedType: DeedType, office: Office, documentTypes?: string[]): Promise => { - return prisma.deedTypes.create({ +export const initDeedType = (deedType: DeedType): Promise => { + const createArgs: Prisma.DeedTypesCreateArgs = { data: { name: deedType.name, description: deedType.description, - archived_at: null, - office_uid: office.uid!, - deed_type_has_document_types: { - createMany: { - data: documentTypes!.map((documentType) => ({ - document_type_uid: documentType, - })), - skipDuplicates: true, + office: { + connect: { + uid: deedType.office!.uid, }, }, }, - }); + }; + if (deedType.document_types) { + createArgs.data.document_types = { + connect: deedType.document_types.map((documentType) => ({ + uid: documentType.uid, + })), + }; + } + return prisma.deedTypes.create(createArgs); }; export const initCustomers = (customer: Customer): Promise => { diff --git a/src/test/config/MockedData.ts b/src/test/config/MockedData.ts index 051fe912..89292170 100644 --- a/src/test/config/MockedData.ts +++ b/src/test/config/MockedData.ts @@ -144,14 +144,7 @@ export const deedType: DeedType = { office: office, created_at: null, updated_at: null, - deed_type_has_document_types: [ - { - document_type: documentType, - deed_type: new DeedType(), - created_at: null, - updated_at: null, - }, - ], + document_types: [documentType], }; export const deedType_: DeedType = { @@ -197,34 +190,8 @@ export const officeFolder: OfficeFolder = { status: "ARCHIVED", deed: deed, office: office, - office_folder_has_customers: [ - { - customer: customer, - office_folder: new OfficeFolder(), - created_at: null, - updated_at: null, - }, - { - customer: customer_, - office_folder: new OfficeFolder(), - created_at: null, - updated_at: null, - }, - ], - office_folder_has_stakeholder: [ - { - user_stakeholder: user, - office_folder: new OfficeFolder(), - created_at: null, - updated_at: null, - }, - { - user_stakeholder: user_, - office_folder: new OfficeFolder(), - created_at: null, - updated_at: null, - }, - ], + customers: [customer, customer_], + stakeholders: [user, user_], created_at: null, updated_at: null, }; diff --git a/src/test/services/super-admin/DeedService.test.ts b/src/test/services/super-admin/DeedService.test.ts index 6e67e3fd..2628cff0 100644 --- a/src/test/services/super-admin/DeedService.test.ts +++ b/src/test/services/super-admin/DeedService.test.ts @@ -16,7 +16,7 @@ beforeAll(async () => { office.uid = (await initOffice(office)).uid; documentType.uid = (await initDocumentType(documentType, office)).uid; documentType_.uid = (await initDocumentType(documentType_, office)).uid; - deedType.uid = (await initDeedType(deedType, office, [documentType.uid])).uid; + deedType.uid = (await initDeedType(deedType)).uid; }); afterAll(async () => { @@ -46,9 +46,9 @@ describe("test create function", () => { }); it("should have by default the same document types as its deed type ", async () => { - const deedWithDocumentTypes = await prisma.deeds.findFirstOrThrow({ include: { deed_has_document_types: true } }); - expect(deedWithDocumentTypes.deed_has_document_types.length).toEqual(1); - expect(deedWithDocumentTypes.deed_has_document_types[0]?.document_type_uid).toEqual(documentType.uid); + const deedWithDocumentTypes = await prisma.deeds.findFirstOrThrow({ include: { document_types: true } }); + expect(deedWithDocumentTypes.document_types.length).toEqual(1); + expect(deedWithDocumentTypes.document_types[0]?.uid).toEqual(documentType.uid); }); it("should create a the same deed based on existing deed type", async () => { @@ -83,20 +83,7 @@ describe("test update function", () => { const deedUid = (await prisma.deeds.findFirstOrThrow({ where: { deed_type_uid: deedType.uid } })).uid; let deedToUpdate: Deed = JSON.parse(JSON.stringify(deed)); - deedToUpdate.deed_has_document_types = [ - { - document_type: documentType, - deed: new Deed(), - created_at: null, - updated_at: null, - }, - { - document_type: documentType_, - deed: new Deed(), - created_at: null, - updated_at: null, - }, - ]; + deedToUpdate.document_types = [documentType, documentType_]; await DeedServiceTest.update(deedUid, deedToUpdate); @@ -105,30 +92,17 @@ describe("test update function", () => { uid: deedUid, }, include: { - deed_has_document_types: true, + document_types: true, }, }); - expect(deedUpdated.deed_has_document_types.length).toEqual(2); + expect(deedUpdated.document_types.length).toEqual(2); }); it("should not add document types to a deed type that already has those document types ", async () => { const deedUid = (await prisma.deeds.findFirstOrThrow({ where: { deed_type_uid: deedType.uid } })).uid; let deedToUpdate: Deed = JSON.parse(JSON.stringify(deed)); - deedToUpdate.deed_has_document_types = [ - { - document_type: documentType, - deed: new Deed(), - created_at: null, - updated_at: null, - }, - { - document_type: documentType_, - deed: new Deed(), - created_at: null, - updated_at: null, - }, - ]; + deedToUpdate.document_types = [documentType, documentType_]; await DeedServiceTest.update(deedUid, deedToUpdate); @@ -137,10 +111,10 @@ describe("test update function", () => { uid: deedUid, }, include: { - deed_has_document_types: true, + document_types: true, }, }); - expect(deedUpdated.deed_has_document_types.length).toEqual(2); + expect(deedUpdated.document_types.length).toEqual(2); }); it("should delete document types from a deed", async () => { @@ -148,7 +122,7 @@ describe("test update function", () => { let deedToUpdate: Deed = JSON.parse(JSON.stringify(deed)); // set relation between deed and document types empty - deedToUpdate.deed_has_document_types = []; + deedToUpdate.document_types = []; await DeedServiceTest.update(deedUid, deedToUpdate); @@ -157,10 +131,10 @@ describe("test update function", () => { uid: deedUid, }, include: { - deed_has_document_types: true, + document_types: true, }, }); - expect(deedUpdated.deed_has_document_types.length).toEqual(0); + expect(deedUpdated.document_types.length).toEqual(0); }); }); diff --git a/src/test/services/super-admin/DeedTypesService.test.ts b/src/test/services/super-admin/DeedTypesService.test.ts index af923ad1..57ea73d9 100644 --- a/src/test/services/super-admin/DeedTypesService.test.ts +++ b/src/test/services/super-admin/DeedTypesService.test.ts @@ -188,20 +188,7 @@ describe("test update function", () => { const deedTypeUid = (await prisma.deedTypes.findFirstOrThrow({ where: { name: deedType.name, office_uid: office.uid } })).uid; let deedTypeToUpdate: DeedType = JSON.parse(JSON.stringify(deedType)); - deedTypeToUpdate.deed_type_has_document_types = [ - { - document_type: documentType, - deed_type: new DeedType(), - created_at: null, - updated_at: null, - }, - { - document_type: documentType_, - deed_type: new DeedType(), - created_at: null, - updated_at: null, - }, - ]; + deedTypeToUpdate.document_types = [documentType, documentType_]; await DeedTypeServiceTest.update(deedTypeUid, deedTypeToUpdate); @@ -210,30 +197,17 @@ describe("test update function", () => { uid: deedTypeUid, }, include: { - deed_type_has_document_types: true, + document_types: true, }, }); - expect(deedTypeUpdated.deed_type_has_document_types.length).toEqual(2); + expect(deedTypeUpdated.document_types.length).toEqual(2); }); it("should not add document types to a deed type that already has those document types ", async () => { const deedTypeUid = (await prisma.deedTypes.findFirstOrThrow({ where: { name: deedType.name, office_uid: office.uid } })).uid; let deedTypeToUpdate: DeedType = JSON.parse(JSON.stringify(deedType)); - deedTypeToUpdate.deed_type_has_document_types = [ - { - document_type: documentType, - deed_type: new DeedType(), - created_at: null, - updated_at: null, - }, - { - document_type: documentType_, - deed_type: new DeedType(), - created_at: null, - updated_at: null, - }, - ]; + deedTypeToUpdate.document_types = [documentType, documentType_]; await DeedTypeServiceTest.update(deedTypeUid, deedTypeToUpdate); @@ -242,10 +216,10 @@ describe("test update function", () => { uid: deedTypeUid, }, include: { - deed_type_has_document_types: true, + document_types: true, }, }); - expect(deedTypeUpdated.deed_type_has_document_types.length).toEqual(2); + expect(deedTypeUpdated.document_types.length).toEqual(2); }); it("should delete document types from a deed", async () => { @@ -253,7 +227,7 @@ describe("test update function", () => { let deedTypeToUpdate: DeedType = JSON.parse(JSON.stringify(deedType)); // set relation between deed and document types empty - deedTypeToUpdate.deed_type_has_document_types = []; + deedTypeToUpdate.document_types = []; await DeedTypeServiceTest.update(deedTypeUid, deedTypeToUpdate); @@ -262,10 +236,10 @@ describe("test update function", () => { uid: deedTypeUid, }, include: { - deed_type_has_document_types: true, + document_types: true, }, }); - expect(deedTypeUpdated.deed_type_has_document_types.length).toEqual(0); + expect(deedTypeUpdated.document_types.length).toEqual(0); }); }); diff --git a/src/test/services/super-admin/OfficeFolderService.test.ts b/src/test/services/super-admin/OfficeFolderService.test.ts index c0c52549..78ea6f54 100644 --- a/src/test/services/super-admin/OfficeFolderService.test.ts +++ b/src/test/services/super-admin/OfficeFolderService.test.ts @@ -1,6 +1,6 @@ import "module-alias/register"; import "reflect-metadata"; -import { OfficeFolderHasCustomers, OfficeFolderHasStakeholders, PrismaClient } from "prisma/prisma-client"; +import { PrismaClient } from "prisma/prisma-client"; import { customer, customer_, deedType, documentType, documentType_, office, officeFolder, officeFolder_, user, user_ } from "@Test/config/MockedData"; import Container from "typedi"; import OfficeFoldersRepository from "@Repositories/OfficeFoldersRepository"; @@ -18,7 +18,7 @@ beforeAll(async () => { office.uid = (await initOffice(office)).uid; documentType.uid = (await initDocumentType(documentType, office)).uid; documentType_.uid = (await initDocumentType(documentType_, office)).uid; - deedType.uid = (await initDeedType(deedType, office, [documentType.uid])).uid; + deedType.uid = (await initDeedType(deedType)).uid; user.uid = (await initUsers(user)).uid; user_.uid = (await initUsers(user_)).uid; customer.uid = (await initCustomers(customer)).uid; @@ -72,40 +72,9 @@ describe("test create function", () => { it("should contains stakeholders", async () => { const officeFolderCreated = await prisma.officeFolders.findFirstOrThrow({ - include: { office_folder_has_stakeholder: true }, + include: { stakeholders: true }, }); - const stakeholderRelation = await prisma.officeFolderHasStakeholders.findUniqueOrThrow({ - where: { - office_folder_uid_user_stakeholder_uid: { - user_stakeholder_uid: user.uid!, - office_folder_uid: officeFolderCreated.uid, - }, - }, - }); - const stakeholderRelation_ = await prisma.officeFolderHasStakeholders.findUniqueOrThrow({ - where: { - office_folder_uid_user_stakeholder_uid: { - user_stakeholder_uid: user_.uid!, - office_folder_uid: officeFolderCreated.uid, - }, - }, - }); - expect(officeFolderCreated.office_folder_has_stakeholder.length).toEqual(2); - const stakeholder: OfficeFolderHasStakeholders = { - uid: stakeholderRelation.uid, - office_folder_uid: officeFolderCreated.uid, - user_stakeholder_uid: user.uid!, - created_at: officeFolderCreated.created_at, - updated_at: officeFolderCreated.updated_at, - }; - const stakeholder_: OfficeFolderHasStakeholders = { - uid: stakeholderRelation_.uid, - office_folder_uid: officeFolderCreated.uid, - user_stakeholder_uid: user_.uid!, - created_at: officeFolderCreated.created_at, - updated_at: officeFolderCreated.updated_at, - }; - expect(officeFolderCreated.office_folder_has_stakeholder).toEqual(expect.arrayContaining([stakeholder, stakeholder_])); + expect(officeFolderCreated.stakeholders).toEqual([user, user_]); }); it("should not create a new office folder with folder number already created", async () => { @@ -131,123 +100,51 @@ describe("test create function", () => { describe("test update function", () => { it("should add customers", async () => { let officeFolderCreated = await prisma.officeFolders.findFirstOrThrow({ - include: { office_folder_has_customers: true }, + include: { customers: true }, }); - expect(officeFolderCreated.office_folder_has_customers).toEqual([]); + expect(officeFolderCreated.customers).toEqual([]); // mocked data contains the customers await OfficeFolderServiceTest.update(officeFolderCreated.uid, officeFolder); - const customerRelation = await prisma.officeFolderHasCustomers.findUniqueOrThrow({ - where: { - office_folder_uid_customer_uid: { - customer_uid: customer.uid!, - office_folder_uid: officeFolderCreated.uid, - }, - }, - }); - const customerRelation_ = await prisma.officeFolderHasCustomers.findUniqueOrThrow({ - where: { - office_folder_uid_customer_uid: { - customer_uid: customer_.uid!, - office_folder_uid: officeFolderCreated.uid, - }, - }, - }); - officeFolderCreated = await prisma.officeFolders.findFirstOrThrow({ - include: { office_folder_has_customers: true }, + include: { customers: true }, }); - expect(officeFolderCreated.office_folder_has_customers.length).toEqual(2); - const officeFolderHasCustomer: OfficeFolderHasCustomers = { - uid: customerRelation.uid, - office_folder_uid: officeFolderCreated.uid, - customer_uid: customer.uid!, - created_at: customerRelation.created_at, - updated_at: customerRelation.updated_at, - }; - const officeFolderHasCustomer_: OfficeFolderHasCustomers = { - uid: customerRelation_.uid, - office_folder_uid: officeFolderCreated.uid, - customer_uid: customer_.uid!, - created_at: customerRelation_.created_at, - updated_at: customerRelation_.updated_at, - }; - expect(officeFolderCreated.office_folder_has_customers).toEqual( - expect.arrayContaining([officeFolderHasCustomer, officeFolderHasCustomer_]), - ); + expect(officeFolderCreated.customers.length).toEqual([customer, customer_].length); }); it("should remove customers", async () => { let officeFolderCreated = await prisma.officeFolders.findFirstOrThrow({ - include: { office_folder_has_customers: true }, + include: { customers: true }, }); - expect(officeFolderCreated.office_folder_has_customers.length).toEqual(2); + expect(officeFolderCreated.customers.length).toEqual(2); let officeFolderWithLessCustomers: OfficeFolder = JSON.parse(JSON.stringify(officeFolder)); - officeFolderWithLessCustomers.office_folder_has_customers!.pop(); + officeFolderWithLessCustomers.customers!.pop(); // mocked data contains the customers await OfficeFolderServiceTest.update(officeFolderCreated.uid, officeFolderWithLessCustomers); - const customerRelation = await prisma.officeFolderHasCustomers.findUniqueOrThrow({ - where: { - office_folder_uid_customer_uid: { - customer_uid: customer.uid!, - office_folder_uid: officeFolderCreated.uid, - }, - }, - }); - - officeFolderCreated = await prisma.officeFolders.findFirstOrThrow({ - include: { office_folder_has_customers: true }, - }); - - expect(officeFolderCreated.office_folder_has_customers.length).toEqual(1); - const officeFolderHasCustomer: OfficeFolderHasCustomers = { - uid: customerRelation.uid, - office_folder_uid: officeFolderCreated.uid, - customer_uid: customer.uid!, - created_at: customerRelation.created_at, - updated_at: customerRelation.updated_at, - }; - expect(officeFolderCreated.office_folder_has_customers).toEqual([officeFolderHasCustomer]); + expect(officeFolderCreated.customers.length).toEqual([customer]); }); it("should remove stakeholders", async () => { let officeFolderCreated = await prisma.officeFolders.findFirstOrThrow({ - include: { office_folder_has_stakeholder: true }, + include: { stakeholders: true }, }); - expect(officeFolderCreated.office_folder_has_stakeholder.length).toEqual(2); + expect(officeFolderCreated.stakeholders.length).toEqual(2); let officeFolderWithLessStakeholders: OfficeFolder = JSON.parse(JSON.stringify(officeFolder)); - officeFolderWithLessStakeholders.office_folder_has_stakeholder!.pop(); + officeFolderWithLessStakeholders.stakeholders!.pop(); // mocked data contains the customers await OfficeFolderServiceTest.update(officeFolderCreated.uid, officeFolderWithLessStakeholders); - const stakeholderRelation = await prisma.officeFolderHasStakeholders.findUniqueOrThrow({ - where: { - office_folder_uid_user_stakeholder_uid: { - user_stakeholder_uid: user.uid!, - office_folder_uid: officeFolderCreated.uid, - }, - }, - }); - officeFolderCreated = await prisma.officeFolders.findFirstOrThrow({ - include: { office_folder_has_stakeholder: true }, + include: { stakeholders: true }, }); - expect(officeFolderCreated.office_folder_has_stakeholder.length).toEqual(1); - const officeFolderHasStakeholder: OfficeFolderHasStakeholders = { - uid: stakeholderRelation.uid, - office_folder_uid: officeFolderCreated.uid, - user_stakeholder_uid: user.uid!, - created_at: stakeholderRelation.created_at, - updated_at: stakeholderRelation.updated_at, - }; - expect(officeFolderCreated.office_folder_has_stakeholder).toEqual([officeFolderHasStakeholder]); + expect(officeFolderCreated.stakeholders).toEqual([user]); }); it("should archivate an office folder", async () => { const officeFolderCreated = await prisma.officeFolders.findFirstOrThrow({}); diff --git a/tsconfig.json b/tsconfig.json index b0dd3f39..88257ffd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -69,7 +69,7 @@ "@ControllerPattern/*": [ "src/common/system/controller-pattern/*" ], - "@Test/*":[ + "@Test/*": [ "src/test/*" ], }, @@ -95,8 +95,7 @@ "include": [ "**/*.ts", "**/*.tsx", - "src/app/api/admin/UsersController.ts" -, "src/common/databases/seeders/seeder.ts" ], + ], "exclude": [ "node_modules" ]