-- CreateTable
CREATE TABLE `cash_bank_settings` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `opening_cash_in_hand` DECIMAL(15, 2) NOT NULL DEFAULT 0.00,
    `opening_cash_in_bank` DECIMAL(15, 2) NOT NULL DEFAULT 0.00,
    `opening_date` DATE NOT NULL,
    `remarks` TEXT NULL,
    `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
    `updated_at` DATETIME(3) NOT NULL,

    PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- CreateTable
CREATE TABLE `cash_bank_transfers` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `transfer_date` DATE NOT NULL,
    `amount` DECIMAL(15, 2) NOT NULL,
    `from_account` VARCHAR(20) NOT NULL DEFAULT 'CASH',
    `to_account` VARCHAR(20) NOT NULL DEFAULT 'BANK',
    `reference_no` VARCHAR(100) NULL,
    `remarks` TEXT NULL,
    `deleted_at` DATETIME(3) NULL,
    `deleted_by` BIGINT UNSIGNED NULL,
    `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
    `updated_at` DATETIME(3) NOT NULL,
    `created_by` BIGINT UNSIGNED NULL,

    INDEX `cash_bank_transfers_transfer_date_idx`(`transfer_date`),
    INDEX `cash_bank_transfers_deleted_at_idx`(`deleted_at`),
    PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- CreateIndex
CREATE INDEX `customer_receipts_receipt_date_idx` ON `customer_receipts`(`receipt_date`);

-- CreateIndex
CREATE INDEX `expenses_expense_date_idx` ON `expenses`(`expense_date`);

-- CreateIndex
CREATE INDEX `supplier_payments_payment_date_idx` ON `supplier_payments`(`payment_date`);

-- AddForeignKey
ALTER TABLE `cash_bank_transfers` ADD CONSTRAINT `cash_bank_transfers_deleted_by_fkey` FOREIGN KEY (`deleted_by`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE `cash_bank_transfers` ADD CONSTRAINT `cash_bank_transfers_created_by_fkey` FOREIGN KEY (`created_by`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
