Files
2026-03-10 21:49:01 +01:00

111 lines
4.0 KiB
SQL

-- CreateTable
CREATE TABLE `users` (
`id` VARCHAR(191) NOT NULL,
`email` VARCHAR(191) NOT NULL,
`passwordHash` VARCHAR(191) NOT NULL,
`name` VARCHAR(191) NOT NULL,
`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 `companies` (
`id` VARCHAR(191) NOT NULL,
`name` VARCHAR(191) NOT NULL,
`legalForm` VARCHAR(191) NULL,
`taxId` VARCHAR(191) NULL,
`vatId` VARCHAR(191) NULL,
`address` VARCHAR(191) NOT NULL,
`zip` VARCHAR(191) NOT NULL,
`city` VARCHAR(191) NOT NULL,
`country` VARCHAR(191) NOT NULL DEFAULT 'DE',
`email` VARCHAR(191) NULL,
`phone` VARCHAR(191) NULL,
`website` VARCHAR(191) NULL,
`bankIban` VARCHAR(191) NULL,
`bankBic` VARCHAR(191) NULL,
`bankName` VARCHAR(191) NULL,
`invoicePrefix` VARCHAR(191) NOT NULL DEFAULT 'RE',
`invoiceSequence` INTEGER NOT NULL DEFAULT 0,
`userId` VARCHAR(191) NOT 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 `customers` (
`id` VARCHAR(191) NOT NULL,
`companyId` VARCHAR(191) NOT NULL,
`name` VARCHAR(191) NOT NULL,
`vatId` VARCHAR(191) NULL,
`taxId` VARCHAR(191) NULL,
`address` VARCHAR(191) NOT NULL,
`zip` VARCHAR(191) NOT NULL,
`city` VARCHAR(191) NOT NULL,
`country` VARCHAR(191) NOT NULL DEFAULT 'DE',
`email` VARCHAR(191) NULL,
`phone` VARCHAR(191) 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 `invoices` (
`id` VARCHAR(191) NOT NULL,
`number` VARCHAR(191) NOT NULL,
`companyId` VARCHAR(191) NOT NULL,
`customerId` VARCHAR(191) NOT NULL,
`issueDate` DATETIME(3) NOT NULL,
`deliveryDate` DATETIME(3) NULL,
`dueDate` DATETIME(3) NOT NULL,
`status` ENUM('DRAFT', 'SENT', 'PAID', 'CANCELLED') NOT NULL DEFAULT 'DRAFT',
`notes` TEXT NULL,
`netTotal` DECIMAL(10, 2) NOT NULL,
`taxTotal` DECIMAL(10, 2) NOT NULL,
`grossTotal` DECIMAL(10, 2) NOT NULL,
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updatedAt` DATETIME(3) NOT NULL,
UNIQUE INDEX `invoices_companyId_number_key`(`companyId`, `number`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `invoice_items` (
`id` VARCHAR(191) NOT NULL,
`invoiceId` VARCHAR(191) NOT NULL,
`position` INTEGER NOT NULL,
`description` TEXT NOT NULL,
`quantity` DECIMAL(10, 3) NOT NULL,
`unit` VARCHAR(191) NULL,
`unitPrice` DECIMAL(10, 2) NOT NULL,
`taxRate` DECIMAL(5, 2) NOT NULL,
`netAmount` DECIMAL(10, 2) NOT NULL,
`taxAmount` DECIMAL(10, 2) NOT NULL,
`grossAmount` DECIMAL(10, 2) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- AddForeignKey
ALTER TABLE `companies` ADD CONSTRAINT `companies_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `customers` ADD CONSTRAINT `customers_companyId_fkey` FOREIGN KEY (`companyId`) REFERENCES `companies`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `invoices` ADD CONSTRAINT `invoices_companyId_fkey` FOREIGN KEY (`companyId`) REFERENCES `companies`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `invoices` ADD CONSTRAINT `invoices_customerId_fkey` FOREIGN KEY (`customerId`) REFERENCES `customers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE `invoice_items` ADD CONSTRAINT `invoice_items_invoiceId_fkey` FOREIGN KEY (`invoiceId`) REFERENCES `invoices`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;