diff --git a/app.vue b/app.vue index bb7c8cf..dcafdbb 100644 --- a/app.vue +++ b/app.vue @@ -1,11 +1,13 @@ diff --git a/bun.lock b/bun.lock index 8819c8b..b5847d4 100644 --- a/bun.lock +++ b/bun.lock @@ -1,5 +1,6 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "d-any", diff --git a/db.sqlite b/db.sqlite index 84e0994..263bd75 100644 Binary files a/db.sqlite and b/db.sqlite differ diff --git a/db/schema.ts b/db/schema.ts index 73496a6..5617aa7 100644 --- a/db/schema.ts +++ b/db/schema.ts @@ -86,7 +86,10 @@ export const campaignTable = table("campaign", { name: text().notNull(), description: text(), owner: int().notNull().references(() => usersTable.id, { onDelete: 'cascade', onUpdate: 'cascade' }), - joinby: text({ enum: [ 'link', 'invite' ] }).default('invite'), + link: text().notNull(), + status: text({ enum: ['PREPARING', 'PLAYING', 'ARCHIVED'] }).default('PREPARING'), + inventory: text({ mode: 'json' }).default('[]'), + money: int().default(0), }); export const campaignMembersTable = table("campaign_members", { id: int().references(() => campaignTable.id, { onDelete: 'cascade', onUpdate: 'cascade' }), @@ -97,6 +100,13 @@ export const campaignCharactersTable = table("campaign_characters", { id: int().references(() => campaignTable.id, { onDelete: 'cascade', onUpdate: 'cascade' }), character: int().references(() => characterTable.id, { onDelete: 'cascade', onUpdate: 'cascade' }), }, (table) => [primaryKey({ columns: [table.id, table.character] })]); +export const campaignLogsTable = table("campaign_logs", { + id: int().references(() => campaignTable.id, { onDelete: 'cascade', onUpdate: 'cascade' }), + from: int().references(() => campaignCharactersTable.character, { onDelete: 'cascade', onUpdate: 'cascade' }), + timestamp: int({ mode: 'timestamp_ms' }).notNull(), + type: text({ enum: ['ITEM', 'CHARACTER', 'PLACE', 'EVENT', 'FIGHT', 'TEXT'] }), + details: text().notNull(), +}, (table) => [primaryKey({ columns: [table.id, table.from, table.timestamp] })]); export const usersRelation = relations(usersTable, ({ one, many }) => ({ data: one(usersDataTable, { fields: [usersTable.id], references: [usersDataTable.id], }), @@ -142,13 +152,18 @@ export const characterChoicesRelation = relations(characterChoicesTable, ({ one export const campaignRelation = relations(campaignTable, ({ one, many }) => ({ members: many(campaignMembersTable), characters: many(campaignCharactersTable), + logs: many(campaignLogsTable), owner: one(usersTable, { fields: [campaignTable.owner], references: [usersTable.id], }), })); export const campaignMembersRelation = relations(campaignMembersTable, ({ one }) => ({ campaign: one(campaignTable, { fields: [campaignMembersTable.id], references: [campaignTable.id], }), member: one(usersTable, { fields: [campaignMembersTable.user], references: [usersTable.id], }) -})) +})); export const campaignCharacterRelation = relations(campaignCharactersTable, ({ one }) => ({ campaign: one(campaignTable, { fields: [campaignCharactersTable.id], references: [campaignTable.id], }), - character: one(characterTable, { fields: [campaignCharactersTable.character], references: [characterTable.id], }) -})) \ No newline at end of file + character: one(characterTable, { fields: [campaignCharactersTable.character], references: [characterTable.id], }), +})); +export const campaignLogsRelation = relations(campaignLogsTable, ({ one }) => ({ + campaign: one(campaignTable, { fields: [campaignLogsTable.id], references: [campaignTable.id], }), + character: one(campaignCharactersTable, { fields: [campaignLogsTable.from], references: [campaignCharactersTable.character], }), +})); \ No newline at end of file diff --git a/drizzle/0019_flaky_steel_serpent.sql b/drizzle/0019_flaky_steel_serpent.sql new file mode 100644 index 0000000..9963d53 --- /dev/null +++ b/drizzle/0019_flaky_steel_serpent.sql @@ -0,0 +1 @@ +ALTER TABLE `campaign` ADD `joinby` text DEFAULT 'invite'; \ No newline at end of file diff --git a/drizzle/0020_daily_echo.sql b/drizzle/0020_daily_echo.sql new file mode 100644 index 0000000..70e988a --- /dev/null +++ b/drizzle/0020_daily_echo.sql @@ -0,0 +1,2 @@ +ALTER TABLE `campaign` ADD `link` text NOT NULL;--> statement-breakpoint +ALTER TABLE `campaign` DROP COLUMN `joinby`; \ No newline at end of file diff --git a/drizzle/0021_familiar_dagger.sql b/drizzle/0021_familiar_dagger.sql new file mode 100644 index 0000000..ef8dc09 --- /dev/null +++ b/drizzle/0021_familiar_dagger.sql @@ -0,0 +1,14 @@ +CREATE TABLE `campaign_logs` ( + `id` integer, + `from` integer, + `timestamp` integer NOT NULL, + `type` text, + `details` text NOT NULL, + PRIMARY KEY(`id`, `from`, `timestamp`), + FOREIGN KEY (`id`) REFERENCES `campaign`(`id`) ON UPDATE cascade ON DELETE cascade, + FOREIGN KEY (`from`) REFERENCES `campaign_characters`(`id`) ON UPDATE cascade ON DELETE cascade +); +--> statement-breakpoint +ALTER TABLE `campaign` ADD `status` text DEFAULT 'PREPARING';--> statement-breakpoint +ALTER TABLE `campaign` ADD `inventory` text DEFAULT '[]';--> statement-breakpoint +ALTER TABLE `campaign` ADD `money` integer DEFAULT 0; \ No newline at end of file diff --git a/drizzle/0022_warm_bushwacker.sql b/drizzle/0022_warm_bushwacker.sql new file mode 100644 index 0000000..5ec54c0 --- /dev/null +++ b/drizzle/0022_warm_bushwacker.sql @@ -0,0 +1,16 @@ +PRAGMA foreign_keys=OFF;--> statement-breakpoint +CREATE TABLE `__new_campaign_logs` ( + `id` integer, + `from` integer, + `timestamp` integer NOT NULL, + `type` text, + `details` text NOT NULL, + PRIMARY KEY(`id`, `from`, `timestamp`), + FOREIGN KEY (`id`) REFERENCES `campaign`(`id`) ON UPDATE cascade ON DELETE cascade, + FOREIGN KEY (`from`) REFERENCES `campaign_characters`(`character`) ON UPDATE cascade ON DELETE cascade +); +--> statement-breakpoint +INSERT INTO `__new_campaign_logs`("id", "from", "timestamp", "type", "details") SELECT "id", "from", "timestamp", "type", "details" FROM `campaign_logs`;--> statement-breakpoint +DROP TABLE `campaign_logs`;--> statement-breakpoint +ALTER TABLE `__new_campaign_logs` RENAME TO `campaign_logs`;--> statement-breakpoint +PRAGMA foreign_keys=ON; \ No newline at end of file diff --git a/drizzle/meta/0019_snapshot.json b/drizzle/meta/0019_snapshot.json new file mode 100644 index 0000000..dd7f81d --- /dev/null +++ b/drizzle/meta/0019_snapshot.json @@ -0,0 +1,894 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "4dcce951-0911-424a-b0b1-2db5b2f466f9", + "prevId": "42b1cd62-a77f-4fd3-b271-c44a66a56316", + "tables": { + "campaign_characters": { + "name": "campaign_characters", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_characters_id_campaign_id_fk": { + "name": "campaign_characters_id_campaign_id_fk", + "tableFrom": "campaign_characters", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_characters_character_character_id_fk": { + "name": "campaign_characters_character_character_id_fk", + "tableFrom": "campaign_characters", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_characters_id_character_pk": { + "columns": [ + "id", + "character" + ], + "name": "campaign_characters_id_character_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign_members": { + "name": "campaign_members", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user": { + "name": "user", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rights": { + "name": "rights", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_members_id_campaign_id_fk": { + "name": "campaign_members_id_campaign_id_fk", + "tableFrom": "campaign_members", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_members_user_users_id_fk": { + "name": "campaign_members_user_users_id_fk", + "tableFrom": "campaign_members", + "tableTo": "users", + "columnsFrom": [ + "user" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_members_id_user_pk": { + "columns": [ + "id", + "user" + ], + "name": "campaign_members_id_user_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign": { + "name": "campaign", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "joinby": { + "name": "joinby", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "'invite'" + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_owner_users_id_fk": { + "name": "campaign_owner_users_id_fk", + "tableFrom": "campaign", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_abilities": { + "name": "character_abilities", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ability": { + "name": "ability", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "max": { + "name": "max", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "character_abilities_character_character_id_fk": { + "name": "character_abilities_character_character_id_fk", + "tableFrom": "character_abilities", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_abilities_character_ability_pk": { + "columns": [ + "character", + "ability" + ], + "name": "character_abilities_character_ability_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_choices": { + "name": "character_choices", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "id": { + "name": "id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_choices_character_character_id_fk": { + "name": "character_choices_character_character_id_fk", + "tableFrom": "character_choices", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_choices_character_id_choice_pk": { + "columns": [ + "character", + "id", + "choice" + ], + "name": "character_choices_character_id_choice_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_leveling": { + "name": "character_leveling", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_leveling_character_character_id_fk": { + "name": "character_leveling_character_character_id_fk", + "tableFrom": "character_leveling", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_leveling_character_level_pk": { + "columns": [ + "character", + "level" + ], + "name": "character_leveling_character_level_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character": { + "name": "character", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "people": { + "name": "people", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "variables": { + "name": "variables", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"health\": 0,\"mana\": 0,\"spells\": [],\"items\": [],\"exhaustion\": 0,\"sickness\": [],\"poisons\": []}'" + }, + "aspect": { + "name": "aspect", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "public_notes": { + "name": "public_notes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "private_notes": { + "name": "private_notes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "visibility": { + "name": "visibility", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'private'" + }, + "thumbnail": { + "name": "thumbnail", + "type": "blob", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_owner_users_id_fk": { + "name": "character_owner_users_id_fk", + "tableFrom": "character", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_training": { + "name": "character_training", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "stat": { + "name": "stat", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_training_character_character_id_fk": { + "name": "character_training_character_character_id_fk", + "tableFrom": "character_training", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_training_character_stat_level_pk": { + "columns": [ + "character", + "stat", + "level" + ], + "name": "character_training_character_stat_level_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "email_validation": { + "name": "email_validation", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "project_content": { + "name": "project_content", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "content": { + "name": "content", + "type": "blob", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "project_files": { + "name": "project_files", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "navigable": { + "name": "navigable", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "private": { + "name": "private", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "project_files_path_unique": { + "name": "project_files_path_unique", + "columns": [ + "path" + ], + "isUnique": true + } + }, + "foreignKeys": { + "project_files_owner_users_id_fk": { + "name": "project_files_owner_users_id_fk", + "tableFrom": "project_files", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_permissions": { + "name": "user_permissions", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_permissions_id_users_id_fk": { + "name": "user_permissions_id_users_id_fk", + "tableFrom": "user_permissions", + "tableTo": "users", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "user_permissions_id_permission_pk": { + "columns": [ + "id", + "permission" + ], + "name": "user_permissions_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_sessions": { + "name": "user_sessions", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_sessions_user_id_users_id_fk": { + "name": "user_sessions_user_id_users_id_fk", + "tableFrom": "user_sessions", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "user_sessions_id_user_id_pk": { + "columns": [ + "id", + "user_id" + ], + "name": "user_sessions_id_user_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users_data": { + "name": "users_data", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "signin": { + "name": "signin", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "lastTimestamp": { + "name": "lastTimestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "users_data_id_users_id_fk": { + "name": "users_data_id_users_id_fk", + "tableFrom": "users_data", + "tableTo": "users", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users": { + "name": "users", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "hash": { + "name": "hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "state": { + "name": "state", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": { + "users_username_unique": { + "name": "users_username_unique", + "columns": [ + "username" + ], + "isUnique": true + }, + "users_email_unique": { + "name": "users_email_unique", + "columns": [ + "email" + ], + "isUnique": true + }, + "users_hash_unique": { + "name": "users_hash_unique", + "columns": [ + "hash" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/0020_snapshot.json b/drizzle/meta/0020_snapshot.json new file mode 100644 index 0000000..d24dd7a --- /dev/null +++ b/drizzle/meta/0020_snapshot.json @@ -0,0 +1,893 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "606c7320-97b9-4a5b-87ad-2f83093d6b55", + "prevId": "4dcce951-0911-424a-b0b1-2db5b2f466f9", + "tables": { + "campaign_characters": { + "name": "campaign_characters", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_characters_id_campaign_id_fk": { + "name": "campaign_characters_id_campaign_id_fk", + "tableFrom": "campaign_characters", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_characters_character_character_id_fk": { + "name": "campaign_characters_character_character_id_fk", + "tableFrom": "campaign_characters", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_characters_id_character_pk": { + "columns": [ + "id", + "character" + ], + "name": "campaign_characters_id_character_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign_members": { + "name": "campaign_members", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user": { + "name": "user", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rights": { + "name": "rights", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_members_id_campaign_id_fk": { + "name": "campaign_members_id_campaign_id_fk", + "tableFrom": "campaign_members", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_members_user_users_id_fk": { + "name": "campaign_members_user_users_id_fk", + "tableFrom": "campaign_members", + "tableTo": "users", + "columnsFrom": [ + "user" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_members_id_user_pk": { + "columns": [ + "id", + "user" + ], + "name": "campaign_members_id_user_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign": { + "name": "campaign", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "link": { + "name": "link", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_owner_users_id_fk": { + "name": "campaign_owner_users_id_fk", + "tableFrom": "campaign", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_abilities": { + "name": "character_abilities", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ability": { + "name": "ability", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "max": { + "name": "max", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "character_abilities_character_character_id_fk": { + "name": "character_abilities_character_character_id_fk", + "tableFrom": "character_abilities", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_abilities_character_ability_pk": { + "columns": [ + "character", + "ability" + ], + "name": "character_abilities_character_ability_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_choices": { + "name": "character_choices", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "id": { + "name": "id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_choices_character_character_id_fk": { + "name": "character_choices_character_character_id_fk", + "tableFrom": "character_choices", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_choices_character_id_choice_pk": { + "columns": [ + "character", + "id", + "choice" + ], + "name": "character_choices_character_id_choice_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_leveling": { + "name": "character_leveling", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_leveling_character_character_id_fk": { + "name": "character_leveling_character_character_id_fk", + "tableFrom": "character_leveling", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_leveling_character_level_pk": { + "columns": [ + "character", + "level" + ], + "name": "character_leveling_character_level_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character": { + "name": "character", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "people": { + "name": "people", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "variables": { + "name": "variables", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"health\": 0,\"mana\": 0,\"spells\": [],\"items\": [],\"exhaustion\": 0,\"sickness\": [],\"poisons\": []}'" + }, + "aspect": { + "name": "aspect", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "public_notes": { + "name": "public_notes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "private_notes": { + "name": "private_notes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "visibility": { + "name": "visibility", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'private'" + }, + "thumbnail": { + "name": "thumbnail", + "type": "blob", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_owner_users_id_fk": { + "name": "character_owner_users_id_fk", + "tableFrom": "character", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_training": { + "name": "character_training", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "stat": { + "name": "stat", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_training_character_character_id_fk": { + "name": "character_training_character_character_id_fk", + "tableFrom": "character_training", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_training_character_stat_level_pk": { + "columns": [ + "character", + "stat", + "level" + ], + "name": "character_training_character_stat_level_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "email_validation": { + "name": "email_validation", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "project_content": { + "name": "project_content", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "content": { + "name": "content", + "type": "blob", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "project_files": { + "name": "project_files", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "navigable": { + "name": "navigable", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "private": { + "name": "private", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "project_files_path_unique": { + "name": "project_files_path_unique", + "columns": [ + "path" + ], + "isUnique": true + } + }, + "foreignKeys": { + "project_files_owner_users_id_fk": { + "name": "project_files_owner_users_id_fk", + "tableFrom": "project_files", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_permissions": { + "name": "user_permissions", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_permissions_id_users_id_fk": { + "name": "user_permissions_id_users_id_fk", + "tableFrom": "user_permissions", + "tableTo": "users", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "user_permissions_id_permission_pk": { + "columns": [ + "id", + "permission" + ], + "name": "user_permissions_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_sessions": { + "name": "user_sessions", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_sessions_user_id_users_id_fk": { + "name": "user_sessions_user_id_users_id_fk", + "tableFrom": "user_sessions", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "user_sessions_id_user_id_pk": { + "columns": [ + "id", + "user_id" + ], + "name": "user_sessions_id_user_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users_data": { + "name": "users_data", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "signin": { + "name": "signin", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "lastTimestamp": { + "name": "lastTimestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "users_data_id_users_id_fk": { + "name": "users_data_id_users_id_fk", + "tableFrom": "users_data", + "tableTo": "users", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users": { + "name": "users", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "hash": { + "name": "hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "state": { + "name": "state", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": { + "users_username_unique": { + "name": "users_username_unique", + "columns": [ + "username" + ], + "isUnique": true + }, + "users_email_unique": { + "name": "users_email_unique", + "columns": [ + "email" + ], + "isUnique": true + }, + "users_hash_unique": { + "name": "users_hash_unique", + "columns": [ + "hash" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/0021_snapshot.json b/drizzle/meta/0021_snapshot.json new file mode 100644 index 0000000..42cea45 --- /dev/null +++ b/drizzle/meta/0021_snapshot.json @@ -0,0 +1,998 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "1b8ca1cb-ac1d-481e-a8d9-6d3fdffd7e3e", + "prevId": "606c7320-97b9-4a5b-87ad-2f83093d6b55", + "tables": { + "campaign_characters": { + "name": "campaign_characters", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_characters_id_campaign_id_fk": { + "name": "campaign_characters_id_campaign_id_fk", + "tableFrom": "campaign_characters", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_characters_character_character_id_fk": { + "name": "campaign_characters_character_character_id_fk", + "tableFrom": "campaign_characters", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_characters_id_character_pk": { + "columns": [ + "id", + "character" + ], + "name": "campaign_characters_id_character_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign_logs": { + "name": "campaign_logs", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "from": { + "name": "from", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "details": { + "name": "details", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_logs_id_campaign_id_fk": { + "name": "campaign_logs_id_campaign_id_fk", + "tableFrom": "campaign_logs", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_logs_from_campaign_characters_id_fk": { + "name": "campaign_logs_from_campaign_characters_id_fk", + "tableFrom": "campaign_logs", + "tableTo": "campaign_characters", + "columnsFrom": [ + "from" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_logs_id_from_timestamp_pk": { + "columns": [ + "id", + "from", + "timestamp" + ], + "name": "campaign_logs_id_from_timestamp_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign_members": { + "name": "campaign_members", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user": { + "name": "user", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rights": { + "name": "rights", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_members_id_campaign_id_fk": { + "name": "campaign_members_id_campaign_id_fk", + "tableFrom": "campaign_members", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_members_user_users_id_fk": { + "name": "campaign_members_user_users_id_fk", + "tableFrom": "campaign_members", + "tableTo": "users", + "columnsFrom": [ + "user" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_members_id_user_pk": { + "columns": [ + "id", + "user" + ], + "name": "campaign_members_id_user_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign": { + "name": "campaign", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "link": { + "name": "link", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "'PREPARING'" + }, + "inventory": { + "name": "inventory", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "'[]'" + }, + "money": { + "name": "money", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_owner_users_id_fk": { + "name": "campaign_owner_users_id_fk", + "tableFrom": "campaign", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_abilities": { + "name": "character_abilities", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ability": { + "name": "ability", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "max": { + "name": "max", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "character_abilities_character_character_id_fk": { + "name": "character_abilities_character_character_id_fk", + "tableFrom": "character_abilities", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_abilities_character_ability_pk": { + "columns": [ + "character", + "ability" + ], + "name": "character_abilities_character_ability_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_choices": { + "name": "character_choices", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "id": { + "name": "id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_choices_character_character_id_fk": { + "name": "character_choices_character_character_id_fk", + "tableFrom": "character_choices", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_choices_character_id_choice_pk": { + "columns": [ + "character", + "id", + "choice" + ], + "name": "character_choices_character_id_choice_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_leveling": { + "name": "character_leveling", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_leveling_character_character_id_fk": { + "name": "character_leveling_character_character_id_fk", + "tableFrom": "character_leveling", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_leveling_character_level_pk": { + "columns": [ + "character", + "level" + ], + "name": "character_leveling_character_level_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character": { + "name": "character", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "people": { + "name": "people", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "variables": { + "name": "variables", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"health\": 0,\"mana\": 0,\"spells\": [],\"items\": [],\"exhaustion\": 0,\"sickness\": [],\"poisons\": []}'" + }, + "aspect": { + "name": "aspect", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "public_notes": { + "name": "public_notes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "private_notes": { + "name": "private_notes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "visibility": { + "name": "visibility", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'private'" + }, + "thumbnail": { + "name": "thumbnail", + "type": "blob", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_owner_users_id_fk": { + "name": "character_owner_users_id_fk", + "tableFrom": "character", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_training": { + "name": "character_training", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "stat": { + "name": "stat", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_training_character_character_id_fk": { + "name": "character_training_character_character_id_fk", + "tableFrom": "character_training", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_training_character_stat_level_pk": { + "columns": [ + "character", + "stat", + "level" + ], + "name": "character_training_character_stat_level_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "email_validation": { + "name": "email_validation", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "project_content": { + "name": "project_content", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "content": { + "name": "content", + "type": "blob", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "project_files": { + "name": "project_files", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "navigable": { + "name": "navigable", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "private": { + "name": "private", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "project_files_path_unique": { + "name": "project_files_path_unique", + "columns": [ + "path" + ], + "isUnique": true + } + }, + "foreignKeys": { + "project_files_owner_users_id_fk": { + "name": "project_files_owner_users_id_fk", + "tableFrom": "project_files", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_permissions": { + "name": "user_permissions", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_permissions_id_users_id_fk": { + "name": "user_permissions_id_users_id_fk", + "tableFrom": "user_permissions", + "tableTo": "users", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "user_permissions_id_permission_pk": { + "columns": [ + "id", + "permission" + ], + "name": "user_permissions_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_sessions": { + "name": "user_sessions", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_sessions_user_id_users_id_fk": { + "name": "user_sessions_user_id_users_id_fk", + "tableFrom": "user_sessions", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "user_sessions_id_user_id_pk": { + "columns": [ + "id", + "user_id" + ], + "name": "user_sessions_id_user_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users_data": { + "name": "users_data", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "signin": { + "name": "signin", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "lastTimestamp": { + "name": "lastTimestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "users_data_id_users_id_fk": { + "name": "users_data_id_users_id_fk", + "tableFrom": "users_data", + "tableTo": "users", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users": { + "name": "users", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "hash": { + "name": "hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "state": { + "name": "state", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": { + "users_username_unique": { + "name": "users_username_unique", + "columns": [ + "username" + ], + "isUnique": true + }, + "users_email_unique": { + "name": "users_email_unique", + "columns": [ + "email" + ], + "isUnique": true + }, + "users_hash_unique": { + "name": "users_hash_unique", + "columns": [ + "hash" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/0022_snapshot.json b/drizzle/meta/0022_snapshot.json new file mode 100644 index 0000000..7136b67 --- /dev/null +++ b/drizzle/meta/0022_snapshot.json @@ -0,0 +1,998 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "98e63b73-701b-4ae1-8472-2ee706e064ff", + "prevId": "1b8ca1cb-ac1d-481e-a8d9-6d3fdffd7e3e", + "tables": { + "campaign_characters": { + "name": "campaign_characters", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_characters_id_campaign_id_fk": { + "name": "campaign_characters_id_campaign_id_fk", + "tableFrom": "campaign_characters", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_characters_character_character_id_fk": { + "name": "campaign_characters_character_character_id_fk", + "tableFrom": "campaign_characters", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_characters_id_character_pk": { + "columns": [ + "id", + "character" + ], + "name": "campaign_characters_id_character_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign_logs": { + "name": "campaign_logs", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "from": { + "name": "from", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "details": { + "name": "details", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_logs_id_campaign_id_fk": { + "name": "campaign_logs_id_campaign_id_fk", + "tableFrom": "campaign_logs", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_logs_from_campaign_characters_character_fk": { + "name": "campaign_logs_from_campaign_characters_character_fk", + "tableFrom": "campaign_logs", + "tableTo": "campaign_characters", + "columnsFrom": [ + "from" + ], + "columnsTo": [ + "character" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_logs_id_from_timestamp_pk": { + "columns": [ + "id", + "from", + "timestamp" + ], + "name": "campaign_logs_id_from_timestamp_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign_members": { + "name": "campaign_members", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "user": { + "name": "user", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "rights": { + "name": "rights", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_members_id_campaign_id_fk": { + "name": "campaign_members_id_campaign_id_fk", + "tableFrom": "campaign_members", + "tableTo": "campaign", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "campaign_members_user_users_id_fk": { + "name": "campaign_members_user_users_id_fk", + "tableFrom": "campaign_members", + "tableTo": "users", + "columnsFrom": [ + "user" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "campaign_members_id_user_pk": { + "columns": [ + "id", + "user" + ], + "name": "campaign_members_id_user_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "campaign": { + "name": "campaign", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "link": { + "name": "link", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "status": { + "name": "status", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "'PREPARING'" + }, + "inventory": { + "name": "inventory", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "'[]'" + }, + "money": { + "name": "money", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "campaign_owner_users_id_fk": { + "name": "campaign_owner_users_id_fk", + "tableFrom": "campaign", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_abilities": { + "name": "character_abilities", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "ability": { + "name": "ability", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + }, + "max": { + "name": "max", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "character_abilities_character_character_id_fk": { + "name": "character_abilities_character_character_id_fk", + "tableFrom": "character_abilities", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_abilities_character_ability_pk": { + "columns": [ + "character", + "ability" + ], + "name": "character_abilities_character_ability_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_choices": { + "name": "character_choices", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "id": { + "name": "id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_choices_character_character_id_fk": { + "name": "character_choices_character_character_id_fk", + "tableFrom": "character_choices", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_choices_character_id_choice_pk": { + "columns": [ + "character", + "id", + "choice" + ], + "name": "character_choices_character_id_choice_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_leveling": { + "name": "character_leveling", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_leveling_character_character_id_fk": { + "name": "character_leveling_character_character_id_fk", + "tableFrom": "character_leveling", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_leveling_character_level_pk": { + "columns": [ + "character", + "level" + ], + "name": "character_leveling_character_level_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character": { + "name": "character", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "people": { + "name": "people", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 1 + }, + "variables": { + "name": "variables", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'{\"health\": 0,\"mana\": 0,\"spells\": [],\"items\": [],\"exhaustion\": 0,\"sickness\": [],\"poisons\": []}'" + }, + "aspect": { + "name": "aspect", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "public_notes": { + "name": "public_notes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "private_notes": { + "name": "private_notes", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "visibility": { + "name": "visibility", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "'private'" + }, + "thumbnail": { + "name": "thumbnail", + "type": "blob", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_owner_users_id_fk": { + "name": "character_owner_users_id_fk", + "tableFrom": "character", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "character_training": { + "name": "character_training", + "columns": { + "character": { + "name": "character", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "stat": { + "name": "stat", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "level": { + "name": "level", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "choice": { + "name": "choice", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "character_training_character_character_id_fk": { + "name": "character_training_character_character_id_fk", + "tableFrom": "character_training", + "tableTo": "character", + "columnsFrom": [ + "character" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "character_training_character_stat_level_pk": { + "columns": [ + "character", + "stat", + "level" + ], + "name": "character_training_character_stat_level_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "email_validation": { + "name": "email_validation", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "project_content": { + "name": "project_content", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "content": { + "name": "content", + "type": "blob", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "project_files": { + "name": "project_files", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "owner": { + "name": "owner", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "navigable": { + "name": "navigable", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": true + }, + "private": { + "name": "private", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "project_files_path_unique": { + "name": "project_files_path_unique", + "columns": [ + "path" + ], + "isUnique": true + } + }, + "foreignKeys": { + "project_files_owner_users_id_fk": { + "name": "project_files_owner_users_id_fk", + "tableFrom": "project_files", + "tableTo": "users", + "columnsFrom": [ + "owner" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_permissions": { + "name": "user_permissions", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "permission": { + "name": "permission", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_permissions_id_users_id_fk": { + "name": "user_permissions_id_users_id_fk", + "tableFrom": "user_permissions", + "tableTo": "users", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "user_permissions_id_permission_pk": { + "columns": [ + "id", + "permission" + ], + "name": "user_permissions_id_permission_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user_sessions": { + "name": "user_sessions", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "timestamp": { + "name": "timestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_sessions_user_id_users_id_fk": { + "name": "user_sessions_user_id_users_id_fk", + "tableFrom": "user_sessions", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": { + "user_sessions_id_user_id_pk": { + "columns": [ + "id", + "user_id" + ], + "name": "user_sessions_id_user_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users_data": { + "name": "users_data", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "signin": { + "name": "signin", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "lastTimestamp": { + "name": "lastTimestamp", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "users_data_id_users_id_fk": { + "name": "users_data_id_users_id_fk", + "tableFrom": "users_data", + "tableTo": "users", + "columnsFrom": [ + "id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "users": { + "name": "users", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "hash": { + "name": "hash", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "state": { + "name": "state", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 + } + }, + "indexes": { + "users_username_unique": { + "name": "users_username_unique", + "columns": [ + "username" + ], + "isUnique": true + }, + "users_email_unique": { + "name": "users_email_unique", + "columns": [ + "email" + ], + "isUnique": true + }, + "users_hash_unique": { + "name": "users_hash_unique", + "columns": [ + "hash" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index a1f2286..7618071 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -134,6 +134,34 @@ "when": 1761829250157, "tag": "0018_friendly_deadpool", "breakpoints": true + }, + { + "idx": 19, + "version": "6", + "when": 1762260955744, + "tag": "0019_flaky_steel_serpent", + "breakpoints": true + }, + { + "idx": 20, + "version": "6", + "when": 1762261125335, + "tag": "0020_daily_echo", + "breakpoints": true + }, + { + "idx": 21, + "version": "6", + "when": 1762947637242, + "tag": "0021_familiar_dagger", + "breakpoints": true + }, + { + "idx": 22, + "version": "6", + "when": 1762948869537, + "tag": "0022_warm_bushwacker", + "breakpoints": true } ] } \ No newline at end of file diff --git a/nuxt.config.ts b/nuxt.config.ts index eb74bd3..87c6b51 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -130,6 +130,7 @@ export default defineNuxtConfig({ preset: 'bun', experimental: { tasks: true, + websocket: true, }, watchOptions: { usePolling: true, diff --git a/pages/campaign/(automatic)/join.client.vue b/pages/campaign/(automatic)/join.client.vue deleted file mode 100644 index e69de29..0000000 diff --git a/pages/campaign/[id]/edit.client.vue b/pages/campaign/[id]/edit.client.vue index 41a40c8..27e0f69 100644 --- a/pages/campaign/[id]/edit.client.vue +++ b/pages/campaign/[id]/edit.client.vue @@ -1 +1,3 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/pages/campaign/[id]/index.client.vue b/pages/campaign/[id]/index.client.vue index 41a40c8..123ca13 100644 --- a/pages/campaign/[id]/index.client.vue +++ b/pages/campaign/[id]/index.client.vue @@ -1 +1,79 @@ - \ No newline at end of file + + + \ No newline at end of file diff --git a/pages/campaign/index.client.vue b/pages/campaign/index.client.vue index 30ab567..7cd36cd 100644 --- a/pages/campaign/index.client.vue +++ b/pages/campaign/index.client.vue @@ -1,68 +1,166 @@