diff --git a/Dockerfile b/Dockerfile index d33dbefb..e98bde33 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,5 +36,5 @@ COPY --from=deps --chown=lecoffreuser leCoffre/src/common/databases ./src/common RUN apk update && apk add chromium USER lecoffreuser -CMD ["npm", "run", "start"] +CMD ["npm", "run", "api:start"] EXPOSE 3001 \ No newline at end of file diff --git a/package.json b/package.json index 006d18da..ba8a4fdc 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "file-type-checker": "^1.0.8", "fp-ts": "^2.16.1", "jsonwebtoken": "^9.0.0", - "le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.136", + "le-coffre-resources": "git@github.com:smart-chain-fr/leCoffre-resources.git#v2.151", "module-alias": "^2.2.2", "monocle-ts": "^2.3.13", "multer": "^1.4.5-lts.1", diff --git a/src/app/api/customer/AuthController.ts b/src/app/api/customer/AuthController.ts index cbcdf01f..175806a8 100644 --- a/src/app/api/customer/AuthController.ts +++ b/src/app/api/customer/AuthController.ts @@ -139,7 +139,7 @@ export default class AuthController extends ApiController { return; } - const passwordRegex = new RegExp(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d@$!%*?&]{8,}$/); + const passwordRegex = new RegExp(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d@$!%*?&_\\-]{8,}$/); if (!passwordRegex.test(password)) { this.httpBadRequest(response, "Password must contain at least 8 characters, 1 uppercase, 1 lowercase and 1 number"); return; diff --git a/src/app/api/customer/NotesController.ts b/src/app/api/customer/NotesController.ts new file mode 100644 index 00000000..11d59973 --- /dev/null +++ b/src/app/api/customer/NotesController.ts @@ -0,0 +1,202 @@ +import { Response, Request } from "express"; +import { Controller, Get, Post, Put } from "@ControllerPattern/index"; +import ApiController from "@Common/system/controller-pattern/ApiController"; +import { Service } from "typedi"; +import { Prisma } from "@prisma/client"; +import authHandler from "@App/middlewares/AuthHandler"; +import Note from "le-coffre-resources/dist/Customer/Note"; +import NotesService from "@Services/customer/NotesService/NotesService"; + +@Controller() +@Service() +export default class NotesController extends ApiController { + constructor(private notesService: NotesService) { + super(); + } + + /** + * @description Get all Notes + * @returns Note[] list of Notes + */ + @Get("/api/v1/customer/notes", [authHandler]) + protected async get(req: Request, response: Response) { + try { + //get query + let query: Prisma.NotesFindManyArgs = {}; + if (req.query["q"]) { + query = JSON.parse(req.query["q"] as string); + if (query.where?.uid) { + this.httpBadRequest(response, "You can't filter by uid"); + return; + } + } + + //call service to get prisma entity + const noteEntities = await this.notesService.get(query); + + //Hydrate ressource with prisma entity + const notes = Note.hydrateArray(noteEntities, { strategy: "excludeAll" }); + + //success + this.httpSuccess(response, notes); + } catch (error) { + this.httpBadRequest(response, error); + return; + } + } + + /** + * @description Get a specific customer note + */ + @Get("/api/v1/customer/notes/customer/:customer-uid/folders/:folder-uid/", [authHandler]) + protected async getCustomerNoteByFolderUid(req: Request, response: Response) { + try { + const customerUid = req.params["customer-uid"]; + const folderUid = req.params["folder-uid"]; + if (!customerUid || !folderUid) { + this.httpBadRequest(response, "No uid provided"); + return; + } + + //get query + const query: Prisma.NotesFindManyArgs = { + where: { + customer: { + uid: customerUid + }, + folder: { + uid: folderUid + } + } + }; + + //call service to get prisma entity + const noteEntities = await this.notesService.get(query); + + if(noteEntities.length === 0) { + this.httpNotFoundRequest(response, "No notes found"); + return; + } + + //Hydrate ressource with prisma entity + const notes = Note.hydrateArray(noteEntities, { strategy: "excludeAll" }); + + //success + this.httpSuccess(response, notes); + } catch (error) { + this.httpInternalError(response, error); + return; + } + } + + /** + * @description Get a specific note by uid + */ + @Get("/api/v1/customer/notes/:uid", [authHandler]) + protected async getOneByUid(req: Request, response: Response) { + try { + const uid = req.params["uid"]; + if (!uid) { + this.httpBadRequest(response, "No uid provided"); + return; + } + + //get query + let query; + if (req.query["q"]) { + query = JSON.parse(req.query["q"] as string); + } + + const noteEntity = await this.notesService.getByUid(uid, query); + + if (!noteEntity) { + this.httpNotFoundRequest(response, "note not found"); + return; + } + + //Hydrate ressource with prisma entity + const note = Note.hydrate(noteEntity); + + //success + this.httpSuccess(response, note); + } catch (error) { + this.httpInternalError(response, error); + return; + } + } + + /** + * @description Create a new note + */ + @Post("/api/v1/customer/notes", [authHandler]) + protected async post(req: Request, response: Response) { + try { + //init OfficeFolder resource with request body values + const noteRessource = Note.hydrate(req.body); + // noteRessource.validateOrReject?.({ groups: ["createFolder"], forbidUnknownValues: false }); + + //call service to get prisma entity + try { + const noteEntity = await this.notesService.create(noteRessource); + //Hydrate ressource with prisma entity + const note = Note.hydrate(noteEntity, { + strategy: "excludeAll", + }); + //success + this.httpCreated(response, note); + } catch (error) { + this.httpValidationError(response, error); + return; + } + } catch (error) { + this.httpInternalError(response, error); + return; + } + } + + /** + * @description Modify a specific note by uid + */ + @Put("/api/v1/customer/notes/:uid", [authHandler]) + protected async put(req: Request, response: Response) { + try { + const uid = req.params["uid"]; + if (!uid) { + this.httpBadRequest(response, "No uid provided"); + return; + } + + const noteFound = await this.notesService.getByUid(uid); + + if (!noteFound) { + this.httpNotFoundRequest(response, "office folder not found"); + return; + } + + //init OfficeFolder resource with request body values + const noteEntity = Note.hydrate(req.body); + + //validate folder + //await validateOrReject(noteEntity, { groups: ["updateFolder"], forbidUnknownValues: false }); + + //call service to get prisma entity + try { + const noteEntityUpdated = await this.notesService.update(uid, noteEntity); + + //Hydrate ressource with prisma entity + const note = Note.hydrate(noteEntityUpdated, { + strategy: "excludeAll", + }); + + //success + this.httpSuccess(response, note); + } catch (error) { + this.httpValidationError(response, error); + return; + } + } catch (error) { + this.httpInternalError(response, error); + return; + } + } +} diff --git a/src/app/api/customer/OfficeFoldersController.ts b/src/app/api/customer/OfficeFoldersController.ts index a3bfd8fe..f8bea23d 100644 --- a/src/app/api/customer/OfficeFoldersController.ts +++ b/src/app/api/customer/OfficeFoldersController.ts @@ -5,6 +5,7 @@ import OfficeFoldersService from "@Services/customer/OfficeFoldersService/Office import { Service } from "typedi"; import { OfficeFolders, Prisma } from "@prisma/client"; import { OfficeFolder } from "le-coffre-resources/dist/Customer"; +import { OfficeFolder as OfficeFolderNotary } from "le-coffre-resources/dist/Notary"; import officeFolderHandler from "@App/middlewares/CustomerHandler/FolderHandler"; import authHandler from "@App/middlewares/AuthHandler"; @@ -94,7 +95,7 @@ export default class OfficeFoldersController extends ApiController { } //Hydrate ressource with prisma entity - const officeFolder = OfficeFolder.hydrate(officeFolderEntity, { strategy: "excludeAll" }); + const officeFolder = OfficeFolderNotary.hydrate(officeFolderEntity); if(officeFolder.customers) { officeFolder.customers = officeFolder.customers!.filter((customer) => customer.contact?.email === email); diff --git a/src/app/api/notary/CustomersController.ts b/src/app/api/notary/CustomersController.ts index 9de0192c..83d3d1c9 100644 --- a/src/app/api/notary/CustomersController.ts +++ b/src/app/api/notary/CustomersController.ts @@ -34,8 +34,8 @@ export default class CustomersController extends ApiController { } const officeId: string = req.body.user.office_Id; - if (query.where?.office_folders) delete query.where.office_folders; - const customerWhereInput: Prisma.CustomersWhereInput = { ...query.where, office_folders: { some: { office_uid: officeId } } }; + if (query.where?.office) delete query.where.office; + const customerWhereInput: Prisma.CustomersWhereInput = { ...query.where, office: { uid: officeId } }; query.where = customerWhereInput; //call service to get prisma entity @@ -60,6 +60,8 @@ export default class CustomersController extends ApiController { try { //init IUser resource with request body values const customerEntity = Customer.hydrate(req.body); + const officeId: string = req.body.user.office_Id; + customerEntity.office = { uid: officeId } as any; //validate user try { await validateOrReject(customerEntity, { groups: ["createCustomer"], forbidUnknownValues: false }); diff --git a/src/app/api/notary/OfficeFolderAnchorsController.ts b/src/app/api/notary/OfficeFolderAnchorsController.ts index cb16501b..96bba906 100644 --- a/src/app/api/notary/OfficeFolderAnchorsController.ts +++ b/src/app/api/notary/OfficeFolderAnchorsController.ts @@ -68,6 +68,7 @@ export default class OfficeFoldersController extends ApiController { files: true, }, }, + office: true, }; const officeFolderFound = await this.officeFoldersService.getByUid(uid, query); @@ -87,7 +88,7 @@ export default class OfficeFoldersController extends ApiController { } const sortedHashes = [...folderHashes].sort(); - const anchoringProof = await this.secureService.download(sortedHashes); + const anchoringProof = await this.secureService.download(sortedHashes, officeFolder.office!.name); const addFileToZip = (zip: Zip) => (uid: string): Promise => (async () => { diff --git a/src/app/api/notary/OfficeFoldersController.ts b/src/app/api/notary/OfficeFoldersController.ts index 45941476..2d8f7792 100644 --- a/src/app/api/notary/OfficeFoldersController.ts +++ b/src/app/api/notary/OfficeFoldersController.ts @@ -261,9 +261,9 @@ export default class OfficeFoldersController extends ApiController { let query; if (req.query["q"]) { query = JSON.parse(req.query["q"] as string); - } + } - const officeFolderEntity = await this.officeFoldersService.getByUid(uid, query); + const officeFolderEntity = await this.officeFoldersService.getByUid(uid, query); if (!officeFolderEntity) { this.httpNotFoundRequest(response, "folder not found"); @@ -271,7 +271,8 @@ export default class OfficeFoldersController extends ApiController { } //Hydrate ressource with prisma entity - const officeFolder = OfficeFolder.hydrate(officeFolderEntity, { strategy: "excludeAll" }); + const officeFolder = OfficeFolder.hydrate(officeFolderEntity); + //success this.httpSuccess(response, officeFolder); diff --git a/src/app/api/notary/UserNotificationController.ts b/src/app/api/notary/UserNotificationController.ts index 6d5d3074..5d1029af 100644 --- a/src/app/api/notary/UserNotificationController.ts +++ b/src/app/api/notary/UserNotificationController.ts @@ -33,6 +33,7 @@ export default class UserNotificationController extends ApiController { const userId: string = req.body.user.userId; if(query.where?.user_uid) delete query.where.user_uid; if(query.where?.user?.uid) delete query.where.user.uid; + query.orderBy = { notification : { created_at: "asc" }}; const notificationWhereInput: Prisma.UserNotificationsWhereInput = { ...query.where, user_uid: userId }; query.where = notificationWhereInput; diff --git a/src/app/index.ts b/src/app/index.ts index 1590b6f1..c5767457 100644 --- a/src/app/index.ts +++ b/src/app/index.ts @@ -53,6 +53,7 @@ import SubscriptionsController from "./api/admin/SubscriptionsController"; import StripeController from "./api/admin/StripeController"; import StripeWebhooks from "@Common/webhooks/stripeWebhooks"; import RulesGroupsController from "./api/admin/RulesGroupsController"; +import NotesController from "./api/customer/NotesController"; /** * @description This allow to declare all controllers used in the application @@ -114,5 +115,6 @@ export default { Container.get(StripeController); Container.get(StripeWebhooks); Container.get(RulesGroupsController); + Container.get(NotesController); }, }; diff --git a/src/common/databases/migrations/20240527091523_office_customer_relation_migration/migration.sql b/src/common/databases/migrations/20240527091523_office_customer_relation_migration/migration.sql new file mode 100644 index 00000000..7fb62691 --- /dev/null +++ b/src/common/databases/migrations/20240527091523_office_customer_relation_migration/migration.sql @@ -0,0 +1,78 @@ +-- -- Add the office_uid column +-- ALTER TABLE customers +-- ADD COLUMN office_uid VARCHAR(255); + +-- -- Set the office_uid for existing rows +-- UPDATE customers +-- SET office_uid = ( +-- SELECT uid +-- FROM offices +-- WHERE "idNot" = '0000' +-- ); + +-- -- Create a temporary table to store the mapping +-- CREATE TEMPORARY TABLE customer_office_update AS +-- SELECT c.uid AS customer_uid, of.office_uid +-- FROM customers c +-- JOIN "_OfficeFolderHasCustomers" ofhc ON c.uid = ofhc."A" +-- JOIN office_folders of ON ofhc."B" = of.uid; + +-- -- Update customers with the corresponding office_uid +-- UPDATE customers +-- SET office_uid = ( +-- SELECT office_uid +-- FROM customer_office_update +-- WHERE customer_office_update.customer_uid = customers.uid +-- ); + +-- -- Drop the temporary table +-- DROP TABLE customer_office_update; + +-- -- Alter the column to be NOT NULL +-- ALTER TABLE customers +-- ALTER COLUMN office_uid SET NOT NULL; + +-- -- Add the foreign key constraint +-- ALTER TABLE customers +-- ADD CONSTRAINT customers_office_uid_fkey +-- FOREIGN KEY (office_uid) REFERENCES offices(uid) +-- ON DELETE CASCADE; + +-- Add the office_uid column to the customers table +ALTER TABLE customers +ADD COLUMN office_uid VARCHAR(255); + +-- Create a temporary table to store the mapping +CREATE TEMPORARY TABLE customer_office_update AS +SELECT c.uid AS customer_uid, of.office_uid +FROM customers c +JOIN "_OfficeFolderHasCustomers" ofhc ON c.uid = ofhc."A" +JOIN office_folders of ON ofhc."B" = of.uid; + +-- Update customers with the corresponding office_uid where a mapping exists +UPDATE customers +SET office_uid = customer_office_update.office_uid +FROM customer_office_update +WHERE customers.uid = customer_office_update.customer_uid; + +-- Drop the temporary table +DROP TABLE customer_office_update; + +-- Set the office_uid for customers not linked to any office_folder based on the office with "idNot" = '0000' +UPDATE customers +SET office_uid = ( + SELECT uid + FROM offices + WHERE "idNot" = '0000' +) +WHERE office_uid IS NULL; + +-- Alter the column to be NOT NULL +ALTER TABLE customers +ALTER COLUMN office_uid SET NOT NULL; + +-- Add the foreign key constraint +ALTER TABLE customers +ADD CONSTRAINT customers_office_uid_fkey +FOREIGN KEY (office_uid) REFERENCES offices(uid) +ON DELETE CASCADE; \ No newline at end of file diff --git a/src/common/databases/migrations/20240527144510_test/migration.sql b/src/common/databases/migrations/20240527144510_test/migration.sql new file mode 100644 index 00000000..643339d8 --- /dev/null +++ b/src/common/databases/migrations/20240527144510_test/migration.sql @@ -0,0 +1,5 @@ +-- DropForeignKey +ALTER TABLE "customers" DROP CONSTRAINT "customers_office_uid_fkey"; + +-- AddForeignKey +ALTER TABLE "customers" ADD CONSTRAINT "customers_office_uid_fkey" FOREIGN KEY ("office_uid") REFERENCES "offices"("uid") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/src/common/databases/migrations/20240603201549_folder_customer_notes/migration.sql b/src/common/databases/migrations/20240603201549_folder_customer_notes/migration.sql new file mode 100644 index 00000000..848a2ab9 --- /dev/null +++ b/src/common/databases/migrations/20240603201549_folder_customer_notes/migration.sql @@ -0,0 +1,20 @@ +-- CreateTable +CREATE TABLE "notes" ( + "uid" TEXT NOT NULL, + "content" VARCHAR(1000) NOT NULL, + "created_at" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3), + "customer_uid" VARCHAR(255) NOT NULL, + "folder_uid" VARCHAR(255) NOT NULL, + + CONSTRAINT "notes_pkey" PRIMARY KEY ("uid") +); + +-- CreateIndex +CREATE UNIQUE INDEX "notes_uid_key" ON "notes"("uid"); + +-- AddForeignKey +ALTER TABLE "notes" ADD CONSTRAINT "notes_customer_uid_fkey" FOREIGN KEY ("customer_uid") REFERENCES "customers"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "notes" ADD CONSTRAINT "notes_folder_uid_fkey" FOREIGN KEY ("folder_uid") REFERENCES "office_folders"("uid") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/src/common/databases/schema.prisma b/src/common/databases/schema.prisma index 3d813215..259c59f1 100644 --- a/src/common/databases/schema.prisma +++ b/src/common/databases/schema.prisma @@ -110,6 +110,7 @@ model Offices { document_types DocumentTypes[] office_roles OfficeRoles[] subscriptions Subscriptions[] + customers Customers[] @@map("offices") } @@ -125,6 +126,9 @@ model Customers { documents Documents[] password String? @db.VarChar(255) totpCodes TotpCodes[] + office Offices @relation(fields: [office_uid], references: [uid], onDelete: Cascade) + office_uid String @db.VarChar(255) + notes Notes[] @@map("customers") } @@ -169,6 +173,7 @@ model OfficeFolders { folder_anchor OfficeFolderAnchors? @relation(fields: [folder_anchor_uid], references: [uid]) folder_anchor_uid String? @unique @db.VarChar(255) + notes Notes[] @@unique([folder_number, office_uid]) @@map("office_folders") @@ -414,6 +419,18 @@ model Seats { @@map("seats") } +model Notes { + uid String @id @unique @default(uuid()) + content String @db.VarChar(1000) + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + customer Customers @relation(fields: [customer_uid], references: [uid], onDelete: Cascade) + customer_uid String @db.VarChar(255) + folder OfficeFolders @relation(fields: [folder_uid], references: [uid], onDelete: Cascade) + folder_uid String @db.VarChar(255) + @@map("notes") +} + enum ESubscriptionStatus { ACTIVE INACTIVE diff --git a/src/common/databases/seeders/oldSeeder.ts b/src/common/databases/seeders/oldSeeder.ts new file mode 100644 index 00000000..9734e4aa --- /dev/null +++ b/src/common/databases/seeders/oldSeeder.ts @@ -0,0 +1,2187 @@ +// import { ECivility, ECustomerStatus, EFolderStatus, EOfficeStatus, Prisma, PrismaClient } from "@prisma/client"; +// import User, { +// Address, +// Contact, +// Customer, +// Deed, +// DeedType, +// DocumentType, +// Office, +// OfficeFolder, +// OfficeRole, +// Role, +// Rule, +// } from "le-coffre-resources/dist/SuperAdmin"; + +import "module-alias/register"; + +export default async function main() { + // try { + // const prisma = new PrismaClient(); + + // const idNot3 = "rleenrenlnr"; + // const idNot4 = "ljfeflecnmd"; + // const idNot5 = "rflrefrjf"; + // const idNot6 = "er3ojfdlfnd"; + + // const addresses: Address[] = [ + // { + // address: "template", + // city: "template", + // zip_code: 0o00, + // 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 contacts: Contact[] = [ + // { + // address: addresses[0], + // first_name: "Angela", + // last_name: "Dubois", + // email: "angela.dubois@gmail.com", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.FEMALE, + // }, + // { + // address: addresses[1], + // first_name: "Maxime", + // last_name: "Lalo", + // email: "maxime.lalo@smart-chain.fr", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // { + // address: addresses[2], + // first_name: "Vincent", + // last_name: "Alamelle", + // email: "vincent.alamelle@smart-chain.fr", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // { + // address: addresses[3], + // first_name: "Melissa", + // last_name: "Desde", + // email: "melissa.desde@smart-chain.fr", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.FEMALE, + // }, + // { + // address: addresses[4], + // first_name: "Maxime", + // last_name: "Leroy", + // email: "maxime.leroy@hotmail.fr", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // { + // address: addresses[5], + // first_name: "Paul", + // last_name: "Dupont", + // email: "paul.dupont@outlook.com", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // { + // address: addresses[6], + // first_name: "Jean", + // last_name: "Dubignot", + // email: "jean.dubignot@gmail.com", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.FEMALE, + // }, + // { + // address: addresses[7], + // first_name: "Vincent", + // last_name: "Martin", + // email: "vincent.martin@gmail.com", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // ]; + + // const offices: Office[] = [ + // { + // idNot: "0000", + // name: "Office Template", + // crpcen: "0000", + // address: addresses[0], + // created_at: new Date(), + // updated_at: new Date(), + // office_status: EOfficeStatus.ACTIVATED, + // }, + // ]; + + // const customers: Customer[] = [ + // { + // contact: contacts[0], + // created_at: new Date(), + // updated_at: new Date(), + // status: ECustomerStatus.PENDING, + // }, + // { + // 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 rules: Rule[] = [ + // { + // name: "GET users", + // label: "Lecture des utilisateurs", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET offices", + // label: "Afficher des offices", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET customers", + // label: "Afficher des clients", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET deeds", + // label: "Voir des types d'acte", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET deed-types", + // label: "Lecture des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET documents", + // label: "Afficher des documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET document-types", + // label: "Lecture des types de documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET files", + // label: "Lecture des fichiers", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET folders", + // label: "Afficher les dossiers", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET roles", + // label: "Afficher les rôles", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET rules", + // label: "Afficher les droits", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET office-roles", + // label: "Lecture des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "POST deeds", + // label: "Créer un template de type d'acte", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "PUT deeds", + // label: "Modifier un type d'acte", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "DELETE deeds", + // label: "Supprimer des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "POST folders", + // label: "Créer un dossier", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "PUT folders", + // label: "Modifier des dossiers", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "DELETE folders", + // label: "Supprimer un dossier vide", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "POST documents", + // label: "Demander des documents à un client", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "PUT documents", + // label: "Valider des documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "DELETE documents", + // label: "Supprimer un document demandé", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "POST customers", + // label: "Créer des clients", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "PUT customers", + // label: "Modifier des clients", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "DELETE customers", + // label: "Supprimer un client", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "super-admin", + // }, + // { + // name: "POST anchors", + // label: "Ancrer un dossier", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "GET anchors", + // label: "Vérifier l'ancrage un dossier", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "global", + // }, + // { + // name: "POST deed-types", + // label: "Création des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "PUT deed-types", + // label: "Modification des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "DELETE deed-types", + // label: "Suppression des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "POST document-types", + // label: "Création des types de documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "PUT document-types", + // label: "Modification des types de documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "DELETE document-types", + // label: "Suppression des types de documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "POST office-roles", + // label: "Création des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "PUT office-roles", + // label: "Modification des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "DELETE office-roles", + // label: "Suppression des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "PUT users", + // label: "Modification des utilisateurs", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "DELETE office-roles", + // label: "Suppression des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "super-admin", + // }, + // { + // name: "PUT offices", + // label: "Modification des offices", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "super-admin", + // }, + // { + // name: "PUT rib", + // label: "Editer le RIB de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET rib", + // label: "Lire le RIB de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "POST rib", + // label: "Déposer le RIB de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "DELETE rib", + // label: "Supprimer le RIB de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET subscriptions", + // label: "Récupérer les abonnements", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "POST subscriptions", + // label: "Inviter un collaborateur à l'abonnement", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "PUT subscriptions", + // label: "Modifier l'abonnement", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET stripe", + // label: "Gérer l'abonnement de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "POST stripe", + // label: "Payer un abonnement", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // ]; + + // const rulesGroups = [ + // { + // name: "Gestion des matrices d'actes et des documents", + // created_at: new Date(), + // updated_at: new Date(), + // rules: [ + // "POST deeds", + // "PUT deeds", + // "DELETE deeds", + // "GET document-types", + // "DELETE deed-types", + // "PUT deed-types", + // "DELETE document-types", + // "GET deed-types", + // "POST document-types", + // "POST deed-types", + // "PUT document-types", + // ], + // }, + // { + // name: "Gestion de l'abonnement", + // uid: "94343601-04c8-44ef-afb9-3047597528a9", + // created_at: new Date(), + // updated_at: new Date(), + // rules: ["GET subscriptions", "POST subscriptions", "PUT subscriptions", "GET stripe", "POST stripe"], + // }, + // { + // name: "Intégration du RIB", + // created_at: new Date(), + // updated_at: new Date(), + // rules: ["PUT rib", "GET rib", "POST rib", "DELETE rib"], + // }, + // ]; + + // const collaboratorRules = rules.filter((rule) => rule.namespace === "collaborator"); + // const notaryRules = [...collaboratorRules, ...rules.filter((rule) => rule.namespace === "notary")]; + // const globalRules = [...notaryRules, ...rules.filter((rule) => rule.namespace === "global")]; + // const adminRules = [...globalRules, ...rules.filter((rule) => rule.namespace === "admin")]; + // const superAdminRules = [...adminRules, ...rules.filter((rule) => rule.namespace === "super-admin")]; + + // const roles: Role[] = [ + // { + // name: "super-admin", + // label: "Super administrateur", + // created_at: new Date(), + // updated_at: new Date(), + // rules: superAdminRules, + // }, + // { + // name: "admin", + // label: "Administrateur", + // created_at: new Date(), + // updated_at: new Date(), + // rules: adminRules, + // }, + // { + // name: "notary", + // label: "Notaire", + // created_at: new Date(), + // updated_at: new Date(), + // rules: [], + // }, + // { + // name: "default", + // label: "Utilisateur", + // created_at: new Date(), + // updated_at: new Date(), + // rules: [], + // }, + // ]; + + // const officeRoles: OfficeRole[] = [ + // { + // name: "Notaire", + // created_at: new Date(), + // updated_at: new Date(), + // office: offices[0]!, + // rules: globalRules, + // }, + // { + // name: "Collaborateur", + // created_at: new Date(), + // updated_at: new Date(), + // office: offices[0]!, + // rules: globalRules, + // }, + // ]; + + // const users: User[] = [ + // { + // 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 documentTypes: DocumentType[] = [ + // { + // archived_at: null, + // name: "Carte Nationale d'Identité recto-verso", + // office: offices[0], + // private_description: "Document d'identité", + // public_description: "Document d'identité", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Contrat de mariage", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Convention de PACS", + // office: offices[0], + // private_description: " ", + // public_description: "Avec précision du régime", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Titre de propriété", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Cahier des charges du lotissement", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Règlement du lotissement", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Cahier de prescriptions architecturales", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Statuts de l'association syndicale libre", + // office: offices[0], + // private_description: " ", + // public_description: "Avec nom et adresse du président", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Etat descriptif de division et règlement de copropriété", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Etat descriptif de division et règlement de copropriété modificatifs", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Carnet d'entretien", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Trois derniers PV D'AG", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Trois derniers relevés de charge", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Bail ou congé délivré", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Certificat d'assainissement", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Facture ou contrat d'electricité", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Facture ou contrat de gaz", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Loi carrez", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Etat parasitaire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Amiante", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Facture des travaux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Garanties décénales des entreprises", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "PV de réception des travaux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Permis de construire et modificatifs", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Déclaration attestation l'achèvement des travaux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Attestation de non opposition", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Assurance décenale", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Dommage ouvrage", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Dernière facture ramonage", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste du mobilier", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "RIB daté et signé", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Extrait KBIS et statuts de la société", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Document arpentage et plan de division", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Accord de prêt", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Offre de prêt", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Attestation dépôt de permis de construire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Permis de construire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Extrait acte de décès", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Fiche de renseignements d'états civils", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Donation entre epoux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Testament", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste des banques avce un compte bancaire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Contrat d'assurance-vie", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste des caisses versant une retraite ou une pension", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Dernière déclaration de revenus", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avis d'imposition (revenus et ISF)", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avis d'imposition (foncier et habitation)", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste des emprunts en cours", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Actes de donation", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Déclarations de dons faites aux impôts", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Actes de succession", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Actes de vente de biens", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Factures de travaux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Bail de location", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Nom et adresse du Syndic", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste des autres biens", + // office: offices[0], + // private_description: " ", + // public_description: + // "Exemple: PEE, PER, parts de société, bijoux de valeur et oeuvres d'art, fonds de commerce, fonds artisanal, entreprise commerciale, exploitation agricole...", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Caution, Prestation compensatoire, Pension alimentaire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Titre de propriété des biens", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Tableaux d'amortissement des prêts immobiliers", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Cartes grises et cotes ARGUS des véhicules", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Etat des avoirs bancaires", + // office: offices[0], + // private_description: " ", + // public_description: "Joints ou individuels au jour de la séparation", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avoirs mobiliers", + // office: offices[0], + // private_description: " ", + // public_description: + // "arrêtés à la date de la séparation (relevés de comptes épargne entreprise, épargne retraite, assurance-vie...)", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Livret de famille", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Dernières régularisations de charges", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Diagnostic de Performance Energétique (DPE)", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avis d'imposition N-1", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avis d'imposition N-2", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Contrat de travail", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Trois derniers bulletins de salaire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Bilan comptable", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Trois dernières quittances de loyers ou attestation d'hébergement", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Taxe foncière", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Justificatif de domicile", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // name: "Autres documents", + // archived_at: null, + // public_description: "Autres documents", + // private_description: "Autres documents", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // }, + // ]; + + // const deedTypes: DeedType[] = [ + // { + // name: "Promesse de vente", + // archived_at: null, + // description: "Promesse de vente entre deux partis", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [...documentTypes.slice(0, 31), documentTypes[66]!], + // }, + // { + // name: "Acte de vente", + // archived_at: null, + // description: "Acte de vente", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: documentTypes.slice(30, 36), + // }, + // { + // name: "Acte de succession", + // archived_at: null, + // description: "Acte de succession", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [...documentTypes.slice(36, 56), documentTypes[62]!, documentTypes[30]!], + // }, + // { + // name: "Acte de divorce", + // archived_at: null, + // description: "Acte de divorce", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [...documentTypes.slice(57, 62), documentTypes[30]!, documentTypes[0]!], + // }, + // { + // name: "Acte de donation", + // archived_at: null, + // description: "Acte de donation", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [documentTypes[0]!, documentTypes[62]!, documentTypes[57]!], + // }, + // { + // name: "Bail d'habitation", + // archived_at: null, + // description: "Bail d'habitation", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [documentTypes[0]!, documentTypes[30]!, documentTypes[57]!, ...documentTypes.slice(62)], + // }, + // ]; + + // 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 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.ACTIVATED, + // }, + // }); + // office.uid = officeCreated.uid; + // } + // for (const rule of rules) { + // const ruleCreated = await prisma.rules.create({ + // data: { + // name: rule.name, + // label: rule.label, + // namespace: rule.namespace, + // }, + // }); + // rule.uid = ruleCreated.uid; + // } + + // for (const role of roles) { + // const roleCreated = await prisma.roles.create({ + // data: { + // name: role.name, + // label: role.label, + // rules: { + // connect: role.rules?.map((rule) => ({ + // uid: rule.uid!, + // })), + // }, + // }, + // }); + // role.uid = roleCreated.uid; + // } + + // for (const ruleGroup of rulesGroups) { + // await prisma.rulesGroups.create({ + // data: { + // uid: ruleGroup.uid, + // name: ruleGroup.name, + // rules: { + // connect: ruleGroup.rules?.map((rule) => ({ + // uid: rules.find((r) => r.name === rule)!.uid!, + // })), + // }, + // }, + // }); + // } + + // 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; + // } + + // 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; + // } + + // for (const customer of customers) { + // const createArgs: Prisma.CustomersCreateArgs = { + // data: { + // status: ECustomerStatus.PENDING, + // office_uid: + // 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: {}, + // }, + // }, + // }, + // }; + + // 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; + // } + + // 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; + // } + + // 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; + // } + + // 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 }, + // }); + + // 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; + // } + + // 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; + // } + + // console.info(">MOCK DATA - Seeding completed!"); + // } catch (error) { + // console.error(error); + // console.info("Data already seeded, skiping"); + // } +} +main(); diff --git a/src/common/databases/seeders/seeder.ts b/src/common/databases/seeders/seeder.ts index b266bbed..df33cb5d 100644 --- a/src/common/databases/seeders/seeder.ts +++ b/src/common/databases/seeders/seeder.ts @@ -422,105 +422,6 @@ export default async function main() { }, ]; - const customers: Customer[] = [ - { - contact: contacts[0], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - 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 rules: Rule[] = [ { name: "GET users", @@ -1916,6 +1817,121 @@ export default async function main() { }, ]; + const customers: Customer[] = [ + { + contact: contacts[0], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[5], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[6], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[7], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[8], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[9], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[10], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[11], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[12], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[13], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[14], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[15], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[16], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[17], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[18], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + { + contact: contacts[19], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + office: offices[0], + }, + ]; + for (const office of offices) { const officeCreated = await prisma.offices.create({ data: { @@ -2056,6 +2072,11 @@ export default async function main() { const createArgs: Prisma.CustomersCreateArgs = { data: { status: ECustomerStatus.PENDING, + office: { + connect: { + uid: customer.office!.uid!, + }, + }, contact: { create: { first_name: customer.contact!.first_name, diff --git a/src/common/databases/seeders/seederOld.ts b/src/common/databases/seeders/seederOld.ts index 967a2b81..492a8342 100644 --- a/src/common/databases/seeders/seederOld.ts +++ b/src/common/databases/seeders/seederOld.ts @@ -1,2183 +1,2183 @@ -import { ECivility, ECustomerStatus, EFolderStatus, EOfficeStatus, Prisma, PrismaClient } from "@prisma/client"; -import User, { - Address, - Contact, - Customer, - Deed, - DeedType, - DocumentType, - Office, - OfficeFolder, - OfficeRole, - Role, - Rule, -} from "le-coffre-resources/dist/SuperAdmin"; +// import { ECivility, ECustomerStatus, EFolderStatus, EOfficeStatus, Prisma, PrismaClient } from "@prisma/client"; +// import User, { +// Address, +// Contact, +// Customer, +// Deed, +// DeedType, +// DocumentType, +// Office, +// OfficeFolder, +// OfficeRole, +// Role, +// Rule, +// } from "le-coffre-resources/dist/SuperAdmin"; import "module-alias/register"; export default async function main() { - try { - const prisma = new PrismaClient(); + // try { + // const prisma = new PrismaClient(); - const idNot3 = "rleenrenlnr"; - const idNot4 = "ljfeflecnmd"; - const idNot5 = "rflrefrjf"; - const idNot6 = "er3ojfdlfnd"; + // const idNot3 = "rleenrenlnr"; + // const idNot4 = "ljfeflecnmd"; + // const idNot5 = "rflrefrjf"; + // const idNot6 = "er3ojfdlfnd"; - const addresses: Address[] = [ - { - address: "template", - city: "template", - zip_code: 0o00, - 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 addresses: Address[] = [ + // { + // address: "template", + // city: "template", + // zip_code: 0o00, + // 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 contacts: Contact[] = [ - { - address: addresses[0], - first_name: "Angela", - last_name: "Dubois", - email: "angela.dubois@gmail.com", - phone_number: "+33785186013", - cell_phone_number: "+33785186013", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[1], - first_name: "Maxime", - last_name: "Lalo", - email: "maxime.lalo@smart-chain.fr", - phone_number: "+33785186013", - cell_phone_number: "+33785186013", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[2], - first_name: "Vincent", - last_name: "Alamelle", - email: "vincent.alamelle@smart-chain.fr", - phone_number: "+33785186013", - cell_phone_number: "+33785186013", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[3], - first_name: "Melissa", - last_name: "Desde", - email: "melissa.desde@smart-chain.fr", - phone_number: "+33785186013", - cell_phone_number: "+33785186013", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[4], - first_name: "Maxime", - last_name: "Leroy", - email: "maxime.leroy@hotmail.fr", - phone_number: "+33785186013", - cell_phone_number: "+33785186013", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[5], - first_name: "Paul", - last_name: "Dupont", - email: "paul.dupont@outlook.com", - phone_number: "+33785186013", - cell_phone_number: "+33785186013", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[6], - first_name: "Jean", - last_name: "Dubignot", - email: "jean.dubignot@gmail.com", - phone_number: "+33785186013", - cell_phone_number: "+33785186013", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[7], - first_name: "Vincent", - last_name: "Martin", - email: "vincent.martin@gmail.com", - phone_number: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - 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: "+33785186013", - cell_phone_number: "+33785186013", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - ]; + // const contacts: Contact[] = [ + // { + // address: addresses[0], + // first_name: "Angela", + // last_name: "Dubois", + // email: "angela.dubois@gmail.com", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.FEMALE, + // }, + // { + // address: addresses[1], + // first_name: "Maxime", + // last_name: "Lalo", + // email: "maxime.lalo@smart-chain.fr", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // { + // address: addresses[2], + // first_name: "Vincent", + // last_name: "Alamelle", + // email: "vincent.alamelle@smart-chain.fr", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // { + // address: addresses[3], + // first_name: "Melissa", + // last_name: "Desde", + // email: "melissa.desde@smart-chain.fr", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.FEMALE, + // }, + // { + // address: addresses[4], + // first_name: "Maxime", + // last_name: "Leroy", + // email: "maxime.leroy@hotmail.fr", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // { + // address: addresses[5], + // first_name: "Paul", + // last_name: "Dupont", + // email: "paul.dupont@outlook.com", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // { + // address: addresses[6], + // first_name: "Jean", + // last_name: "Dubignot", + // email: "jean.dubignot@gmail.com", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.FEMALE, + // }, + // { + // address: addresses[7], + // first_name: "Vincent", + // last_name: "Martin", + // email: "vincent.martin@gmail.com", + // phone_number: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // 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: "+33785186013", + // cell_phone_number: "+33785186013", + // birthdate: null, + // created_at: new Date(), + // updated_at: new Date(), + // civility: ECivility.MALE, + // }, + // ]; - const offices: Office[] = [ - { - idNot: "0000", - name: "Office Template", - crpcen: "0000", - address: addresses[0], - created_at: new Date(), - updated_at: new Date(), - office_status: EOfficeStatus.ACTIVATED, - }, - ]; + // const offices: Office[] = [ + // { + // idNot: "0000", + // name: "Office Template", + // crpcen: "0000", + // address: addresses[0], + // created_at: new Date(), + // updated_at: new Date(), + // office_status: EOfficeStatus.ACTIVATED, + // }, + // ]; - const customers: Customer[] = [ - { - contact: contacts[0], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - 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 customers: Customer[] = [ + // { + // contact: contacts[0], + // created_at: new Date(), + // updated_at: new Date(), + // status: ECustomerStatus.PENDING, + // }, + // { + // 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 rules: Rule[] = [ - { - name: "GET users", - label: "Lecture des utilisateurs", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET offices", - label: "Afficher des offices", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET customers", - label: "Afficher des clients", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET deeds", - label: "Voir des types d'acte", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET deed-types", - label: "Lecture des types d'actes", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET documents", - label: "Afficher des documents", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET document-types", - label: "Lecture des types de documents", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET files", - label: "Lecture des fichiers", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET folders", - label: "Afficher les dossiers", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET roles", - label: "Afficher les rôles", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET rules", - label: "Afficher les droits", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "GET office-roles", - label: "Lecture des rôles d'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "collaborator", - }, - { - name: "POST deeds", - label: "Créer un template de type d'acte", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "PUT deeds", - label: "Modifier un type d'acte", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "DELETE deeds", - label: "Supprimer des types d'actes", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "POST folders", - label: "Créer un dossier", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "PUT folders", - label: "Modifier des dossiers", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "DELETE folders", - label: "Supprimer un dossier vide", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "POST documents", - label: "Demander des documents à un client", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "PUT documents", - label: "Valider des documents", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "DELETE documents", - label: "Supprimer un document demandé", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "POST customers", - label: "Créer des clients", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "PUT customers", - label: "Modifier des clients", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "DELETE customers", - label: "Supprimer un client", - created_at: new Date(), - updated_at: new Date(), - namespace: "super-admin", - }, - { - name: "POST anchors", - label: "Ancrer un dossier", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "GET anchors", - label: "Vérifier l'ancrage un dossier", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "POST deed-types", - label: "Création des types d'actes", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "PUT deed-types", - label: "Modification des types d'actes", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "DELETE deed-types", - label: "Suppression des types d'actes", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "POST document-types", - label: "Création des types de documents", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "PUT document-types", - label: "Modification des types de documents", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "DELETE document-types", - label: "Suppression des types de documents", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "POST office-roles", - label: "Création des rôles d'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "PUT office-roles", - label: "Modification des rôles d'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "DELETE office-roles", - label: "Suppression des rôles d'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "PUT users", - label: "Modification des utilisateurs", - created_at: new Date(), - updated_at: new Date(), - namespace: "admin", - }, - { - name: "DELETE office-roles", - label: "Suppression des rôles d'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "super-admin", - }, - { - name: "PUT offices", - label: "Modification des offices", - created_at: new Date(), - updated_at: new Date(), - namespace: "super-admin", - }, - { - name: "PUT rib", - label: "Editer le RIB de l'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "GET rib", - label: "Lire le RIB de l'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "POST rib", - label: "Déposer le RIB de l'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "DELETE rib", - label: "Supprimer le RIB de l'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "GET subscriptions", - label: "Récupérer les abonnements", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "POST subscriptions", - label: "Inviter un collaborateur à l'abonnement", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "PUT subscriptions", - label: "Modifier l'abonnement", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "GET stripe", - label: "Gérer l'abonnement de l'office", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - { - name: "POST stripe", - label: "Payer un abonnement", - created_at: new Date(), - updated_at: new Date(), - namespace: "notary", - }, - ]; + // const rules: Rule[] = [ + // { + // name: "GET users", + // label: "Lecture des utilisateurs", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET offices", + // label: "Afficher des offices", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET customers", + // label: "Afficher des clients", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET deeds", + // label: "Voir des types d'acte", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET deed-types", + // label: "Lecture des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET documents", + // label: "Afficher des documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET document-types", + // label: "Lecture des types de documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET files", + // label: "Lecture des fichiers", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET folders", + // label: "Afficher les dossiers", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET roles", + // label: "Afficher les rôles", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET rules", + // label: "Afficher les droits", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "GET office-roles", + // label: "Lecture des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "collaborator", + // }, + // { + // name: "POST deeds", + // label: "Créer un template de type d'acte", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "PUT deeds", + // label: "Modifier un type d'acte", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "DELETE deeds", + // label: "Supprimer des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "POST folders", + // label: "Créer un dossier", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "PUT folders", + // label: "Modifier des dossiers", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "DELETE folders", + // label: "Supprimer un dossier vide", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "POST documents", + // label: "Demander des documents à un client", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "PUT documents", + // label: "Valider des documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "DELETE documents", + // label: "Supprimer un document demandé", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "POST customers", + // label: "Créer des clients", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "PUT customers", + // label: "Modifier des clients", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "DELETE customers", + // label: "Supprimer un client", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "super-admin", + // }, + // { + // name: "POST anchors", + // label: "Ancrer un dossier", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "GET anchors", + // label: "Vérifier l'ancrage un dossier", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "POST deed-types", + // label: "Création des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "PUT deed-types", + // label: "Modification des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "DELETE deed-types", + // label: "Suppression des types d'actes", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "POST document-types", + // label: "Création des types de documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "PUT document-types", + // label: "Modification des types de documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "DELETE document-types", + // label: "Suppression des types de documents", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "POST office-roles", + // label: "Création des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "PUT office-roles", + // label: "Modification des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "DELETE office-roles", + // label: "Suppression des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "PUT users", + // label: "Modification des utilisateurs", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "admin", + // }, + // { + // name: "DELETE office-roles", + // label: "Suppression des rôles d'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "super-admin", + // }, + // { + // name: "PUT offices", + // label: "Modification des offices", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "super-admin", + // }, + // { + // name: "PUT rib", + // label: "Editer le RIB de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "GET rib", + // label: "Lire le RIB de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "POST rib", + // label: "Déposer le RIB de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "DELETE rib", + // label: "Supprimer le RIB de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "GET subscriptions", + // label: "Récupérer les abonnements", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "POST subscriptions", + // label: "Inviter un collaborateur à l'abonnement", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "PUT subscriptions", + // label: "Modifier l'abonnement", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "GET stripe", + // label: "Gérer l'abonnement de l'office", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // { + // name: "POST stripe", + // label: "Payer un abonnement", + // created_at: new Date(), + // updated_at: new Date(), + // namespace: "notary", + // }, + // ]; - const rulesGroups = [ - { - name: "Gestion des matrices d'actes et des documents", - created_at: new Date(), - updated_at: new Date(), - rules: [ - "POST deeds", - "PUT deeds", - "DELETE deeds", - "GET document-types", - "DELETE deed-types", - "PUT deed-types", - "DELETE document-types", - "GET deed-types", - "POST document-types", - "POST deed-types", - "PUT document-types", - ], - }, - { - name: "Gestion de l'abonnement", - created_at: new Date(), - updated_at: new Date(), - rules: ["GET subscriptions", "POST subscriptions", "PUT subscriptions", "GET stripe", "POST stripe"], - }, - { - name: "Intégration du RIB", - created_at: new Date(), - updated_at: new Date(), - rules: ["PUT rib", "GET rib", "POST rib", "DELETE rib"], - }, - ]; + // const rulesGroups = [ + // { + // name: "Gestion des matrices d'actes et des documents", + // created_at: new Date(), + // updated_at: new Date(), + // rules: [ + // "POST deeds", + // "PUT deeds", + // "DELETE deeds", + // "GET document-types", + // "DELETE deed-types", + // "PUT deed-types", + // "DELETE document-types", + // "GET deed-types", + // "POST document-types", + // "POST deed-types", + // "PUT document-types", + // ], + // }, + // { + // name: "Gestion de l'abonnement", + // created_at: new Date(), + // updated_at: new Date(), + // rules: ["GET subscriptions", "POST subscriptions", "PUT subscriptions", "GET stripe", "POST stripe"], + // }, + // { + // name: "Intégration du RIB", + // created_at: new Date(), + // updated_at: new Date(), + // rules: ["PUT rib", "GET rib", "POST rib", "DELETE rib"], + // }, + // ]; - const collaboratorRules = rules.filter((rule) => rule.namespace === "collaborator"); - const notaryRules = [...collaboratorRules, ...rules.filter((rule) => rule.namespace === "notary")]; - const adminRules = [...notaryRules, ...rules.filter((rule) => rule.namespace === "admin")]; - const superAdminRules = [...adminRules, ...rules.filter((rule) => rule.namespace === "super-admin")]; + // const collaboratorRules = rules.filter((rule) => rule.namespace === "collaborator"); + // const notaryRules = [...collaboratorRules, ...rules.filter((rule) => rule.namespace === "notary")]; + // const adminRules = [...notaryRules, ...rules.filter((rule) => rule.namespace === "admin")]; + // const superAdminRules = [...adminRules, ...rules.filter((rule) => rule.namespace === "super-admin")]; - const roles: Role[] = [ - { - name: "super-admin", - label: "Super administrateur", - created_at: new Date(), - updated_at: new Date(), - rules: superAdminRules, - }, - { - name: "admin", - label: "Administrateur", - created_at: new Date(), - updated_at: new Date(), - rules: adminRules, - }, - { - name: "notary", - label: "Notaire", - created_at: new Date(), - updated_at: new Date(), - rules: [], - }, - { - name: "default", - label: "Utilisateur", - created_at: new Date(), - updated_at: new Date(), - rules: [], - }, - ]; + // const roles: Role[] = [ + // { + // name: "super-admin", + // label: "Super administrateur", + // created_at: new Date(), + // updated_at: new Date(), + // rules: superAdminRules, + // }, + // { + // name: "admin", + // label: "Administrateur", + // created_at: new Date(), + // updated_at: new Date(), + // rules: adminRules, + // }, + // { + // name: "notary", + // label: "Notaire", + // created_at: new Date(), + // updated_at: new Date(), + // rules: [], + // }, + // { + // name: "default", + // label: "Utilisateur", + // created_at: new Date(), + // updated_at: new Date(), + // rules: [], + // }, + // ]; - const officeRoles: OfficeRole[] = [ - { - name: "Notaire", - created_at: new Date(), - updated_at: new Date(), - office: offices[0]!, - rules: notaryRules, - }, - { - name: "Collaborateur", - created_at: new Date(), - updated_at: new Date(), - office: offices[0]!, - rules: notaryRules, - }, - ]; + // const officeRoles: OfficeRole[] = [ + // { + // name: "Notaire", + // created_at: new Date(), + // updated_at: new Date(), + // office: offices[0]!, + // rules: notaryRules, + // }, + // { + // name: "Collaborateur", + // created_at: new Date(), + // updated_at: new Date(), + // office: offices[0]!, + // rules: notaryRules, + // }, + // ]; - const users: User[] = [ - { - 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 users: User[] = [ + // { + // 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 documentTypes: DocumentType[] = [ - { - archived_at: null, - name: "Carte Nationale d'Identité recto-verso", - office: offices[0], - private_description: "Document d'identité", - public_description: "Document d'identité", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Contrat de mariage", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Convention de PACS", - office: offices[0], - private_description: " ", - public_description: "Avec précision du régime", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Titre de propriété", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Cahier des charges du lotissement", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Règlement du lotissement", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Cahier de prescriptions architecturales", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Statuts de l'association syndicale libre", - office: offices[0], - private_description: " ", - public_description: "Avec nom et adresse du président", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Etat descriptif de division et règlement de copropriété", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Etat descriptif de division et règlement de copropriété modificatifs", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Carnet d'entretien", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Trois derniers PV D'AG", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Trois derniers relevés de charge", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Bail ou congé délivré", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Certificat d'assainissement", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Facture ou contrat d'electricité", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Facture ou contrat de gaz", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Loi carrez", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Etat parasitaire", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Amiante", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Facture des travaux", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Garanties décénales des entreprises", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "PV de réception des travaux", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Permis de construire et modificatifs", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Déclaration attestation l'achèvement des travaux", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Attestation de non opposition", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Assurance décenale", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Dommage ouvrage", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Dernière facture ramonage", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Liste du mobilier", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "RIB daté et signé", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Extrait KBIS et statuts de la société", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Document arpentage et plan de division", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Accord de prêt", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Offre de prêt", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Attestation dépôt de permis de construire", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Permis de construire", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Extrait acte de décès", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Fiche de renseignements d'états civils", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Donation entre epoux", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Testament", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Liste des banques avce un compte bancaire", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Contrat d'assurance-vie", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Liste des caisses versant une retraite ou une pension", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Dernière déclaration de revenus", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Avis d'imposition (revenus et ISF)", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Avis d'imposition (foncier et habitation)", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Liste des emprunts en cours", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Actes de donation", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Déclarations de dons faites aux impôts", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Actes de succession", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Actes de vente de biens", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Factures de travaux", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Bail de location", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Nom et adresse du Syndic", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Liste des autres biens", - office: offices[0], - private_description: " ", - public_description: - "Exemple: PEE, PER, parts de société, bijoux de valeur et oeuvres d'art, fonds de commerce, fonds artisanal, entreprise commerciale, exploitation agricole...", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Caution, Prestation compensatoire, Pension alimentaire", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Titre de propriété des biens", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Tableaux d'amortissement des prêts immobiliers", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Cartes grises et cotes ARGUS des véhicules", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Etat des avoirs bancaires", - office: offices[0], - private_description: " ", - public_description: "Joints ou individuels au jour de la séparation", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Avoirs mobiliers", - office: offices[0], - private_description: " ", - public_description: - "arrêtés à la date de la séparation (relevés de comptes épargne entreprise, épargne retraite, assurance-vie...)", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Livret de famille", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Dernières régularisations de charges", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Diagnostic de Performance Energétique (DPE)", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Avis d'imposition N-1", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Avis d'imposition N-2", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Contrat de travail", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Trois derniers bulletins de salaire", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Bilan comptable", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Trois dernières quittances de loyers ou attestation d'hébergement", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Taxe foncière", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Justificatif de domicile", - office: offices[0], - private_description: " ", - public_description: " ", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "Autres documents", - archived_at: null, - public_description: "Autres documents", - private_description: "Autres documents", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - }, - ]; + // const documentTypes: DocumentType[] = [ + // { + // archived_at: null, + // name: "Carte Nationale d'Identité recto-verso", + // office: offices[0], + // private_description: "Document d'identité", + // public_description: "Document d'identité", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Contrat de mariage", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Convention de PACS", + // office: offices[0], + // private_description: " ", + // public_description: "Avec précision du régime", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Titre de propriété", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Cahier des charges du lotissement", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Règlement du lotissement", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Cahier de prescriptions architecturales", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Statuts de l'association syndicale libre", + // office: offices[0], + // private_description: " ", + // public_description: "Avec nom et adresse du président", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Etat descriptif de division et règlement de copropriété", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Etat descriptif de division et règlement de copropriété modificatifs", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Carnet d'entretien", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Trois derniers PV D'AG", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Trois derniers relevés de charge", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Bail ou congé délivré", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Certificat d'assainissement", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Facture ou contrat d'electricité", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Facture ou contrat de gaz", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Loi carrez", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Etat parasitaire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Amiante", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Facture des travaux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Garanties décénales des entreprises", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "PV de réception des travaux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Permis de construire et modificatifs", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Déclaration attestation l'achèvement des travaux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Attestation de non opposition", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Assurance décenale", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Dommage ouvrage", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Dernière facture ramonage", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste du mobilier", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "RIB daté et signé", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Extrait KBIS et statuts de la société", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Document arpentage et plan de division", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Accord de prêt", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Offre de prêt", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Attestation dépôt de permis de construire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Permis de construire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Extrait acte de décès", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Fiche de renseignements d'états civils", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Donation entre epoux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Testament", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste des banques avce un compte bancaire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Contrat d'assurance-vie", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste des caisses versant une retraite ou une pension", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Dernière déclaration de revenus", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avis d'imposition (revenus et ISF)", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avis d'imposition (foncier et habitation)", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste des emprunts en cours", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Actes de donation", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Déclarations de dons faites aux impôts", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Actes de succession", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Actes de vente de biens", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Factures de travaux", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Bail de location", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Nom et adresse du Syndic", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Liste des autres biens", + // office: offices[0], + // private_description: " ", + // public_description: + // "Exemple: PEE, PER, parts de société, bijoux de valeur et oeuvres d'art, fonds de commerce, fonds artisanal, entreprise commerciale, exploitation agricole...", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Caution, Prestation compensatoire, Pension alimentaire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Titre de propriété des biens", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Tableaux d'amortissement des prêts immobiliers", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Cartes grises et cotes ARGUS des véhicules", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Etat des avoirs bancaires", + // office: offices[0], + // private_description: " ", + // public_description: "Joints ou individuels au jour de la séparation", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avoirs mobiliers", + // office: offices[0], + // private_description: " ", + // public_description: + // "arrêtés à la date de la séparation (relevés de comptes épargne entreprise, épargne retraite, assurance-vie...)", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Livret de famille", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Dernières régularisations de charges", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Diagnostic de Performance Energétique (DPE)", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avis d'imposition N-1", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Avis d'imposition N-2", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Contrat de travail", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Trois derniers bulletins de salaire", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Bilan comptable", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Trois dernières quittances de loyers ou attestation d'hébergement", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Taxe foncière", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // archived_at: null, + // name: "Justificatif de domicile", + // office: offices[0], + // private_description: " ", + // public_description: " ", + // created_at: new Date(), + // updated_at: new Date(), + // }, + // { + // name: "Autres documents", + // archived_at: null, + // public_description: "Autres documents", + // private_description: "Autres documents", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // }, + // ]; - const deedTypes: DeedType[] = [ - { - name: "Promesse de vente", - archived_at: null, - description: "Promesse de vente entre deux partis", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - document_types: [...documentTypes.slice(0, 31), documentTypes[66]!], - }, - { - name: "Acte de vente", - archived_at: null, - description: "Acte de vente", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - document_types: documentTypes.slice(30, 36), - }, - { - name: "Acte de succession", - archived_at: null, - description: "Acte de succession", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - document_types: [...documentTypes.slice(36, 56), documentTypes[62]!, documentTypes[30]!], - }, - { - name: "Acte de divorce", - archived_at: null, - description: "Acte de divorce", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - document_types: [...documentTypes.slice(57, 62), documentTypes[30]!, documentTypes[0]!], - }, - { - name: "Acte de donation", - archived_at: null, - description: "Acte de donation", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - document_types: [documentTypes[0]!, documentTypes[62]!, documentTypes[57]!], - }, - { - name: "Bail d'habitation", - archived_at: null, - description: "Bail d'habitation", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - document_types: [documentTypes[0]!, documentTypes[30]!, documentTypes[57]!, ...documentTypes.slice(62)], - }, - ]; + // const deedTypes: DeedType[] = [ + // { + // name: "Promesse de vente", + // archived_at: null, + // description: "Promesse de vente entre deux partis", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [...documentTypes.slice(0, 31), documentTypes[66]!], + // }, + // { + // name: "Acte de vente", + // archived_at: null, + // description: "Acte de vente", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: documentTypes.slice(30, 36), + // }, + // { + // name: "Acte de succession", + // archived_at: null, + // description: "Acte de succession", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [...documentTypes.slice(36, 56), documentTypes[62]!, documentTypes[30]!], + // }, + // { + // name: "Acte de divorce", + // archived_at: null, + // description: "Acte de divorce", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [...documentTypes.slice(57, 62), documentTypes[30]!, documentTypes[0]!], + // }, + // { + // name: "Acte de donation", + // archived_at: null, + // description: "Acte de donation", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [documentTypes[0]!, documentTypes[62]!, documentTypes[57]!], + // }, + // { + // name: "Bail d'habitation", + // archived_at: null, + // description: "Bail d'habitation", + // office: offices[0], + // created_at: new Date(), + // updated_at: new Date(), + // document_types: [documentTypes[0]!, documentTypes[30]!, documentTypes[57]!, ...documentTypes.slice(62)], + // }, + // ]; - 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 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 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, - }, - ]; + // 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.ACTIVATED, - }, - }); - office.uid = officeCreated.uid; - } - for (const rule of rules) { - const ruleCreated = await prisma.rules.create({ - data: { - name: rule.name, - label: rule.label, - namespace: rule.namespace, - }, - }); - rule.uid = ruleCreated.uid; - } + // 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.ACTIVATED, + // }, + // }); + // office.uid = officeCreated.uid; + // } + // for (const rule of rules) { + // const ruleCreated = await prisma.rules.create({ + // data: { + // name: rule.name, + // label: rule.label, + // namespace: rule.namespace, + // }, + // }); + // rule.uid = ruleCreated.uid; + // } - for (const role of roles) { - const roleCreated = await prisma.roles.create({ - data: { - name: role.name, - label: role.label, - rules: { - connect: role.rules?.map((rule) => ({ - uid: rule.uid!, - })), - }, - }, - }); - role.uid = roleCreated.uid; - } + // for (const role of roles) { + // const roleCreated = await prisma.roles.create({ + // data: { + // name: role.name, + // label: role.label, + // rules: { + // connect: role.rules?.map((rule) => ({ + // uid: rule.uid!, + // })), + // }, + // }, + // }); + // role.uid = roleCreated.uid; + // } - for (const ruleGroup of rulesGroups) { - await prisma.rulesGroups.create({ - data: { - name: ruleGroup.name, - rules: { - connect: ruleGroup.rules?.map((rule) => ({ - uid: rules.find((r) => r.name === rule)!.uid!, - })), - }, - }, - }); - } + // for (const ruleGroup of rulesGroups) { + // await prisma.rulesGroups.create({ + // data: { + // name: ruleGroup.name, + // rules: { + // connect: ruleGroup.rules?.map((rule) => ({ + // uid: rules.find((r) => r.name === rule)!.uid!, + // })), + // }, + // }, + // }); + // } - 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; - } + // 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; + // } - 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; - } + // 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; + // } - 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: {}, - }, - }, - }, - }; + // 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: {}, + // }, + // }, + // }, + // }; - 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; - } + // 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; + // } - 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; - } + // 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; + // } - 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; - } + // 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; + // } - 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 }, - }); + // 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 }, + // }); - 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; - } + // 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; + // } - 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; - } + // 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; + // } - console.info(">MOCK DATA - Seeding completed!"); - } catch (error) { - console.error(error); - console.info("Data already seeded, skiping"); - } + // console.info(">MOCK DATA - Seeding completed!"); + // } catch (error) { + // console.error(error); + // console.info("Data already seeded, skiping"); + // } } main(); diff --git a/src/common/emails/EmailBuilder.ts b/src/common/emails/EmailBuilder.ts index 5dcfb7b8..f3296d13 100644 --- a/src/common/emails/EmailBuilder.ts +++ b/src/common/emails/EmailBuilder.ts @@ -1,11 +1,12 @@ import DocumentsService from "@Services/super-admin/DocumentsService/DocumentsService"; import { Documents } from "@prisma/client"; -import User, { Document } from "le-coffre-resources/dist/SuperAdmin"; +import { Document } from "le-coffre-resources/dist/SuperAdmin"; import { Service } from "typedi"; import { ETemplates } from "./Templates/EmailTemplates"; import MailchimpService from "@Services/common/MailchimpService/MailchimpService"; import { BackendVariables } from "@Common/config/variables/Variables"; import UsersService from "@Services/super-admin/UsersService/UsersService"; +import User from "le-coffre-resources/dist/SuperAdmin"; @Service() export default class EmailBuilder { diff --git a/src/common/repositories/CustomersRepository.ts b/src/common/repositories/CustomersRepository.ts index 6f707133..2d15c73c 100644 --- a/src/common/repositories/CustomersRepository.ts +++ b/src/common/repositories/CustomersRepository.ts @@ -44,6 +44,11 @@ export default class CustomersRepository extends BaseRepository { const createArgs: Prisma.CustomersCreateArgs = { data: { status: ECustomerStatus.PENDING, + office: { + connect: { + uid: customer.office!.uid, + }, + }, contact: { create: { first_name: customer.contact!.first_name, diff --git a/src/common/repositories/NotesRepository.ts b/src/common/repositories/NotesRepository.ts new file mode 100644 index 00000000..8300ab96 --- /dev/null +++ b/src/common/repositories/NotesRepository.ts @@ -0,0 +1,74 @@ +import Database from "@Common/databases/database"; +import BaseRepository from "@Repositories/BaseRepository"; +import { Service } from "typedi"; +import { Notes, Prisma } from "@prisma/client"; +import Note from "le-coffre-resources/dist/Customer/Note"; + +@Service() +export default class NotesRepository extends BaseRepository { + constructor(private database: Database) { + super(); + } + protected get model() { + return this.database.getClient().notes; + } + protected get instanceDb() { + return this.database.getClient(); + } + + /** + * @description : Find many notes + */ + public async findMany(query: Prisma.NotesFindManyArgs) { + return this.model.findMany(query); + } + + /** + * @description : Find one note + */ + public async findOneByUid(uid: string, query?: Prisma.NotesInclude) { + return this.model.findUnique({ + where: { uid }, + include: query, + }); + } + + /** + * @description : Create new note + */ + public async create(note: Note): Promise { + const createArgs: Prisma.NotesCreateArgs = { + data: { + content: note.content || "", + customer: { + connect: { + uid: note.customer!.uid, + }, + }, + folder: { + connect: { + uid: note.folder!.uid, + }, + }, + }, + }; + + return this.model.create(createArgs); + } + + /** + * @description : Update data of an office folder + */ + public async update(noteUid: string, note: Note): Promise { + const updateArgs: Prisma.NotesUpdateArgs = { + where: { + uid: noteUid, + }, + data: { + content: note.content || "", + }, + }; + + return this.model.update(updateArgs); + } +} diff --git a/src/common/repositories/UserNotificationRepository.ts b/src/common/repositories/UserNotificationRepository.ts index 67826d94..dc899ec6 100644 --- a/src/common/repositories/UserNotificationRepository.ts +++ b/src/common/repositories/UserNotificationRepository.ts @@ -20,7 +20,6 @@ export default class UserNotificationRepository extends BaseRepository { * @description : Find many user notifications */ public async findMany(query: Prisma.UserNotificationsFindManyArgs) { - query.take = Math.min(query.take || this.defaultFetchRows, this.maxFetchRows); return this.model.findMany(query); } diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 8d43a5b0..4487f75c 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -6,6 +6,7 @@ export interface AnchoringProofData { rootHash: string; anchoringTime: string; txLink: string; + office_name: string; } @Service() @@ -14,57 +15,105 @@ export default class AnchoringProofService extends BaseService { super(); } - private static svgTemplateDocument: string = ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [[ANCHORING_TIME]] - Certificat de dépôt international - Hash : - [[ROOT_HASH]] - - Déposant(s) - Auteur : - Not.IT - Partenaire technique : - Smart-Chain - - Explorateur blockchain - [[TX_LINK]] - - + // private static svgTemplateDocument: string = ` + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // [[ANCHORING_TIME]] + // Certificat de dépôt international + // Hash : + // [[ROOT_HASH]] + // + // Déposant(s) + // Auteur : + // Not.IT + // Partenaire technique : + // Smart-Chain + // + // Explorateur blockchain + // [[TX_LINK]] + // + // + // `; + + private static svgTemplateDocumentBis: string = ` + + + + + + + + + + + + + + + + + +Certificat de dépôt international +[[ANCHORING_TIME]] +Nom de l'office +[[OFFICE_NAME]] + +Déposant(s) +LEcoffre.io + +Hash +[[ROOT_HASH]] + +Explorateur blockchain +[[TX_LINK]] + + +À quoi ça sert ? +Un certificat d'ancrage sur la blockchain permet d'établir de manière irréfutable l'enregistrement de données spécifiques à une date et une heure déterminées. Il constitue une preuve immuable et juridiquement opposable de l'existence et de l'intégrité des informations. En cas de litige, ce certificat peut démontrer de manière incontestable que les données n'ont pas été altérées depuis leur enregistrement. + +Qu'est-ce qu'un explorateur blockchain ? +Un explorateur blockchain est un outil numérique permettant d'accéder et de consulter les transactions et les données enregistrées sur la blockchain. Il assure une transparence totale, permettant à toute partie prenante de vérifier les opérations et les enregistrements effectués sur la chaîne de blocs. + +Qu'est-ce qu'un hash ? +Un hash est une empreinte cryptographique unique générée par un algorithme à partir de données spécifiques. Il agit comme une signature numérique permettant de vérifier l'intégrité des données : toute modification, même infime, des données d'origine entraîne la production d'un hash distinct, garantissant ainsi l'authenticité et l'intégrité des informations. + + + + + `; /** @@ -81,7 +130,7 @@ export default class AnchoringProofService extends BaseService { var htmlContent = ` - ${AnchoringProofService.svgTemplateDocument} + ${AnchoringProofService.svgTemplateDocumentBis} `; @@ -89,6 +138,7 @@ export default class AnchoringProofService extends BaseService { htmlContent = htmlContent .replace("[[ROOT_HASH]]", data.rootHash) .replace("[[ANCHORING_TIME]]", data.anchoringTime) + .replace("[[OFFICE_NAME]]", data.office_name) .replace(/\[\[TX_LINK\]\]/g, data.txLink); await page.setContent(htmlContent); @@ -126,4 +176,4 @@ export default class AnchoringProofService extends BaseService { return buffer; } -} +} \ No newline at end of file diff --git a/src/services/common/SecureService/SecureService.ts b/src/services/common/SecureService/SecureService.ts index 37dd961b..b69d1d90 100644 --- a/src/services/common/SecureService/SecureService.ts +++ b/src/services/common/SecureService/SecureService.ts @@ -63,7 +63,7 @@ export default class SecureService extends BaseService { * @description : Download the anchoring proof document * @throws {Error} If transaction is not verified on chain */ - public async download(hash_sources: string[]) { + public async download(hash_sources: string[], office_name: string) { const anchor = await this.verify(hash_sources); if (anchor.transactions.length === 0) { @@ -71,6 +71,8 @@ export default class SecureService extends BaseService { } const transaction = anchor.transactions[0]; + console.log(transaction); + if (transaction.status !== EAnchoringStatus.VERIFIED_ON_CHAIN) { throw new Error(`Transaction not verified on chain: ${transaction.status}`); @@ -83,6 +85,7 @@ export default class SecureService extends BaseService { timeZone: "Europe/Paris", timeZoneName: "short", }), + office_name: office_name, }); } } diff --git a/src/services/customer/NotesService/NotesService.ts b/src/services/customer/NotesService/NotesService.ts new file mode 100644 index 00000000..81b120be --- /dev/null +++ b/src/services/customer/NotesService/NotesService.ts @@ -0,0 +1,48 @@ +import BaseService from "@Services/BaseService"; +import { Service } from "typedi"; +import { Notes, Prisma } from "@prisma/client"; +import NotesRepository from "@Repositories/NotesRepository"; +import Note from "le-coffre-resources/dist/Customer/Note"; + +@Service() +export default class NotesService extends BaseService { + constructor( + private notesRepository: NotesRepository, + ) { + super(); + } + + /** + * @description : Get all notes + * @throws {Error} If notes cannot be get + */ + public async get(query: Prisma.NotesFindManyArgs) { + return this.notesRepository.findMany(query); + } + + /** + * @description : Get a note by uid + * @throws {Error} If note cannot be get + */ + public async getByUid(uid: string, query?: Prisma.NotesInclude) { + return this.notesRepository.findOneByUid(uid, query); + } + + /** + * @description : Create a new note + * @throws {Error} If note cannot be created + */ + public async create(noteEntity: Note): Promise { + return this.notesRepository.create(noteEntity); + } + + /** + * @description : Modify a note + * @throws {Error} If note cannot be modified + */ + public async update(noteUid: string, noteEntity: Note): Promise { + return this.notesRepository.update(noteUid, noteEntity); + } + + +} diff --git a/src/test/config/Init.ts b/src/test/config/Init.ts index 27be6340..cc7b3b2c 100644 --- a/src/test/config/Init.ts +++ b/src/test/config/Init.ts @@ -70,6 +70,11 @@ export const initCustomers = (customer: Customer): Promise => { return prisma.customers.create({ data: { status: ECustomerStatus.PENDING, + office: { + connect: { + uid: customer.office?.uid, + }, + }, contact: { create: { first_name: customer.contact!.first_name,