CREATE TABLE `account` ( `id` text PRIMARY KEY NOT NULL, `accountId` text NOT NULL, `providerId` text NOT NULL, `userId` text NOT NULL, `accessToken` text, `refreshToken` text, `idToken` text, `accessTokenExpiresAt` integer, `refreshTokenExpiresAt` integer, `scope` text, `password` text, `createdAt` integer NOT NULL, `updatedAt` integer NOT NULL, FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE INDEX `account_userId_idx` ON `account` (`userId`);--> statement-breakpoint CREATE TABLE `filing` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `ticker` text NOT NULL, `filing_type` text NOT NULL, `filing_date` text NOT NULL, `accession_number` text NOT NULL, `cik` text NOT NULL, `company_name` text NOT NULL, `filing_url` text, `submission_url` text, `primary_document` text, `metrics` text, `analysis` text, `created_at` text NOT NULL, `updated_at` text NOT NULL ); --> statement-breakpoint CREATE UNIQUE INDEX `filing_accession_uidx` ON `filing` (`accession_number`);--> statement-breakpoint CREATE INDEX `filing_ticker_date_idx` ON `filing` (`ticker`,`filing_date`);--> statement-breakpoint CREATE INDEX `filing_date_idx` ON `filing` (`filing_date`);--> statement-breakpoint CREATE TABLE `filing_link` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `filing_id` integer NOT NULL, `link_type` text NOT NULL, `url` text NOT NULL, `source` text DEFAULT 'sec' NOT NULL, `created_at` text NOT NULL, FOREIGN KEY (`filing_id`) REFERENCES `filing`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE UNIQUE INDEX `filing_link_unique_uidx` ON `filing_link` (`filing_id`,`url`);--> statement-breakpoint CREATE INDEX `filing_link_filing_idx` ON `filing_link` (`filing_id`);--> statement-breakpoint CREATE TABLE `holding` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `user_id` text NOT NULL, `ticker` text NOT NULL, `shares` numeric NOT NULL, `avg_cost` numeric NOT NULL, `current_price` numeric, `market_value` numeric NOT NULL, `gain_loss` numeric NOT NULL, `gain_loss_pct` numeric NOT NULL, `last_price_at` text, `created_at` text NOT NULL, `updated_at` text NOT NULL, FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE UNIQUE INDEX `holding_user_ticker_uidx` ON `holding` (`user_id`,`ticker`);--> statement-breakpoint CREATE INDEX `holding_user_idx` ON `holding` (`user_id`);--> statement-breakpoint CREATE TABLE `invitation` ( `id` text PRIMARY KEY NOT NULL, `organizationId` text NOT NULL, `email` text NOT NULL, `role` text, `status` text DEFAULT 'pending' NOT NULL, `expiresAt` integer NOT NULL, `createdAt` integer NOT NULL, `inviterId` text NOT NULL, FOREIGN KEY (`organizationId`) REFERENCES `organization`(`id`) ON UPDATE no action ON DELETE cascade, FOREIGN KEY (`inviterId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE INDEX `invitation_organizationId_idx` ON `invitation` (`organizationId`);--> statement-breakpoint CREATE INDEX `invitation_email_idx` ON `invitation` (`email`);--> statement-breakpoint CREATE TABLE `member` ( `id` text PRIMARY KEY NOT NULL, `organizationId` text NOT NULL, `userId` text NOT NULL, `role` text DEFAULT 'member' NOT NULL, `createdAt` integer NOT NULL, FOREIGN KEY (`organizationId`) REFERENCES `organization`(`id`) ON UPDATE no action ON DELETE cascade, FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE INDEX `member_organizationId_idx` ON `member` (`organizationId`);--> statement-breakpoint CREATE INDEX `member_userId_idx` ON `member` (`userId`);--> statement-breakpoint CREATE TABLE `organization` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `slug` text NOT NULL, `logo` text, `createdAt` integer NOT NULL, `metadata` text ); --> statement-breakpoint CREATE UNIQUE INDEX `organization_slug_uidx` ON `organization` (`slug`);--> statement-breakpoint CREATE TABLE `portfolio_insight` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `user_id` text NOT NULL, `provider` text NOT NULL, `model` text NOT NULL, `content` text NOT NULL, `created_at` text NOT NULL, FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE INDEX `insight_user_created_idx` ON `portfolio_insight` (`user_id`,`created_at`);--> statement-breakpoint CREATE TABLE `session` ( `id` text PRIMARY KEY NOT NULL, `expiresAt` integer NOT NULL, `token` text NOT NULL, `createdAt` integer NOT NULL, `updatedAt` integer NOT NULL, `ipAddress` text, `userAgent` text, `userId` text NOT NULL, `impersonatedBy` text, `activeOrganizationId` text, FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE UNIQUE INDEX `session_token_uidx` ON `session` (`token`);--> statement-breakpoint CREATE INDEX `session_userId_idx` ON `session` (`userId`);--> statement-breakpoint CREATE TABLE `task_run` ( `id` text PRIMARY KEY NOT NULL, `user_id` text NOT NULL, `task_type` text NOT NULL, `status` text NOT NULL, `priority` integer NOT NULL, `payload` text NOT NULL, `result` text, `error` text, `attempts` integer NOT NULL, `max_attempts` integer NOT NULL, `workflow_run_id` text, `created_at` text NOT NULL, `updated_at` text NOT NULL, `finished_at` text, FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE INDEX `task_user_created_idx` ON `task_run` (`user_id`,`created_at`);--> statement-breakpoint CREATE INDEX `task_status_idx` ON `task_run` (`status`);--> statement-breakpoint CREATE UNIQUE INDEX `task_workflow_run_uidx` ON `task_run` (`workflow_run_id`);--> statement-breakpoint CREATE TABLE `user` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `email` text NOT NULL, `emailVerified` integer DEFAULT false NOT NULL, `image` text, `createdAt` integer NOT NULL, `updatedAt` integer NOT NULL, `role` text, `banned` integer DEFAULT false, `banReason` text, `banExpires` integer ); --> statement-breakpoint CREATE UNIQUE INDEX `user_email_uidx` ON `user` (`email`);--> statement-breakpoint CREATE TABLE `verification` ( `id` text PRIMARY KEY NOT NULL, `identifier` text NOT NULL, `value` text NOT NULL, `expiresAt` integer NOT NULL, `createdAt` integer NOT NULL, `updatedAt` integer NOT NULL ); --> statement-breakpoint CREATE INDEX `verification_identifier_idx` ON `verification` (`identifier`);--> statement-breakpoint CREATE TABLE `watchlist_item` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `user_id` text NOT NULL, `ticker` text NOT NULL, `company_name` text NOT NULL, `sector` text, `created_at` text NOT NULL, FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE UNIQUE INDEX `watchlist_user_ticker_uidx` ON `watchlist_item` (`user_id`,`ticker`);--> statement-breakpoint CREATE INDEX `watchlist_user_created_idx` ON `watchlist_item` (`user_id`,`created_at`);