CREATE TABLE `character_cards` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `slug` text(50) NOT NULL, `name` text(100) NOT NULL, `avatar` text, `description` text, `personality` text, `scenario` text, `first_message` text, `example_dialogue` text, `system_prompt` text DEFAULT '' NOT NULL, `default_model_id` integer, `tags` text, `is_public` integer DEFAULT 1 NOT NULL, `enabled` integer DEFAULT 1 NOT NULL, `sort_order` integer DEFAULT 0 NOT NULL, `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL, `updated_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL ); --> statement-breakpoint CREATE UNIQUE INDEX `character_cards_slug_unique` ON `character_cards` (`slug`);--> statement-breakpoint CREATE INDEX `character_cards_enabled_idx` ON `character_cards` (`enabled`);--> statement-breakpoint CREATE INDEX `character_cards_sort_order_idx` ON `character_cards` (`sort_order`);--> statement-breakpoint CREATE TABLE `character_messages` ( `id` text PRIMARY KEY NOT NULL, `session_id` text NOT NULL, `role` text(20) NOT NULL, `content` text DEFAULT '' NOT NULL, `sort_order` integer NOT NULL, `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL, FOREIGN KEY (`session_id`) REFERENCES `character_sessions`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE INDEX `idx_character_messages_session_sort` ON `character_messages` (`session_id`,`sort_order`);--> statement-breakpoint CREATE TABLE `character_sessions` ( `id` text PRIMARY KEY NOT NULL, `card_id` integer, `user_id` integer, `temp_token` text(64), `title` text(100) DEFAULT '新对话' NOT NULL, `model_id` integer, `last_active_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL, `expires_at` integer, `deleted_at` integer, `created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL, `updated_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL, FOREIGN KEY (`card_id`) REFERENCES `character_cards`(`id`) ON UPDATE no action ON DELETE set null, FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE INDEX `idx_character_sessions_user_deleted` ON `character_sessions` (`user_id`,`deleted_at`);--> statement-breakpoint CREATE INDEX `idx_character_sessions_temp_token` ON `character_sessions` (`temp_token`);--> statement-breakpoint CREATE INDEX `idx_character_sessions_card` ON `character_sessions` (`card_id`);