-- CreateTable CREATE TABLE `customers` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, `nameSource` VARCHAR(191) NULL, `nameMissing` BOOLEAN NOT NULL DEFAULT false, `addressLine1` VARCHAR(191) NULL, `addressLine2` VARCHAR(191) NULL, `city` VARCHAR(191) NULL, `state` VARCHAR(191) NULL, `zipCode` VARCHAR(191) NULL, `country` VARCHAR(191) NULL, `phone` VARCHAR(191) NULL, `mobile` VARCHAR(191) NULL, `fax` VARCHAR(191) NULL, `email` VARCHAR(191) NULL, `notes` TEXT NULL, `identificationType` VARCHAR(191) NULL, `identificationNumber` VARCHAR(191) NULL, `identificationExpiration` DATETIME(3) NULL, `customerSince` DATETIME(3) NULL, `status` BOOLEAN NOT NULL DEFAULT true, `minimumBalance` DECIMAL(12, 2) NULL, `feeAmount` DECIMAL(12, 2) NULL, `preferredCurrency` ENUM('USD', 'MXN') NOT NULL DEFAULT 'USD', `archivedAt` DATETIME(3) NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updatedAt` DATETIME(3) NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `customer_legacy_refs` ( `id` VARCHAR(191) NOT NULL, `customerId` VARCHAR(191) NOT NULL, `sourceSystem` VARCHAR(191) NOT NULL, `sourceTable` VARCHAR(191) NOT NULL, `legacyId` VARCHAR(191) NOT NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), UNIQUE INDEX `customer_legacy_refs_sourceSystem_sourceTable_legacyId_key`(`sourceSystem`, `sourceTable`, `legacyId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `insurance_providers` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, UNIQUE INDEX `insurance_providers_name_key`(`name`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `policy_types` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, `shortDescription` VARCHAR(191) NULL, UNIQUE INDEX `policy_types_name_key`(`name`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `policies` ( `id` VARCHAR(191) NOT NULL, `policyNumber` VARCHAR(191) NOT NULL, `customerId` VARCHAR(191) NOT NULL, `policyTypeId` VARCHAR(191) NULL, `insuranceProviderId` VARCHAR(191) NULL, `agentName` VARCHAR(191) NULL, `policyDate` DATETIME(3) NULL, `policyFrom` DATETIME(3) NULL, `policyTo` DATETIME(3) NULL, `coveragePeriodDays` INTEGER NULL DEFAULT 365, `netPremium` DECIMAL(12, 2) NULL, `policyFee` DECIMAL(12, 2) NULL, `brokerFee` DECIMAL(12, 2) NULL, `commission` DECIMAL(12, 2) NULL, `total` DECIMAL(12, 2) NULL, `currency` ENUM('USD', 'MXN') NOT NULL DEFAULT 'MXN', `observations` TEXT NULL, `notes` TEXT NULL, `coveragesJson` JSON NULL, `endorsement` BOOLEAN NOT NULL DEFAULT false, `liquidated` BOOLEAN NOT NULL DEFAULT false, `liquidationNumber` VARCHAR(191) NULL, `liquidationDate` DATETIME(3) NULL, `archivedAt` DATETIME(3) NULL, `legacySourceDb` VARCHAR(191) NULL, `legacySourceTable` VARCHAR(191) NULL, `legacyId` VARCHAR(191) NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updatedAt` DATETIME(3) NOT NULL, INDEX `policies_policyNumber_idx`(`policyNumber`), UNIQUE INDEX `policies_legacySourceDb_legacySourceTable_legacyId_key`(`legacySourceDb`, `legacySourceTable`, `legacyId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `renewal_notices` ( `id` VARCHAR(191) NOT NULL, `policyId` VARCHAR(191) NOT NULL, `generation` INTEGER NOT NULL, `channel` ENUM('MAIL', 'EMAIL') NOT NULL DEFAULT 'MAIL', `sentAt` DATETIME(3) NULL, `sentById` VARCHAR(191) NULL, `notes` TEXT NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), UNIQUE INDEX `renewal_notices_policyId_generation_key`(`policyId`, `generation`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `policy_payment_installments` ( `id` VARCHAR(191) NOT NULL, `policyId` VARCHAR(191) NOT NULL, `sequence` INTEGER NOT NULL, `amount` DECIMAL(12, 2) NULL, `currency` ENUM('USD', 'MXN') NOT NULL DEFAULT 'MXN', `dueDate` DATETIME(3) NULL, `paidDate` DATETIME(3) NULL, `checkNumber` VARCHAR(191) NULL, `isCash` BOOLEAN NOT NULL DEFAULT false, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `vehicles` ( `id` VARCHAR(191) NOT NULL, `customerId` VARCHAR(191) NULL, `policyId` VARCHAR(191) NULL, `make` VARCHAR(191) NULL, `model` VARCHAR(191) NULL, `modelYear` VARCHAR(191) NULL, `bodyType` VARCHAR(191) NULL, `engineNumber` VARCHAR(191) NULL, `licensePlate` VARCHAR(191) NULL, `vinNumber` VARCHAR(191) NULL, `stateCode` VARCHAR(191) NULL, `notes` TEXT NULL, `legacySourceTable` VARCHAR(191) NULL, `legacyId` VARCHAR(191) NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `insured_drivers` ( `id` VARCHAR(191) NOT NULL, `policyId` VARCHAR(191) NOT NULL, `fullName` VARCHAR(191) NULL, `birthDate` DATETIME(3) NULL, `sex` VARCHAR(191) NULL, `occupation` VARCHAR(191) NULL, `licenseNumber` VARCHAR(191) NULL, `licenseState` VARCHAR(191) NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `policy_beneficiaries` ( `id` VARCHAR(191) NOT NULL, `policyId` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NULL, `address` VARCHAR(191) NULL, `phone` VARCHAR(191) NULL, `email` VARCHAR(191) NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `claims` ( `id` VARCHAR(191) NOT NULL, `policyId` VARCHAR(191) NOT NULL, `claimType` VARCHAR(191) NULL, `incidentDate` DATETIME(3) NULL, `reportedDate` DATETIME(3) NULL, `description` TEXT NULL, `adjusterId` VARCHAR(191) NULL, `claimedAmount` DECIMAL(12, 2) NULL, `settledAmount` DECIMAL(12, 2) NULL, `settlementDate` DATETIME(3) NULL, `checkNumber` VARCHAR(191) NULL, `resolved` BOOLEAN NOT NULL DEFAULT false, `resolutionNotes` TEXT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `adjusters` ( `id` VARCHAR(191) NOT NULL, `company` VARCHAR(191) NULL, `city` VARCHAR(191) NULL, `name` VARCHAR(191) NULL, `phone` VARCHAR(191) NULL, `beeper` VARCHAR(191) NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `policy_documents` ( `id` VARCHAR(191) NOT NULL, `policyId` VARCHAR(191) NOT NULL, `documentType` VARCHAR(191) NOT NULL, `storageKey` VARCHAR(191) NOT NULL, `originalColumn` VARCHAR(191) NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `properties` ( `id` VARCHAR(191) NOT NULL, `customerId` VARCHAR(191) NOT NULL, `policyId` VARCHAR(191) NULL, `addressLine1` VARCHAR(191) NULL, `addressLine2` VARCHAR(191) NULL, `phone1` VARCHAR(191) NULL, `phone2` VARCHAR(191) NULL, `phone3` VARCHAR(191) NULL, `zone` VARCHAR(191) NULL, `archivedAt` DATETIME(3) NULL, `legacySourceTable` VARCHAR(191) NULL, `legacyId` VARCHAR(191) NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), UNIQUE INDEX `properties_legacySourceTable_legacyId_key`(`legacySourceTable`, `legacyId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `property_services` ( `id` VARCHAR(191) NOT NULL, `propertyId` VARCHAR(191) NOT NULL, `kind` ENUM('WATER', 'ELECTRIC', 'GAS', 'CABLE', 'PROPERTY_TAX', 'FEDERAL_ZONE', 'ALARM', 'OTHER') NOT NULL, `accountNumber` VARCHAR(191) NULL, `meterNumber` VARCHAR(191) NULL, `route` VARCHAR(191) NULL, `dueDay` VARCHAR(191) NULL, `active` BOOLEAN NOT NULL DEFAULT true, `notes` TEXT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `service_documents` ( `id` VARCHAR(191) NOT NULL, `propertyId` VARCHAR(191) NOT NULL, `documentType` VARCHAR(191) NOT NULL, `storageKey` VARCHAR(191) NOT NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `trust_accounts` ( `id` VARCHAR(191) NOT NULL, `propertyId` VARCHAR(191) NOT NULL, `bankName` VARCHAR(191) NULL, `trustNumber` VARCHAR(191) NULL, `bankFee` DECIMAL(12, 2) NULL, `dueDate1` DATETIME(3) NULL, `dueDate2` DATETIME(3) NULL, UNIQUE INDEX `trust_accounts_propertyId_key`(`propertyId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `type_transactions` ( `id` VARCHAR(191) NOT NULL, `nameEn` VARCHAR(191) NOT NULL, `nameEs` VARCHAR(191) NULL, `isService` BOOLEAN NOT NULL DEFAULT false, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `transactions` ( `id` VARCHAR(191) NOT NULL, `customerId` VARCHAR(191) NOT NULL, `domain` ENUM('UTILITY', 'INSURANCE', 'TRUST') NOT NULL, `typeId` VARCHAR(191) NULL, `transactionDate` DATETIME(3) NOT NULL, `period` VARCHAR(191) NULL, `reference` VARCHAR(191) NULL, `amount` DECIMAL(12, 2) NOT NULL, `currency` ENUM('USD', 'MXN') NOT NULL DEFAULT 'MXN', `exchangeRate` DECIMAL(10, 4) NULL, `checkNumber` VARCHAR(191) NULL, `message` TEXT NULL, `outstanding` BOOLEAN NOT NULL DEFAULT false, `captureSource` ENUM('MANUAL', 'BATCH', 'OCR') NULL, `captureRef` VARCHAR(191) NULL, `voidedAt` DATETIME(3) NULL, `voidedById` VARCHAR(191) NULL, `legacySourceDb` VARCHAR(191) NULL, `legacySourceTable` VARCHAR(191) NULL, `legacyId` VARCHAR(191) NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), INDEX `transactions_customerId_transactionDate_idx`(`customerId`, `transactionDate`), INDEX `transactions_checkNumber_idx`(`checkNumber`), INDEX `transactions_captureRef_idx`(`captureRef`), UNIQUE INDEX `transactions_legacySourceDb_legacySourceTable_legacyId_key`(`legacySourceDb`, `legacySourceTable`, `legacyId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `exchange_rates` ( `id` VARCHAR(191) NOT NULL, `rate` DECIMAL(10, 4) NOT NULL, `effectiveDate` DATETIME(3) NOT NULL, `effectiveHour` DATETIME(3) NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `business_line_categories` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, UNIQUE INDEX `business_line_categories_name_key`(`name`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `banks` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, `country` VARCHAR(191) NULL, UNIQUE INDEX `banks_name_key`(`name`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `bank_accounts` ( `id` VARCHAR(191) NOT NULL, `bankId` VARCHAR(191) NOT NULL, `label` VARCHAR(191) NOT NULL, `currency` ENUM('USD', 'MXN') NOT NULL, `businessLine` ENUM('UTILITY', 'INSURANCE', 'TRUST') NULL, `active` BOOLEAN NOT NULL DEFAULT true, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `bank_transactions` ( `id` VARCHAR(191) NOT NULL, `bankAccountId` VARCHAR(191) NOT NULL, `transactionDate` DATETIME(3) NOT NULL, `transactionType` VARCHAR(191) NULL, `reference` VARCHAR(191) NULL, `concept` VARCHAR(191) NULL, `amount` DECIMAL(12, 2) NOT NULL, `categoryId` VARCHAR(191) NULL, `cleared` BOOLEAN NOT NULL DEFAULT false, `transferred` BOOLEAN NOT NULL DEFAULT false, `notes` TEXT NULL, `amountInWords` VARCHAR(191) NULL, `voidedAt` DATETIME(3) NULL, `voidedById` VARCHAR(191) NULL, `legacySourceTable` VARCHAR(191) NULL, `legacyId` VARCHAR(191) NULL, INDEX `bank_transactions_bankAccountId_transactionDate_idx`(`bankAccountId`, `transactionDate`), UNIQUE INDEX `bank_transactions_legacySourceTable_legacyId_key`(`legacySourceTable`, `legacyId`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `users` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, `email` VARCHAR(191) NOT NULL, `passwordHash` VARCHAR(191) NOT NULL, `role` ENUM('ADMIN', 'MANAGER', 'STAFF', 'VIEWER') NOT NULL DEFAULT 'STAFF', `active` BOOLEAN NOT NULL DEFAULT true, `uiScale` DOUBLE NOT NULL DEFAULT 1, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updatedAt` DATETIME(3) NOT NULL, UNIQUE INDEX `users_email_key`(`email`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `activity_logs` ( `id` VARCHAR(191) NOT NULL, `userId` VARCHAR(191) NULL, `event` VARCHAR(191) NOT NULL, `level` VARCHAR(191) NOT NULL, `message` JSON NULL, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `email_templates` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(191) NOT NULL, `subject` VARCHAR(191) NOT NULL, `templateSource` TEXT NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `email_campaigns` ( `id` VARCHAR(191) NOT NULL, `campaignName` VARCHAR(191) NOT NULL, `subject` VARCHAR(191) NULL, `body` TEXT NULL, `status` VARCHAR(191) NOT NULL DEFAULT 'in_progress', `emailSentCount` INTEGER NOT NULL DEFAULT 0, `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `email_log` ( `id` VARCHAR(191) NOT NULL, `customerId` VARCHAR(191) NULL, `emailAddress` VARCHAR(191) NULL, `emailType` VARCHAR(191) NULL, `requestBody` TEXT NULL, `responseBody` TEXT NULL, `sentAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable CREATE TABLE `ops_jobs` ( `id` VARCHAR(191) NOT NULL, `kind` ENUM('BACKUP', 'RESTORE', 'REIMPORT', 'SYNC') NOT NULL, `status` ENUM('RUNNING', 'SUCCESS', 'FAILED') NOT NULL DEFAULT 'RUNNING', `log` LONGTEXT NOT NULL, `params` JSON NULL, `createdById` VARCHAR(191) NULL, `startedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `finishedAt` DATETIME(3) NULL, INDEX `ops_jobs_status_idx`(`status`), INDEX `ops_jobs_startedAt_idx`(`startedAt`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- AddForeignKey ALTER TABLE `customer_legacy_refs` ADD CONSTRAINT `customer_legacy_refs_customerId_fkey` FOREIGN KEY (`customerId`) REFERENCES `customers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `policies` ADD CONSTRAINT `policies_customerId_fkey` FOREIGN KEY (`customerId`) REFERENCES `customers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `policies` ADD CONSTRAINT `policies_policyTypeId_fkey` FOREIGN KEY (`policyTypeId`) REFERENCES `policy_types`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `policies` ADD CONSTRAINT `policies_insuranceProviderId_fkey` FOREIGN KEY (`insuranceProviderId`) REFERENCES `insurance_providers`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `renewal_notices` ADD CONSTRAINT `renewal_notices_policyId_fkey` FOREIGN KEY (`policyId`) REFERENCES `policies`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `policy_payment_installments` ADD CONSTRAINT `policy_payment_installments_policyId_fkey` FOREIGN KEY (`policyId`) REFERENCES `policies`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `vehicles` ADD CONSTRAINT `vehicles_customerId_fkey` FOREIGN KEY (`customerId`) REFERENCES `customers`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `vehicles` ADD CONSTRAINT `vehicles_policyId_fkey` FOREIGN KEY (`policyId`) REFERENCES `policies`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `insured_drivers` ADD CONSTRAINT `insured_drivers_policyId_fkey` FOREIGN KEY (`policyId`) REFERENCES `policies`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `policy_beneficiaries` ADD CONSTRAINT `policy_beneficiaries_policyId_fkey` FOREIGN KEY (`policyId`) REFERENCES `policies`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `claims` ADD CONSTRAINT `claims_policyId_fkey` FOREIGN KEY (`policyId`) REFERENCES `policies`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `claims` ADD CONSTRAINT `claims_adjusterId_fkey` FOREIGN KEY (`adjusterId`) REFERENCES `adjusters`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `policy_documents` ADD CONSTRAINT `policy_documents_policyId_fkey` FOREIGN KEY (`policyId`) REFERENCES `policies`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `properties` ADD CONSTRAINT `properties_customerId_fkey` FOREIGN KEY (`customerId`) REFERENCES `customers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `properties` ADD CONSTRAINT `properties_policyId_fkey` FOREIGN KEY (`policyId`) REFERENCES `policies`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `property_services` ADD CONSTRAINT `property_services_propertyId_fkey` FOREIGN KEY (`propertyId`) REFERENCES `properties`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `service_documents` ADD CONSTRAINT `service_documents_propertyId_fkey` FOREIGN KEY (`propertyId`) REFERENCES `properties`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `trust_accounts` ADD CONSTRAINT `trust_accounts_propertyId_fkey` FOREIGN KEY (`propertyId`) REFERENCES `properties`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `transactions` ADD CONSTRAINT `transactions_customerId_fkey` FOREIGN KEY (`customerId`) REFERENCES `customers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `transactions` ADD CONSTRAINT `transactions_typeId_fkey` FOREIGN KEY (`typeId`) REFERENCES `type_transactions`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `bank_accounts` ADD CONSTRAINT `bank_accounts_bankId_fkey` FOREIGN KEY (`bankId`) REFERENCES `banks`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `bank_transactions` ADD CONSTRAINT `bank_transactions_bankAccountId_fkey` FOREIGN KEY (`bankAccountId`) REFERENCES `bank_accounts`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `bank_transactions` ADD CONSTRAINT `bank_transactions_categoryId_fkey` FOREIGN KEY (`categoryId`) REFERENCES `business_line_categories`(`id`) ON DELETE SET NULL ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE `activity_logs` ADD CONSTRAINT `activity_logs_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;