- Added character selection and history management using local storage. - Implemented hint system that unlocks based on the number of guesses. - Enhanced UI with animations for hint unlocks and special win conditions. - Created a server endpoint to record wins in the database.
156 lines
5.0 KiB
SQL
156 lines
5.0 KiB
SQL
CREATE TABLE `arc` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`name` text NOT NULL,
|
|
`startChapter` integer NOT NULL,
|
|
`endChapter` integer,
|
|
`url` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `character` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`name` text NOT NULL,
|
|
`gender` text,
|
|
`age` integer,
|
|
`affiliations` text,
|
|
`devilFruitId` text,
|
|
`hakiObservation` integer DEFAULT false,
|
|
`hakiArmament` integer DEFAULT false,
|
|
`hakiConqueror` integer DEFAULT false,
|
|
`bounty` integer DEFAULT 0,
|
|
`height` real,
|
|
`origin` text,
|
|
`firstAppearance` integer NOT NULL,
|
|
`pictureUrl` text,
|
|
`epithets` text,
|
|
`status` text,
|
|
`arcId` text,
|
|
`url` text,
|
|
`isInDailyMode` integer DEFAULT true,
|
|
FOREIGN KEY (`devilFruitId`) REFERENCES `devilFruit`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`arcId`) REFERENCES `arc`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `characterHistory` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`characterId` text,
|
|
`date` text,
|
|
`won` integer DEFAULT 0 NOT NULL,
|
|
`createdAt` integer NOT NULL,
|
|
`updatedAt` integer NOT NULL,
|
|
FOREIGN KEY (`characterId`) REFERENCES `character`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `characterOverride` (
|
|
`characterId` text PRIMARY KEY NOT NULL,
|
|
`name` text,
|
|
`gender` text,
|
|
`age` integer,
|
|
`affiliations` text,
|
|
`devilFruitId` text,
|
|
`hakiObservation` integer,
|
|
`hakiArmament` integer,
|
|
`hakiConqueror` integer,
|
|
`bounty` integer,
|
|
`height` real,
|
|
`origin` text,
|
|
`firstAppearance` integer NOT NULL,
|
|
`pictureUrl` text,
|
|
`epithets` text,
|
|
`status` text,
|
|
`arcId` text,
|
|
`url` text,
|
|
`notes` text,
|
|
FOREIGN KEY (`characterId`) REFERENCES `character`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`devilFruitId`) REFERENCES `devilFruit`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`arcId`) REFERENCES `arc`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `characterScrapeValidation` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`name` text NOT NULL,
|
|
`gender` text,
|
|
`age` integer,
|
|
`affiliations` text,
|
|
`devilFruitId` text,
|
|
`hakiObservation` integer DEFAULT false,
|
|
`hakiArmament` integer DEFAULT false,
|
|
`hakiConqueror` integer DEFAULT false,
|
|
`bounty` integer,
|
|
`height` real,
|
|
`origin` text,
|
|
`firstAppearance` integer NOT NULL,
|
|
`pictureUrl` text,
|
|
`epithets` text,
|
|
`status` text,
|
|
`arcId` text,
|
|
`url` text,
|
|
FOREIGN KEY (`devilFruitId`) REFERENCES `devilFruit`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`arcId`) REFERENCES `arc`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `config` (
|
|
`key` text PRIMARY KEY NOT NULL,
|
|
`value` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `devilFruit` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`name` text NOT NULL,
|
|
`type` text,
|
|
`url` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `devilFruit_name_unique` ON `devilFruit` (`name`);--> 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`); |