diff --git a/package.json b/package.json index 7467bbf0..fe9c92be 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "build": "tsc", "start": "node ./dist/entries/App.js", "cron": "node ./dist/entries/Cron.js", - "api:start": "npm run migrate && npm run start", + "api:start": "npm run build-db && npm run migrate && npm run seed && npm run start", "dev": "nodemon -V", "format": "prettier --write src", "migrate:test": "dotenv -e .env.test -- npx prisma migrate deploy", diff --git a/src/common/databases/seeders/seeder.ts b/src/common/databases/seeders/seeder.ts index b90c2046..cf0129f4 100644 --- a/src/common/databases/seeders/seeder.ts +++ b/src/common/databases/seeders/seeder.ts @@ -15,1602 +15,1608 @@ import User, { } from "le-coffre-resources/dist/SuperAdmin"; export default async function main() { - const prisma = new PrismaClient(); + try{ + const prisma = new PrismaClient(); - const randomString = () => { - const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - let result = ""; - for (let i = 10; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; - return result; - }; - - const idNot1 = "dlefvlef"; - const idNot2 = "jelkvelknvlkn"; - const idNot3 = "rleenrenlnr"; - const idNot4 = "ljfeflecnmd"; - const idNot5 = "rflrefrjf"; - const idNot6 = "er3ojfdlfnd"; - - const addresses: Address[] = [ - { - address: "148 Avenue du bac", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Pierre Emillion", - city: "Pacé", - zip_code: 35740, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Pierre Charles", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Pierre Pologne", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Pierre Marcel", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Pierre Jacques", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Pierre Pascal", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Maxime Henry", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Maxime Francis", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Avenue Paul Roger", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Avenue Paul Franck", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Avenue Paul Maréchal", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Avenue Marcel Denis", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Place Alexandre", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Place Alexandre Jacques", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Place Alexandre 2", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue du livre", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Place de la joie", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Paul Henry", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - { - address: "Rue Marcelin", - city: "Rennes", - zip_code: 35000, - created_at: new Date(), - updated_at: new Date(), - }, - ]; - - const contacts: Contact[] = [ - { - address: addresses[0], - first_name: "Arnaud", - last_name: "Daubernatali", - email: "arnaud.daubernatali@smart-chain.fr", - phone_number: "06 12 34 56 78", - cell_phone_number: "06 12 34 56 78", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[1], - first_name: "Maxime", - last_name: "Lalo", - email: "maxime.lalo@smart-chain.fr", - phone_number: "06 23 45 67 89", - cell_phone_number: "06 23 45 67 89", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[2], - first_name: "Vincent", - last_name: "Alamelle", - email: "vincent.alamelle@smart-chain.fr", - phone_number: "06 34 56 78 90", - cell_phone_number: "06 34 56 78 90", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[3], - first_name: "Melissa", - last_name: "Desde", - email: "melissa.desde@smart-chain.fr", - phone_number: "06 45 67 89 01", - cell_phone_number: "06 45 67 89 01", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[4], - first_name: "Maxime", - last_name: "Leroy", - email: "maxime.leroy@hotmail.fr", - phone_number: "06 56 78 90 12", - cell_phone_number: "06 56 78 90 12", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[5], - first_name: "Thibault", - last_name: "Dubois", - email: "thibault.dubois@outlook.com", - phone_number: "06 67 89 01 23", - cell_phone_number: "06 67 89 01 23", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[6], - first_name: "Léa", - last_name: "Fontaine", - email: "lea.fontaine@gmail.com", - phone_number: "06 78 90 12 34", - cell_phone_number: "06 78 90 12 34", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[7], - first_name: "Guillaume", - last_name: "Renaud", - email: "guillaume.renaud@gmail.com", - phone_number: "06 89 01 23 45", - cell_phone_number: "06 89 01 23 45", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[8], - first_name: "Lucie", - last_name: "Chevalier", - email: "lucie.chevalier@outlook.com", - phone_number: "07 12 34 56 78", - cell_phone_number: "07 12 34 56 78", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[9], - first_name: "Sébastien", - last_name: "Dubois", - email: "sebastien.dubois@gmail.com", - phone_number: "07 23 45 67 89", - cell_phone_number: "07 23 45 67 89", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[10], - first_name: "Mathilde", - last_name: "Durand", - email: "mathilde.durand@gmail.com", - phone_number: "07 34 56 78 90", - cell_phone_number: "07 34 56 78 90", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[11], - first_name: "Antoine", - last_name: "Bernard", - email: "antoine.bernard@outlook.com", - phone_number: "07 45 67 89 01", - cell_phone_number: "07 45 67 89 01", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[12], - first_name: "Camille", - last_name: "Laurent", - email: "camille.laurent@gmail.com", - phone_number: "07 56 78 90 12", - cell_phone_number: "07 56 78 90 12", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[13], - first_name: "Julien", - last_name: "Mercier", - email: "julien.mercier@hotmail.fr", - phone_number: "07 67 89 01 23", - cell_phone_number: "07 67 89 01 23", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[14], - first_name: "Charlotte", - last_name: "Lefebvre", - email: "charlotte.lefebvre@gmail.com", - phone_number: "07 78 90 12 34", - cell_phone_number: "07 78 90 12 34", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[15], - first_name: "Caroline", - last_name: "Pallut", - email: "caroline.pallut@gmail.com", - phone_number: "07 89 01 23 45", - cell_phone_number: "07 89 01 23 45", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[16], - first_name: "Nadège", - last_name: "Gauchet", - email: "nedege.gauchet@outlook.com", - phone_number: "06 11 22 33 44", - cell_phone_number: "06 11 22 33 44", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[17], - first_name: "Matthieu", - last_name: "Bougeard", - email: "matthieu.bougeard@gmail.com", - phone_number: "07 22 33 44 55", - cell_phone_number: "07 22 33 44 55", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - { - address: addresses[18], - first_name: "Cécile", - last_name: "Celton", - email: "cecile.celton@outlook.com", - phone_number: "06 55 66 77 88", - cell_phone_number: "06 55 66 77 88", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.FEMALE, - }, - { - address: addresses[19], - first_name: "Gwendal", - last_name: "Texier", - email: "gwendal.texier@gmail.com", - phone_number: "07 88 99 00 11", - cell_phone_number: "07 88 99 00 11", - birthdate: null, - created_at: new Date(), - updated_at: new Date(), - civility: ECivility.MALE, - }, - ]; - - const offices: Office[] = [ - { - idNot: idNot1, - name: "Office Rennes", - crpcen: randomString(), - address: addresses[0], - created_at: new Date(), - updated_at: new Date(), - office_status: EOfficeStatus.ACTIVATED, - }, - ]; - - const customers: Customer[] = [ - { - contact: contacts[5], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[6], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[7], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[8], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[9], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[10], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[11], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[12], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[13], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[14], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[15], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[16], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[17], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[18], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - { - contact: contacts[19], - created_at: new Date(), - updated_at: new Date(), - status: ECustomerStatus.PENDING, - }, - ]; - - const rules: Rule[] = [ - { - name: "GET users", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET offices", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET customers", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET deeds", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET deed-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET documents", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET document-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET files", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET folders", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET rules", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "GET office-roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT users", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT offices", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT customers", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT deeds", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT deedtypes", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT documents", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT document-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT files", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT folders", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT rules", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "PUT office-roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST users", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST offices", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST customers", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST deeds", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST deedtypes", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST documents", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST document-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST files", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST folders", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST rules", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST office-roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST users", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST offices", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST customers", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST deeds", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST deed-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST documents", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST document-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST files", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST folders", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST rules", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "POST office-roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE users", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE offices", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE customers", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE deeds", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE deed-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE documents", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE document-types", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE files", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE folders", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE roles", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE rules", - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "DELETE office-roles", - created_at: new Date(), - updated_at: new Date(), - }, - ]; - - const roles: Role[] = [ - { - name: "super-admin", - created_at: new Date(), - updated_at: new Date(), - rules: rules, - }, - { - name: "admin", - created_at: new Date(), - updated_at: new Date(), - rules: rules.slice(0, 33), - }, - { - name: "notary", - created_at: new Date(), - updated_at: new Date(), - rules: rules.slice(0, 22), - }, - { - name: "default", - created_at: new Date(), - updated_at: new Date(), - rules: rules.slice(0, 11), - }, - ]; - - const officeRoles: OfficeRole[] = [ - { - name: "admin", - created_at: new Date(), - updated_at: new Date(), - office: offices[0]!, - rules: rules.slice(0, 40), - }, - { - name: "notary", - created_at: new Date(), - updated_at: new Date(), - office: offices[0]!, - rules: rules.slice(0, 33), - }, - { - name: "deputy", - created_at: new Date(), - updated_at: new Date(), - office: offices[0]!, - rules: rules.slice(0, 22), - }, - { - name: "listener", - created_at: new Date(), - updated_at: new Date(), - office: offices[0]!, - rules: rules.slice(0, 11), - }, - ]; - - const users: User[] = [ - { - created_at: new Date(), - updated_at: new Date(), - idNot: idNot2, - contact: contacts[0], - office_membership: offices[0], - role: roles[0], - }, - { - created_at: new Date(), - updated_at: new Date(), - idNot: idNot3, - contact: contacts[1], - office_membership: offices[0], - role: roles[1], - }, - { - created_at: new Date(), - updated_at: new Date(), - idNot: idNot4, - contact: contacts[2], - office_membership: offices[0], - role: roles[2], - office_role: officeRoles[2], - }, - { - created_at: new Date(), - updated_at: new Date(), - idNot: idNot5, - contact: contacts[3], - office_membership: offices[0], - role: roles[1], - office_role: officeRoles[3], - }, - { - created_at: new Date(), - updated_at: new Date(), - idNot: idNot6, - contact: contacts[4], - office_membership: offices[0], - role: roles[3], - }, - ]; - - const deedTypes: DeedType[] = [ - { - name: "Acte de donation", - archived_at: null, - description: "Acte de donation", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "Acte de vente", - archived_at: null, - description: "Acte de vente", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "Acte de succession", - archived_at: null, - description: "Acte de succession", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - }, - { - name: "Acte de vente de maison individuelle", - archived_at: null, - description: "Acte de vente de maison individuelle", - office: offices[0], - created_at: new Date(), - updated_at: new Date(), - }, - ]; - - const 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 documentTypes: DocumentType[] = [ - { - archived_at: null, - name: "Document d'identité", - office: offices[0], - private_description: - "Document officiel d'identification utilisé par plusieurs personnes pour prouver leur identité et leur nationalité (CNI, passeport)", - public_description: - "Document officiel d'identification utilisé par plusieurs personnes pour prouver leur identité et leur nationalité (CNI, passeport)", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Taxe Foncière", - office: offices[0], - private_description: "Impôt annuel imposé sur les propriétés foncières et utilisé pour financer les services publics locaux.", - public_description: "Impôt annuel imposé sur les propriétés foncières et utilisé pour financer les services publics locaux.", - created_at: new Date(), - updated_at: new Date(), - }, - - { - archived_at: null, - name: "Contrat Mariage", - office: offices[0], - private_description: "Accord légal qui établit les droits et les obligations entre deux personnes s'unissant en mariage.", - public_description: "Accord légal qui établit les droits et les obligations entre deux personnes s'unissant en mariage.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Livret de famille", - office: offices[0], - private_description: - "Document officiel qui enregistre les détails et les événements familiaux tels que les mariages, les naissances et les décès d'un couple et de leurs enfants.", - public_description: - "Document officiel qui enregistre les détails et les événements familiaux tels que les mariages, les naissances et les décès d'un couple et de leurs enfants.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Bail commercial", - office: offices[0], - private_description: - "Contrat légal entre un propriétaire et un locataire pour la location d'un bien immobilier utilisé à des fins commerciales ou professionnelles.", - public_description: - "Contrat légal entre un propriétaire et un locataire pour la location d'un bien immobilier utilisé à des fins commerciales ou professionnelles.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Statuts SCI", - office: offices[0], - private_description: "Document légal qui définit les règles et les dispositions régissant la Société Civile Immobilière (SCI).", - public_description: "Document légal qui définit les règles et les dispositions régissant la Société Civile Immobilière (SCI).", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Avis de taxe foncière", - office: offices[0], - private_description: "Notification officielle indiquant le montant de l'impôt foncier dû sur une propriété.", - public_description: "Notification officielle indiquant le montant de l'impôt foncier dû sur une propriété.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Appel de charge de copropriété", - office: offices[0], - private_description: - "Document envoyé aux copropriétaires pour les informer des dépenses et des charges communes liées à la gestion et à l'entretien de l'immeuble.", - public_description: - "Document envoyé aux copropriétaires pour les informer des dépenses et des charges communes liées à la gestion et à l'entretien de l'immeuble.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "PVAG", - office: offices[0], - private_description: - "Compte rendu écrit des discussions, décisions et résolutions prises lors d'une réunion d'assemblée générale de copropriété.", - public_description: - "Compte rendu écrit des discussions, décisions et résolutions prises lors d'une réunion d'assemblée générale de copropriété.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Règlement de copropriété", - office: offices[0], - private_description: - "Document juridique qui établit les règles et les droits des copropriétaires d'un immeuble en copropriété.", - public_description: "Document juridique qui établit les règles et les droits des copropriétaires d'un immeuble en copropriété.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Titre de propriété", - office: offices[0], - private_description: "Document légal qui atteste de la propriété d'un bien immobilier et en identifie le propriétaire.", - public_description: "Document légal qui atteste de la propriété d'un bien immobilier et en identifie le propriétaire.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Plan et loi carrez", - office: offices[0], - private_description: - "Document officiel qui mesure la superficie d'un lot ou d'un bien immobilier, conformément à la loi Carrez qui encadre les transactions immobilières.", - public_description: - "Document officiel qui mesure la superficie d'un lot ou d'un bien immobilier, conformément à la loi Carrez qui encadre les transactions immobilières.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "CNI", - office: offices[0], - private_description: - "Document officiel d'identification délivré par l'État pour prouver l'identité et la nationalité d'une personne.", - public_description: - "Document officiel d'identification délivré par l'État pour prouver l'identité et la nationalité d'une personne.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Modifications règlement copropriété (plusieurs)", - office: offices[0], - private_description: - "Documents légaux qui apportent des changements ou des ajustements aux règles et dispositions du règlement de copropriété initial.", - public_description: - "Documents légaux qui apportent des changements ou des ajustements aux règles et dispositions du règlement de copropriété initial.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Avis de décès", - office: offices[0], - private_description: "Notification officielle délivrée par les autorités compétentes pour informer du décès d'une personne.", - public_description: "Notification officielle délivrée par les autorités compétentes pour informer du décès d'une personne.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Lettre de mission", - office: offices[0], - private_description: - "Document contractuel qui définit les termes et les objectifs d'une mission confiée à une personne ou à une entreprise.", - public_description: - "Document contractuel qui définit les termes et les objectifs d'une mission confiée à une personne ou à une entreprise.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "DPE", - office: offices[0], - private_description: "Diagnostic de Performance Energétique.", - public_description: "Diagnostic de Performance Energétique.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "RIB", - office: offices[0], - private_description: "Relevé d'identité bancaire ou IBAN.", - public_description: "Relevé d'identité bancaire ou IBAN.", - created_at: new Date(), - updated_at: new Date(), - }, - { - archived_at: null, - name: "Acte d'achat par la SCI", - office: offices[0], - private_description: "Acte d'achat par la SCI.", - public_description: "Acte d'achat par la SCI.", - created_at: new Date(), - updated_at: new Date(), - }, - ]; - - const officeFolders: OfficeFolder[] = [ - { - folder_number: "0001", - name: "Vente par Mme. Simon au profit de Mme. Lextrait", - deed: deeds[0], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - { - folder_number: "0002", - name: "Donation des parts sociales de la société SARL FLORE", - deed: deeds[1], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - { - folder_number: "0003", - name: "Vente par Mme. Lefebvre au profit de Mme. Mathieu", - deed: deeds[2], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - { - folder_number: "0004", - name: "Vente par Mme. Chevalier au profit de M. Daveau", - deed: deeds[3], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - { - folder_number: "0005", - name: "Vente par M. Lalo au profit de Mme. Pigale", - deed: deeds[4], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - { - folder_number: "0006", - name: "Donation des parts sociales de la société SMART-TALENT", - deed: deeds[5], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - { - folder_number: "0007", - name: "Vente par M. Girard au profit de M. Louis", - deed: deeds[6], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - { - folder_number: "0008", - name: "Vente par Mme. Leclerc au profit de M. Louis", - deed: deeds[7], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - { - folder_number: "0009", - name: "Vente par M. Lambert au profit de M. Holmes", - deed: deeds[8], - status: EFolderStatus.LIVE, - created_at: new Date(), - updated_at: new Date(), - office: offices[0], - description: null, - archived_description: null, - }, - ]; - - for (const office of offices) { - const officeCreated = await prisma.offices.create({ - data: { - idNot: office.idNot, - name: office.name, - crpcen: office.crpcen, - address: { - create: { - address: office.address!.address, - zip_code: office.address!.zip_code, - city: office.address!.city, - }, - }, - office_status: EOfficeStatus.DESACTIVATED, + const randomString = () => { + const chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + let result = ""; + for (let i = 10; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; + return result; + }; + + const idNot1 = "dlefvlef"; + const idNot2 = "jelkvelknvlkn"; + const idNot3 = "rleenrenlnr"; + const idNot4 = "ljfeflecnmd"; + const idNot5 = "rflrefrjf"; + const idNot6 = "er3ojfdlfnd"; + + const addresses: Address[] = [ + { + address: "148 Avenue du bac", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), }, - }); - office.uid = officeCreated.uid; - } - for (const rule of rules) { - const ruleCreated = await prisma.rules.create({ - data: { - name: rule.name, + { + address: "Rue Pierre Emillion", + city: "Pacé", + zip_code: 35740, + created_at: new Date(), + updated_at: new Date(), }, - }); - rule.uid = ruleCreated.uid; - } - - for (const role of roles) { - const roleCreated = await prisma.roles.create({ - data: { - name: role.name, - rules: { - connect: role.rules?.map((rule) => ({ - uid: rule.uid!, - })), - }, + { + address: "Rue Pierre Charles", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), }, - }); - role.uid = roleCreated.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!, - })), - }, + { + address: "Rue Pierre Pologne", + city: "Rennes", + zip_code: 35000, + created_at: new Date(), + updated_at: new Date(), }, - }); - 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, - }, + { + 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: "Arnaud", + last_name: "Daubernatali", + email: "arnaud.daubernatali@smart-chain.fr", + phone_number: "06 12 34 56 78", + cell_phone_number: "06 12 34 56 78", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[1], + first_name: "Maxime", + last_name: "Lalo", + email: "maxime.lalo@smart-chain.fr", + phone_number: "06 23 45 67 89", + cell_phone_number: "06 23 45 67 89", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[2], + first_name: "Vincent", + last_name: "Alamelle", + email: "vincent.alamelle@smart-chain.fr", + phone_number: "06 34 56 78 90", + cell_phone_number: "06 34 56 78 90", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[3], + first_name: "Melissa", + last_name: "Desde", + email: "melissa.desde@smart-chain.fr", + phone_number: "06 45 67 89 01", + cell_phone_number: "06 45 67 89 01", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[4], + first_name: "Maxime", + last_name: "Leroy", + email: "maxime.leroy@hotmail.fr", + phone_number: "06 56 78 90 12", + cell_phone_number: "06 56 78 90 12", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[5], + first_name: "Thibault", + last_name: "Dubois", + email: "thibault.dubois@outlook.com", + phone_number: "06 67 89 01 23", + cell_phone_number: "06 67 89 01 23", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[6], + first_name: "Léa", + last_name: "Fontaine", + email: "lea.fontaine@gmail.com", + phone_number: "06 78 90 12 34", + cell_phone_number: "06 78 90 12 34", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[7], + first_name: "Guillaume", + last_name: "Renaud", + email: "guillaume.renaud@gmail.com", + phone_number: "06 89 01 23 45", + cell_phone_number: "06 89 01 23 45", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[8], + first_name: "Lucie", + last_name: "Chevalier", + email: "lucie.chevalier@outlook.com", + phone_number: "07 12 34 56 78", + cell_phone_number: "07 12 34 56 78", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[9], + first_name: "Sébastien", + last_name: "Dubois", + email: "sebastien.dubois@gmail.com", + phone_number: "07 23 45 67 89", + cell_phone_number: "07 23 45 67 89", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[10], + first_name: "Mathilde", + last_name: "Durand", + email: "mathilde.durand@gmail.com", + phone_number: "07 34 56 78 90", + cell_phone_number: "07 34 56 78 90", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[11], + first_name: "Antoine", + last_name: "Bernard", + email: "antoine.bernard@outlook.com", + phone_number: "07 45 67 89 01", + cell_phone_number: "07 45 67 89 01", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[12], + first_name: "Camille", + last_name: "Laurent", + email: "camille.laurent@gmail.com", + phone_number: "07 56 78 90 12", + cell_phone_number: "07 56 78 90 12", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[13], + first_name: "Julien", + last_name: "Mercier", + email: "julien.mercier@hotmail.fr", + phone_number: "07 67 89 01 23", + cell_phone_number: "07 67 89 01 23", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[14], + first_name: "Charlotte", + last_name: "Lefebvre", + email: "charlotte.lefebvre@gmail.com", + phone_number: "07 78 90 12 34", + cell_phone_number: "07 78 90 12 34", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[15], + first_name: "Caroline", + last_name: "Pallut", + email: "caroline.pallut@gmail.com", + phone_number: "07 89 01 23 45", + cell_phone_number: "07 89 01 23 45", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[16], + first_name: "Nadège", + last_name: "Gauchet", + email: "nedege.gauchet@outlook.com", + phone_number: "06 11 22 33 44", + cell_phone_number: "06 11 22 33 44", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[17], + first_name: "Matthieu", + last_name: "Bougeard", + email: "matthieu.bougeard@gmail.com", + phone_number: "07 22 33 44 55", + cell_phone_number: "07 22 33 44 55", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + { + address: addresses[18], + first_name: "Cécile", + last_name: "Celton", + email: "cecile.celton@outlook.com", + phone_number: "06 55 66 77 88", + cell_phone_number: "06 55 66 77 88", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.FEMALE, + }, + { + address: addresses[19], + first_name: "Gwendal", + last_name: "Texier", + email: "gwendal.texier@gmail.com", + phone_number: "07 88 99 00 11", + cell_phone_number: "07 88 99 00 11", + birthdate: null, + created_at: new Date(), + updated_at: new Date(), + civility: ECivility.MALE, + }, + ]; + + const offices: Office[] = [ + { + idNot: idNot1, + name: "Office Rennes", + crpcen: randomString(), + address: addresses[0], + created_at: new Date(), + updated_at: new Date(), + office_status: EOfficeStatus.ACTIVATED, + }, + ]; + + const customers: Customer[] = [ + { + contact: contacts[5], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[6], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[7], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[8], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[9], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[10], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[11], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[12], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[13], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[14], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[15], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[16], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[17], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[18], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + { + contact: contacts[19], + created_at: new Date(), + updated_at: new Date(), + status: ECustomerStatus.PENDING, + }, + ]; + + const rules: Rule[] = [ + { + name: "GET users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET deed-types", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET document-types", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "GET office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT deedtypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT document-types", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "PUT office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST deedtypes", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST document-types", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST deed-types", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST document-types", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "POST office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE users", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE offices", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE customers", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE deeds", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE deed-types", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE documents", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE document-types", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE files", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE folders", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE roles", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE rules", + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "DELETE office-roles", + created_at: new Date(), + updated_at: new Date(), + }, + ]; + + const roles: Role[] = [ + { + name: "super-admin", + created_at: new Date(), + updated_at: new Date(), + rules: rules, + }, + { + name: "admin", + created_at: new Date(), + updated_at: new Date(), + rules: rules.slice(0, 33), + }, + { + name: "notary", + created_at: new Date(), + updated_at: new Date(), + rules: rules.slice(0, 22), + }, + { + name: "default", + created_at: new Date(), + updated_at: new Date(), + rules: rules.slice(0, 11), + }, + ]; + + const officeRoles: OfficeRole[] = [ + { + name: "admin", + created_at: new Date(), + updated_at: new Date(), + office: offices[0]!, + rules: rules.slice(0, 40), + }, + { + name: "notary", + created_at: new Date(), + updated_at: new Date(), + office: offices[0]!, + rules: rules.slice(0, 33), + }, + { + name: "deputy", + created_at: new Date(), + updated_at: new Date(), + office: offices[0]!, + rules: rules.slice(0, 22), + }, + { + name: "listener", + created_at: new Date(), + updated_at: new Date(), + office: offices[0]!, + rules: rules.slice(0, 11), + }, + ]; + + const users: User[] = [ + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot2, + contact: contacts[0], + office_membership: offices[0], + role: roles[0], + }, + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot3, + contact: contacts[1], + office_membership: offices[0], + role: roles[1], + }, + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot4, + contact: contacts[2], + office_membership: offices[0], + role: roles[2], + office_role: officeRoles[2], + }, + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot5, + contact: contacts[3], + office_membership: offices[0], + role: roles[1], + office_role: officeRoles[3], + }, + { + created_at: new Date(), + updated_at: new Date(), + idNot: idNot6, + contact: contacts[4], + office_membership: offices[0], + role: roles[3], + }, + ]; + + const deedTypes: DeedType[] = [ + { + name: "Acte de donation", + archived_at: null, + description: "Acte de donation", + office: offices[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "Acte de vente", + archived_at: null, + description: "Acte de vente", + office: offices[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "Acte de succession", + archived_at: null, + description: "Acte de succession", + office: offices[0], + created_at: new Date(), + updated_at: new Date(), + }, + { + name: "Acte de vente de maison individuelle", + archived_at: null, + description: "Acte de vente de maison individuelle", + office: offices[0], + created_at: new Date(), + updated_at: new Date(), + }, + ]; + + const 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 documentTypes: DocumentType[] = [ + { + archived_at: null, + name: "Document d'identité", + office: offices[0], + private_description: + "Document officiel d'identification utilisé par plusieurs personnes pour prouver leur identité et leur nationalité (CNI, passeport)", + public_description: + "Document officiel d'identification utilisé par plusieurs personnes pour prouver leur identité et leur nationalité (CNI, passeport)", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Taxe Foncière", + office: offices[0], + private_description: "Impôt annuel imposé sur les propriétés foncières et utilisé pour financer les services publics locaux.", + public_description: "Impôt annuel imposé sur les propriétés foncières et utilisé pour financer les services publics locaux.", + created_at: new Date(), + updated_at: new Date(), + }, + + { + archived_at: null, + name: "Contrat Mariage", + office: offices[0], + private_description: "Accord légal qui établit les droits et les obligations entre deux personnes s'unissant en mariage.", + public_description: "Accord légal qui établit les droits et les obligations entre deux personnes s'unissant en mariage.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Livret de famille", + office: offices[0], + private_description: + "Document officiel qui enregistre les détails et les événements familiaux tels que les mariages, les naissances et les décès d'un couple et de leurs enfants.", + public_description: + "Document officiel qui enregistre les détails et les événements familiaux tels que les mariages, les naissances et les décès d'un couple et de leurs enfants.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Bail commercial", + office: offices[0], + private_description: + "Contrat légal entre un propriétaire et un locataire pour la location d'un bien immobilier utilisé à des fins commerciales ou professionnelles.", + public_description: + "Contrat légal entre un propriétaire et un locataire pour la location d'un bien immobilier utilisé à des fins commerciales ou professionnelles.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Statuts SCI", + office: offices[0], + private_description: "Document légal qui définit les règles et les dispositions régissant la Société Civile Immobilière (SCI).", + public_description: "Document légal qui définit les règles et les dispositions régissant la Société Civile Immobilière (SCI).", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Avis de taxe foncière", + office: offices[0], + private_description: "Notification officielle indiquant le montant de l'impôt foncier dû sur une propriété.", + public_description: "Notification officielle indiquant le montant de l'impôt foncier dû sur une propriété.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Appel de charge de copropriété", + office: offices[0], + private_description: + "Document envoyé aux copropriétaires pour les informer des dépenses et des charges communes liées à la gestion et à l'entretien de l'immeuble.", + public_description: + "Document envoyé aux copropriétaires pour les informer des dépenses et des charges communes liées à la gestion et à l'entretien de l'immeuble.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "PVAG", + office: offices[0], + private_description: + "Compte rendu écrit des discussions, décisions et résolutions prises lors d'une réunion d'assemblée générale de copropriété.", + public_description: + "Compte rendu écrit des discussions, décisions et résolutions prises lors d'une réunion d'assemblée générale de copropriété.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Règlement de copropriété", + office: offices[0], + private_description: + "Document juridique qui établit les règles et les droits des copropriétaires d'un immeuble en copropriété.", + public_description: "Document juridique qui établit les règles et les droits des copropriétaires d'un immeuble en copropriété.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Titre de propriété", + office: offices[0], + private_description: "Document légal qui atteste de la propriété d'un bien immobilier et en identifie le propriétaire.", + public_description: "Document légal qui atteste de la propriété d'un bien immobilier et en identifie le propriétaire.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Plan et loi carrez", + office: offices[0], + private_description: + "Document officiel qui mesure la superficie d'un lot ou d'un bien immobilier, conformément à la loi Carrez qui encadre les transactions immobilières.", + public_description: + "Document officiel qui mesure la superficie d'un lot ou d'un bien immobilier, conformément à la loi Carrez qui encadre les transactions immobilières.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "CNI", + office: offices[0], + private_description: + "Document officiel d'identification délivré par l'État pour prouver l'identité et la nationalité d'une personne.", + public_description: + "Document officiel d'identification délivré par l'État pour prouver l'identité et la nationalité d'une personne.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Modifications règlement copropriété (plusieurs)", + office: offices[0], + private_description: + "Documents légaux qui apportent des changements ou des ajustements aux règles et dispositions du règlement de copropriété initial.", + public_description: + "Documents légaux qui apportent des changements ou des ajustements aux règles et dispositions du règlement de copropriété initial.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Avis de décès", + office: offices[0], + private_description: "Notification officielle délivrée par les autorités compétentes pour informer du décès d'une personne.", + public_description: "Notification officielle délivrée par les autorités compétentes pour informer du décès d'une personne.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Lettre de mission", + office: offices[0], + private_description: + "Document contractuel qui définit les termes et les objectifs d'une mission confiée à une personne ou à une entreprise.", + public_description: + "Document contractuel qui définit les termes et les objectifs d'une mission confiée à une personne ou à une entreprise.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "DPE", + office: offices[0], + private_description: "Diagnostic de Performance Energétique.", + public_description: "Diagnostic de Performance Energétique.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "RIB", + office: offices[0], + private_description: "Relevé d'identité bancaire ou IBAN.", + public_description: "Relevé d'identité bancaire ou IBAN.", + created_at: new Date(), + updated_at: new Date(), + }, + { + archived_at: null, + name: "Acte d'achat par la SCI", + office: offices[0], + private_description: "Acte d'achat par la SCI.", + public_description: "Acte d'achat par la SCI.", + created_at: new Date(), + updated_at: new Date(), + }, + ]; + + const 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: { - 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, + address: office.address!.address, + zip_code: office.address!.zip_code, + city: office.address!.city, + }, + }, + office_status: EOfficeStatus.DESACTIVATED, + }, + }); + office.uid = officeCreated.uid; + } + for (const rule of rules) { + const ruleCreated = await prisma.rules.create({ + data: { + name: rule.name, + }, + }); + rule.uid = ruleCreated.uid; + } + + for (const role of roles) { + const roleCreated = await prisma.roles.create({ + data: { + name: role.name, + rules: { + connect: role.rules?.map((rule) => ({ + uid: rule.uid!, + })), + }, + }, + }); + role.uid = roleCreated.uid; + } + + 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, + }, + }, }, - contact: { + }; + 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: {}, + }, + }, + }, + }; + + if (customer.contact?.address) { + createArgs.data.contact!.create!.address = { 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: {}, + address: customer.contact?.address?.address, + zip_code: customer.contact?.address?.zip_code, + city: customer.contact?.address?.city, }, - }, - 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, - }; + }; + } + const customersCreated = await prisma.customers.create(createArgs); + customer.uid = customersCreated.uid; } - if (user.office_role) { - createArgs.data.office_role = { - connect: { - uid: user.office_role.uid, + + for (const deedType of deedTypes) { + const createArgs: Prisma.DeedTypesCreateArgs = { + data: { + name: deedType.name, + description: deedType.description, + office: { + connect: { + uid: deedType.office!.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: {}, - }, - }, - }, - }; - - 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 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 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 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!, + 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, + }, + }, }, - }, - }); - officeFolder.uid = officeFolderCreated.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 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 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.log(">MOCK DATA - Seeding completed!"); } - - console.log(">MOCK DATA - Seeding completed!"); + catch(error){ + console.log("Data already seeded, skiping"); + } + } main();