CREATE TABLE `task` ( `id` text PRIMARY KEY NOT NULL, `title` text NOT NULL, `priority` integer DEFAULT 1 NOT NULL ); --> statement-breakpoint CREATE TABLE `clients` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `type` text DEFAULT 'business' NOT NULL, `status` text DEFAULT 'active' NOT NULL, `email` text, `phone` text, `website` text, `notes` text, `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 ); --> statement-breakpoint CREATE TABLE `addresses` ( `id` text PRIMARY KEY NOT NULL, `client_id` text NOT NULL, `label` text NOT NULL, `line_1` text NOT NULL, `line_2` text, `city` text NOT NULL, `region` text, `postcode` text NOT NULL, `country` text DEFAULT 'United Kingdom' NOT NULL, `is_primary` integer DEFAULT false 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 (`client_id`) REFERENCES `clients`(`id`) ON UPDATE no action ON DELETE restrict ); --> statement-breakpoint CREATE INDEX `addresses_client_id_idx` ON `addresses` (`client_id`);--> statement-breakpoint CREATE TABLE `contacts` ( `id` text PRIMARY KEY NOT NULL, `client_id` text NOT NULL, `name` text NOT NULL, `role` text, `email` text, `phone` text, `is_primary` integer DEFAULT false NOT NULL, `notes` text, `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 (`client_id`) REFERENCES `clients`(`id`) ON UPDATE no action ON DELETE restrict ); --> statement-breakpoint CREATE INDEX `contacts_client_id_idx` ON `contacts` (`client_id`);--> statement-breakpoint CREATE TABLE `rooms` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `type` text DEFAULT 'room' NOT NULL, `capacity` integer DEFAULT 1 NOT NULL, `location` text, `status` text DEFAULT 'available' NOT NULL, `hourly_rate_cents` integer DEFAULT 0 NOT NULL, `notes` text, `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 ); --> statement-breakpoint CREATE TABLE `services` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `category` text, `unit` text DEFAULT 'each' NOT NULL, `price_cents` integer DEFAULT 0 NOT NULL, `description` text, `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 ); --> statement-breakpoint CREATE TABLE `bookings` ( `id` text PRIMARY KEY NOT NULL, `client_id` text NOT NULL, `room_id` text NOT NULL, `service_id` text, `starts_at` text NOT NULL, `ends_at` text NOT NULL, `status` text DEFAULT 'booked' NOT NULL, `notes` text, `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 (`client_id`) REFERENCES `clients`(`id`) ON UPDATE no action ON DELETE restrict, FOREIGN KEY (`room_id`) REFERENCES `rooms`(`id`) ON UPDATE no action ON DELETE restrict, FOREIGN KEY (`service_id`) REFERENCES `services`(`id`) ON UPDATE no action ON DELETE set null ); --> statement-breakpoint CREATE INDEX `bookings_client_id_idx` ON `bookings` (`client_id`);--> statement-breakpoint CREATE INDEX `bookings_room_id_idx` ON `bookings` (`room_id`);--> statement-breakpoint CREATE INDEX `bookings_service_id_idx` ON `bookings` (`service_id`);--> statement-breakpoint CREATE TABLE `invoices` ( `id` text PRIMARY KEY NOT NULL, `client_id` text NOT NULL, `invoice_number` text NOT NULL, `issue_date` text NOT NULL, `due_date` text NOT NULL, `status` text DEFAULT 'draft' NOT NULL, `subtotal_cents` integer DEFAULT 0 NOT NULL, `tax_cents` integer DEFAULT 0 NOT NULL, `total_cents` integer DEFAULT 0 NOT NULL, `notes` text, `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 (`client_id`) REFERENCES `clients`(`id`) ON UPDATE no action ON DELETE restrict ); --> statement-breakpoint CREATE UNIQUE INDEX `invoices_invoice_number_unique` ON `invoices` (`invoice_number`);--> statement-breakpoint CREATE INDEX `invoices_client_id_idx` ON `invoices` (`client_id`);--> statement-breakpoint CREATE TABLE `contracts` ( `id` text PRIMARY KEY NOT NULL, `client_id` text NOT NULL, `title` text NOT NULL, `start_date` text NOT NULL, `end_date` text, `status` text DEFAULT 'draft' NOT NULL, `value_cents` integer DEFAULT 0 NOT NULL, `notes` text, `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 (`client_id`) REFERENCES `clients`(`id`) ON UPDATE no action ON DELETE restrict ); --> statement-breakpoint CREATE INDEX `contracts_client_id_idx` ON `contracts` (`client_id`);--> statement-breakpoint CREATE TABLE `account` ( `id` text PRIMARY KEY NOT NULL, `account_id` text NOT NULL, `provider_id` text NOT NULL, `user_id` text NOT NULL, `access_token` text, `refresh_token` text, `id_token` text, `access_token_expires_at` integer, `refresh_token_expires_at` integer, `scope` text, `password` text, `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL, `updated_at` integer NOT NULL, FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE INDEX `account_userId_idx` ON `account` (`user_id`);--> statement-breakpoint CREATE TABLE `session` ( `id` text PRIMARY KEY NOT NULL, `expires_at` integer NOT NULL, `token` text NOT NULL, `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL, `updated_at` integer NOT NULL, `ip_address` text, `user_agent` text, `user_id` text NOT NULL, FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE UNIQUE INDEX `session_token_unique` ON `session` (`token`);--> statement-breakpoint CREATE INDEX `session_userId_idx` ON `session` (`user_id`);--> statement-breakpoint CREATE TABLE `user` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `email` text NOT NULL, `email_verified` integer DEFAULT false NOT NULL, `image` text, `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL, `updated_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL ); --> statement-breakpoint CREATE UNIQUE INDEX `user_email_unique` ON `user` (`email`);--> statement-breakpoint CREATE TABLE `verification` ( `id` text PRIMARY KEY NOT NULL, `identifier` text NOT NULL, `value` text NOT NULL, `expires_at` integer 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 ); --> statement-breakpoint CREATE INDEX `verification_identifier_idx` ON `verification` (`identifier`);