27 lines
1.4 KiB
SQL
27 lines
1.4 KiB
SQL
ALTER TABLE `contracts` ADD `billed_to` text;--> statement-breakpoint
|
|
CREATE TABLE `invoice_lines` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`organization_id` text NOT NULL,
|
|
`invoice_id` text NOT NULL,
|
|
`client_id` text NOT NULL,
|
|
`source_type` text NOT NULL,
|
|
`source_id` text NOT NULL,
|
|
`period_start` text NOT NULL,
|
|
`period_end` text NOT NULL,
|
|
`description` text NOT NULL,
|
|
`quantity` real DEFAULT 1 NOT NULL,
|
|
`unit_price_gbp` real DEFAULT 0 NOT NULL,
|
|
`total_gbp` real DEFAULT 0 NOT NULL,
|
|
`created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
|
|
`updated_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
|
|
`archived_at` integer,
|
|
FOREIGN KEY (`organization_id`) REFERENCES `organizations`(`id`) ON UPDATE no action ON DELETE restrict,
|
|
FOREIGN KEY (`invoice_id`) REFERENCES `invoices`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
FOREIGN KEY (`client_id`) REFERENCES `clients`(`id`) ON UPDATE no action ON DELETE restrict
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `invoice_lines_organization_id_idx` ON `invoice_lines` (`organization_id`);--> statement-breakpoint
|
|
CREATE INDEX `invoice_lines_invoice_id_idx` ON `invoice_lines` (`invoice_id`);--> statement-breakpoint
|
|
CREATE INDEX `invoice_lines_client_id_idx` ON `invoice_lines` (`client_id`);--> statement-breakpoint
|
|
CREATE INDEX `invoice_lines_source_idx` ON `invoice_lines` (`source_type`,`source_id`);
|