PRAGMA foreign_keys=OFF;--> statement-breakpoint CREATE TABLE `__new_contracts` ( `id` text PRIMARY KEY NOT NULL, `organization_id` text NOT NULL, `client_id` text NOT NULL, `room_id` text, `service_id` text, `start_date` text NOT NULL, `end_date` text NOT NULL, `status` text DEFAULT 'draft' 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 (`organization_id`) REFERENCES `organizations`(`id`) ON UPDATE no action ON DELETE restrict, 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 restrict ); --> statement-breakpoint INSERT INTO `__new_contracts`("id", "organization_id", "client_id", "room_id", "service_id", "start_date", "end_date", "status", "notes", "created_at", "updated_at", "archived_at") SELECT "id", "organization_id", "client_id", NULL, NULL, "start_date", COALESCE(NULLIF("end_date", ''), "start_date"), CASE WHEN "status" = 'cancelled' THEN 'void' ELSE "status" END, "notes", "created_at", "updated_at", "archived_at" FROM `contracts`;--> statement-breakpoint DROP TABLE `contracts`;--> statement-breakpoint ALTER TABLE `__new_contracts` RENAME TO `contracts`;--> statement-breakpoint PRAGMA foreign_keys=ON;--> statement-breakpoint CREATE INDEX `contracts_organization_id_idx` ON `contracts` (`organization_id`);--> statement-breakpoint CREATE INDEX `contracts_client_id_idx` ON `contracts` (`client_id`);--> statement-breakpoint CREATE INDEX `contracts_room_id_idx` ON `contracts` (`room_id`);--> statement-breakpoint CREATE INDEX `contracts_service_id_idx` ON `contracts` (`service_id`);