-- CreateTable
CREATE TABLE `fast_billings` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `bill_no` VARCHAR(50) NOT NULL,
    `bill_date` DATE NOT NULL,
    `customer_name` VARCHAR(255) NOT NULL,
    `total_amount` DECIMAL(12, 2) NOT NULL,
    `remarks` TEXT NULL,
    `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
    `updated_at` DATETIME(3) NOT NULL,
    `created_by` BIGINT UNSIGNED NULL,

    UNIQUE INDEX `fast_billings_bill_no_key`(`bill_no`),
    INDEX `fast_billings_bill_date_idx`(`bill_date`),
    PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- CreateTable
CREATE TABLE `fast_billing_items` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `fast_billing_id` BIGINT UNSIGNED NOT NULL,
    `supplier_name` VARCHAR(255) NULL,
    `vegetable_name` VARCHAR(255) NOT NULL,
    `quantity` DECIMAL(12, 3) NOT NULL,
    `unit` VARCHAR(20) NOT NULL DEFAULT 'Kg',
    `rate_per_unit` DECIMAL(10, 2) NOT NULL,
    `total_amount` DECIMAL(12, 2) NOT NULL,
    `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
    `updated_at` DATETIME(3) NOT NULL,
    `created_by` BIGINT UNSIGNED NULL,

    INDEX `fast_billing_items_fast_billing_id_idx`(`fast_billing_id`),
    PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

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

-- AddForeignKey
ALTER TABLE `fast_billing_items` ADD CONSTRAINT `fast_billing_items_fast_billing_id_fkey` FOREIGN KEY (`fast_billing_id`) REFERENCES `fast_billings`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;

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