From b28aae201a10b717b2e219ccfc7671115d2b602a Mon Sep 17 00:00:00 2001 From: Thanu Poptiphueng Date: Sat, 8 Jun 2024 09:44:53 +0700 Subject: [PATCH] update db schema + populate allUser --- .gitignore | 1 + addMetadata.ts | 123 ++++- ...bula.sql => 0000_tired_impossible_man.sql} | 31 +- drizzle/0001_chilly_bullseye.sql | 10 - drizzle/0002_gigantic_sentry.sql | 1 - drizzle/0003_overconfident_spencer_smythe.sql | 1 - drizzle/0004_icy_blockbuster.sql | 1 - drizzle/meta/0000_snapshot.json | 183 +++++-- drizzle/meta/0001_snapshot.json | 484 ----------------- drizzle/meta/0002_snapshot.json | 492 ----------------- drizzle/meta/0003_snapshot.json | 499 ----------------- drizzle/meta/0004_snapshot.json | 507 ------------------ drizzle/meta/_journal.json | 32 +- src/schema.ts | 28 +- src/userRoute.ts | 1 + tsconfig.json | 2 +- 16 files changed, 309 insertions(+), 2087 deletions(-) rename drizzle/{0000_right_nebula.sql => 0000_tired_impossible_man.sql} (72%) delete mode 100644 drizzle/0001_chilly_bullseye.sql delete mode 100644 drizzle/0002_gigantic_sentry.sql delete mode 100644 drizzle/0003_overconfident_spencer_smythe.sql delete mode 100644 drizzle/0004_icy_blockbuster.sql delete mode 100644 drizzle/meta/0001_snapshot.json delete mode 100644 drizzle/meta/0002_snapshot.json delete mode 100644 drizzle/meta/0003_snapshot.json delete mode 100644 drizzle/meta/0004_snapshot.json diff --git a/.gitignore b/.gitignore index dff09c3..a42be1a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ caddy/logs .next sqlite.db-shm sqlite.db-wal +user.json diff --git a/addMetadata.ts b/addMetadata.ts index 9879bcf..a4a97f3 100644 --- a/addMetadata.ts +++ b/addMetadata.ts @@ -1,8 +1,18 @@ import { db } from "./src/db"; -import { group, opinion, zone, province } from "./src/schema"; +import { + group, + opinion, + zone, + province, + user, + userToSelection, +} from "./src/schema"; import { Groups, Opinions, Provinces, Districts } from "./initialData"; import { createBucket, createClient } from "./src/minio"; import { Config } from "./src/config"; +import ud from "./user.json"; + +const user_data: UserData[] = ud; async function main() { try { @@ -35,9 +45,120 @@ async function main() { province: district.province_code, })); await db.insert(zone).values(zoneValues); + await create_user(); + await create_relation(); + + console.log("a"); + const allUser = await db.query.user.findMany({ + with: { + userToSelection: { with: { selection: true } }, + }, + }); + console.log("b"); + for (const u of allUser) { + console.log( + u.firstName, + u.lastName, + u.userToSelection.map( + (t) => `${t.selection?.firstName} ${t.selection?.lastName}`, + ), + ); + } console.log("Done"); } +type UserData = { + first_name: string; + last_name: string; + job_code: number; + selection: string[]; + province: string; + district: string; + rank: number; +}; + +async function create_user() { + const provinces = await db.query.province.findMany({}); + const district = await db.query.zone.findMany({}); + for (const newUser of user_data) { + const thisProvince = provinces.find((p) => p.name == newUser.province); + const thisDistrict = district.find((p) => p.name == newUser.district); + let isSelectionFound = true; + for (const selection of newUser.selection) { + const isFound = user_data.findIndex( + (p) => + `${p.first_name} ${p.last_name}` == selection && + p.district == newUser.district, + ); + if (isFound == -1) { + isSelectionFound = false; + } + } + if ( + thisProvince === undefined || + thisDistrict === undefined || + !isSelectionFound + ) { + console.log( + newUser.province, + newUser.district, + thisDistrict, + thisProvince, + isSelectionFound, + ); + } else { + await db.insert(user).values({ + group: newUser.job_code, + firstName: newUser.first_name, + lastName: newUser.last_name, + title: "", + cid: "0000000000000", + phone: "0000000000", + age: 0, + job: "", + education: "", + zone: thisDistrict.id, + }); + } + } +} + +async function create_relation() { + const allUser = await db.query.user.findMany({ + with: { + zone: { with: { province: true } }, + }, + }); + for (const u of allUser) { + let thisUsers = user_data.filter( + (raw) => + raw.first_name == u.firstName && + raw.last_name == u.lastName && + raw.district == u.zone.name && + raw.province == u.zone.province.name, + ); + if (thisUsers.length !== 1) { + console.log("duplicated users", thisUsers); + return; + } + const rawUser = thisUsers[0]; + const selections = allUser.filter( + (target) => + rawUser.selection.includes(`${target.firstName} ${target.lastName}`) && + target.zone.id == u.zone.id, + ); + if (selections.length == 0) { + console.log("selection not found", selections); + return; + } + for (const selection of selections) { + await db + .insert(userToSelection) + .values({ userId: u.id, targetId: selection.id }); + } + } +} + async function setupBucket() { const BucketPolicy = { Version: "2012-10-17", diff --git a/drizzle/0000_right_nebula.sql b/drizzle/0000_tired_impossible_man.sql similarity index 72% rename from drizzle/0000_right_nebula.sql rename to drizzle/0000_tired_impossible_man.sql index 1cbc167..1b0e31c 100644 --- a/drizzle/0000_right_nebula.sql +++ b/drizzle/0000_tired_impossible_man.sql @@ -3,16 +3,17 @@ CREATE TABLE `groups` ( `name` text NOT NULL ); --> statement-breakpoint +CREATE TABLE `image_to_user` ( + `user_id` integer PRIMARY KEY NOT NULL, + `image_name` text NOT NULL, + `created_on` integer DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint CREATE TABLE `opinions` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `name` text NOT NULL, - `type` text DEFAULT '3Choice' NOT NULL -); ---> statement-breakpoint -CREATE TABLE `phone_tokens` ( - `phone` text PRIMARY KEY NOT NULL, - `token` text NOT NULL, - `created_on` integer DEFAULT CURRENT_TIMESTAMP + `type` text DEFAULT '5Choice' NOT NULL ); --> statement-breakpoint CREATE TABLE `provinces` ( @@ -24,6 +25,7 @@ CREATE TABLE `users` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `firstName` text NOT NULL, `lastName` text NOT NULL, + `registerno` text, `title` text NOT NULL, `cid` text(13) NOT NULL, `age` integer NOT NULL, @@ -33,6 +35,7 @@ CREATE TABLE `users` ( `twitter` text, `tiktok` text, `other_social` text, + `image` text, `email` text, `job` text NOT NULL, `education` text NOT NULL, @@ -40,6 +43,7 @@ CREATE TABLE `users` ( `reason` text, `group_id` integer NOT NULL, `zone_id` integer NOT NULL, + `verified` integer DEFAULT false NOT NULL, FOREIGN KEY (`group_id`) REFERENCES `groups`(`id`) ON UPDATE no action ON DELETE no action, FOREIGN KEY (`zone_id`) REFERENCES `zones`(`id`) ON UPDATE no action ON DELETE no action ); @@ -47,23 +51,30 @@ CREATE TABLE `users` ( CREATE TABLE `user_opinions` ( `user_id` integer NOT NULL, `opinion_id` integer NOT NULL, - `choice` text DEFAULT 'deciding', + `choice` text DEFAULT 'ignore', PRIMARY KEY(`opinion_id`, `user_id`), FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action, FOREIGN KEY (`opinion_id`) REFERENCES `opinions`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint +CREATE TABLE `user_to_selection` ( + `user_id` integer, + `target_id` integer, + FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE cascade, + FOREIGN KEY (`target_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint CREATE TABLE `zones` ( `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `name` text NOT NULL, `province_id` integer NOT NULL, + `total` integer DEFAULT 0 NOT NULL, FOREIGN KEY (`province_id`) REFERENCES `provinces`(`id`) ON UPDATE no action ON DELETE no action ); --> statement-breakpoint CREATE UNIQUE INDEX `groups_name_unique` ON `groups` (`name`);--> statement-breakpoint CREATE UNIQUE INDEX `opinions_name_unique` ON `opinions` (`name`);--> statement-breakpoint CREATE UNIQUE INDEX `provinces_name_unique` ON `provinces` (`name`);--> statement-breakpoint -CREATE UNIQUE INDEX `users_cid_unique` ON `users` (`cid`);--> statement-breakpoint -CREATE UNIQUE INDEX `users_phone_unique` ON `users` (`phone`);--> statement-breakpoint CREATE INDEX `phone_idx` ON `users` (`phone`);--> statement-breakpoint +CREATE INDEX `image_idx` ON `users` (`image`);--> statement-breakpoint CREATE UNIQUE INDEX `zones_name_province_id_unique` ON `zones` (`name`,`province_id`); \ No newline at end of file diff --git a/drizzle/0001_chilly_bullseye.sql b/drizzle/0001_chilly_bullseye.sql deleted file mode 100644 index 9dbb8cc..0000000 --- a/drizzle/0001_chilly_bullseye.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE TABLE `image_to_user` ( - `user_id` integer PRIMARY KEY NOT NULL, - `image_name` text NOT NULL, - `created_on` integer DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action -); ---> statement-breakpoint -DROP TABLE `phone_tokens`;--> statement-breakpoint -ALTER TABLE users ADD `image` text;--> statement-breakpoint -CREATE INDEX `image_idx` ON `users` (`image`); \ No newline at end of file diff --git a/drizzle/0002_gigantic_sentry.sql b/drizzle/0002_gigantic_sentry.sql deleted file mode 100644 index 35db1ef..0000000 --- a/drizzle/0002_gigantic_sentry.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE users ADD `verified` integer DEFAULT false NOT NULL; diff --git a/drizzle/0003_overconfident_spencer_smythe.sql b/drizzle/0003_overconfident_spencer_smythe.sql deleted file mode 100644 index 94cb6cf..0000000 --- a/drizzle/0003_overconfident_spencer_smythe.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE users ADD `registerno` text; \ No newline at end of file diff --git a/drizzle/0004_icy_blockbuster.sql b/drizzle/0004_icy_blockbuster.sql deleted file mode 100644 index ef98cfb..0000000 --- a/drizzle/0004_icy_blockbuster.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE zones ADD `total` integer DEFAULT 0 NOT NULL; \ No newline at end of file diff --git a/drizzle/meta/0000_snapshot.json b/drizzle/meta/0000_snapshot.json index 79e7efe..dfcc0c9 100644 --- a/drizzle/meta/0000_snapshot.json +++ b/drizzle/meta/0000_snapshot.json @@ -1,7 +1,7 @@ { "version": "5", "dialect": "sqlite", - "id": "58f80520-7300-4bc4-943d-87568666e42d", + "id": "b46f7266-bc92-4a23-b12d-d162624db70a", "prevId": "00000000-0000-0000-0000-000000000000", "tables": { "groups": { @@ -35,6 +35,51 @@ "compositePrimaryKeys": {}, "uniqueConstraints": {} }, + "image_to_user": { + "name": "image_to_user", + "columns": { + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "image_name": { + "name": "image_name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_on": { + "name": "created_on", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + } + }, + "indexes": {}, + "foreignKeys": { + "image_to_user_user_id_users_id_fk": { + "name": "image_to_user_user_id_users_id_fk", + "tableFrom": "image_to_user", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, "opinions": { "name": "opinions", "columns": { @@ -58,7 +103,7 @@ "primaryKey": false, "notNull": true, "autoincrement": false, - "default": "'3Choice'" + "default": "'5Choice'" } }, "indexes": { @@ -74,37 +119,6 @@ "compositePrimaryKeys": {}, "uniqueConstraints": {} }, - "phone_tokens": { - "name": "phone_tokens", - "columns": { - "phone": { - "name": "phone", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_on": { - "name": "created_on", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, "provinces": { "name": "provinces", "columns": { @@ -160,6 +174,13 @@ "notNull": true, "autoincrement": false }, + "registerno": { + "name": "registerno", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, "title": { "name": "title", "type": "text", @@ -223,6 +244,13 @@ "notNull": false, "autoincrement": false }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, "email": { "name": "email", "type": "text", @@ -271,29 +299,30 @@ "primaryKey": false, "notNull": true, "autoincrement": false + }, + "verified": { + "name": "verified", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": false } }, "indexes": { - "users_cid_unique": { - "name": "users_cid_unique", - "columns": [ - "cid" - ], - "isUnique": true - }, - "users_phone_unique": { - "name": "users_phone_unique", - "columns": [ - "phone" - ], - "isUnique": true - }, "phone_idx": { "name": "phone_idx", "columns": [ "phone" ], "isUnique": false + }, + "image_idx": { + "name": "image_idx", + "columns": [ + "image" + ], + "isUnique": false } }, "foreignKeys": { @@ -350,7 +379,7 @@ "primaryKey": false, "notNull": false, "autoincrement": false, - "default": "'deciding'" + "default": "'ignore'" } }, "indexes": {}, @@ -393,6 +422,56 @@ }, "uniqueConstraints": {} }, + "user_to_selection": { + "name": "user_to_selection", + "columns": { + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "target_id": { + "name": "target_id", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "user_to_selection_user_id_users_id_fk": { + "name": "user_to_selection_user_id_users_id_fk", + "tableFrom": "user_to_selection", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "user_to_selection_target_id_users_id_fk": { + "name": "user_to_selection_target_id_users_id_fk", + "tableFrom": "user_to_selection", + "tableTo": "users", + "columnsFrom": [ + "target_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, "zones": { "name": "zones", "columns": { @@ -416,6 +495,14 @@ "primaryKey": false, "notNull": true, "autoincrement": false + }, + "total": { + "name": "total", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": 0 } }, "indexes": { diff --git a/drizzle/meta/0001_snapshot.json b/drizzle/meta/0001_snapshot.json deleted file mode 100644 index f7eab48..0000000 --- a/drizzle/meta/0001_snapshot.json +++ /dev/null @@ -1,484 +0,0 @@ -{ - "version": "5", - "dialect": "sqlite", - "id": "2cf2acb7-cc98-4f28-8ead-5916b87b7683", - "prevId": "58f80520-7300-4bc4-943d-87568666e42d", - "tables": { - "groups": { - "name": "groups", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "groups_name_unique": { - "name": "groups_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "image_to_user": { - "name": "image_to_user", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "image_name": { - "name": "image_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_on": { - "name": "created_on", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": { - "image_to_user_user_id_users_id_fk": { - "name": "image_to_user_user_id_users_id_fk", - "tableFrom": "image_to_user", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "opinions": { - "name": "opinions", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'3Choice'" - } - }, - "indexes": { - "opinions_name_unique": { - "name": "opinions_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "provinces": { - "name": "provinces", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "provinces_name_unique": { - "name": "provinces_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "firstName": { - "name": "firstName", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "lastName": { - "name": "lastName", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "cid": { - "name": "cid", - "type": "text(13)", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "age": { - "name": "age", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "phone": { - "name": "phone", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "public_phone": { - "name": "public_phone", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "facebook": { - "name": "facebook", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "twitter": { - "name": "twitter", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tiktok": { - "name": "tiktok", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "other_social": { - "name": "other_social", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "job": { - "name": "job", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "education": { - "name": "education", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "vision": { - "name": "vision", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "reason": { - "name": "reason", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "group_id": { - "name": "group_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "zone_id": { - "name": "zone_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "users_cid_unique": { - "name": "users_cid_unique", - "columns": [ - "cid" - ], - "isUnique": true - }, - "users_phone_unique": { - "name": "users_phone_unique", - "columns": [ - "phone" - ], - "isUnique": true - }, - "phone_idx": { - "name": "phone_idx", - "columns": [ - "phone" - ], - "isUnique": false - }, - "image_idx": { - "name": "image_idx", - "columns": [ - "image" - ], - "isUnique": false - } - }, - "foreignKeys": { - "users_group_id_groups_id_fk": { - "name": "users_group_id_groups_id_fk", - "tableFrom": "users", - "tableTo": "groups", - "columnsFrom": [ - "group_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "users_zone_id_zones_id_fk": { - "name": "users_zone_id_zones_id_fk", - "tableFrom": "users", - "tableTo": "zones", - "columnsFrom": [ - "zone_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_opinions": { - "name": "user_opinions", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "opinion_id": { - "name": "opinion_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "choice": { - "name": "choice", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'deciding'" - } - }, - "indexes": {}, - "foreignKeys": { - "user_opinions_user_id_users_id_fk": { - "name": "user_opinions_user_id_users_id_fk", - "tableFrom": "user_opinions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "user_opinions_opinion_id_opinions_id_fk": { - "name": "user_opinions_opinion_id_opinions_id_fk", - "tableFrom": "user_opinions", - "tableTo": "opinions", - "columnsFrom": [ - "opinion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "user_opinions_user_id_opinion_id_pk": { - "columns": [ - "opinion_id", - "user_id" - ], - "name": "user_opinions_user_id_opinion_id_pk" - } - }, - "uniqueConstraints": {} - }, - "zones": { - "name": "zones", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "province_id": { - "name": "province_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "zones_name_province_id_unique": { - "name": "zones_name_province_id_unique", - "columns": [ - "name", - "province_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "zones_province_id_provinces_id_fk": { - "name": "zones_province_id_provinces_id_fk", - "tableFrom": "zones", - "tableTo": "provinces", - "columnsFrom": [ - "province_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/0002_snapshot.json b/drizzle/meta/0002_snapshot.json deleted file mode 100644 index bd08158..0000000 --- a/drizzle/meta/0002_snapshot.json +++ /dev/null @@ -1,492 +0,0 @@ -{ - "version": "5", - "dialect": "sqlite", - "id": "cb28043a-c451-41dc-a5cc-14a1a74c756d", - "prevId": "2cf2acb7-cc98-4f28-8ead-5916b87b7683", - "tables": { - "groups": { - "name": "groups", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "groups_name_unique": { - "name": "groups_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "image_to_user": { - "name": "image_to_user", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "image_name": { - "name": "image_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_on": { - "name": "created_on", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": { - "image_to_user_user_id_users_id_fk": { - "name": "image_to_user_user_id_users_id_fk", - "tableFrom": "image_to_user", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "opinions": { - "name": "opinions", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'5Choice'" - } - }, - "indexes": { - "opinions_name_unique": { - "name": "opinions_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "provinces": { - "name": "provinces", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "provinces_name_unique": { - "name": "provinces_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "firstName": { - "name": "firstName", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "lastName": { - "name": "lastName", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "cid": { - "name": "cid", - "type": "text(13)", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "age": { - "name": "age", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "phone": { - "name": "phone", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "public_phone": { - "name": "public_phone", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "facebook": { - "name": "facebook", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "twitter": { - "name": "twitter", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tiktok": { - "name": "tiktok", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "other_social": { - "name": "other_social", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "job": { - "name": "job", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "education": { - "name": "education", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "vision": { - "name": "vision", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "reason": { - "name": "reason", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "group_id": { - "name": "group_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "zone_id": { - "name": "zone_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "verified": { - "name": "verified", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - } - }, - "indexes": { - "users_cid_unique": { - "name": "users_cid_unique", - "columns": [ - "cid" - ], - "isUnique": true - }, - "users_phone_unique": { - "name": "users_phone_unique", - "columns": [ - "phone" - ], - "isUnique": true - }, - "phone_idx": { - "name": "phone_idx", - "columns": [ - "phone" - ], - "isUnique": false - }, - "image_idx": { - "name": "image_idx", - "columns": [ - "image" - ], - "isUnique": false - } - }, - "foreignKeys": { - "users_group_id_groups_id_fk": { - "name": "users_group_id_groups_id_fk", - "tableFrom": "users", - "tableTo": "groups", - "columnsFrom": [ - "group_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "users_zone_id_zones_id_fk": { - "name": "users_zone_id_zones_id_fk", - "tableFrom": "users", - "tableTo": "zones", - "columnsFrom": [ - "zone_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_opinions": { - "name": "user_opinions", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "opinion_id": { - "name": "opinion_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "choice": { - "name": "choice", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'ignore'" - } - }, - "indexes": {}, - "foreignKeys": { - "user_opinions_user_id_users_id_fk": { - "name": "user_opinions_user_id_users_id_fk", - "tableFrom": "user_opinions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "user_opinions_opinion_id_opinions_id_fk": { - "name": "user_opinions_opinion_id_opinions_id_fk", - "tableFrom": "user_opinions", - "tableTo": "opinions", - "columnsFrom": [ - "opinion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "user_opinions_user_id_opinion_id_pk": { - "columns": [ - "opinion_id", - "user_id" - ], - "name": "user_opinions_user_id_opinion_id_pk" - } - }, - "uniqueConstraints": {} - }, - "zones": { - "name": "zones", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "province_id": { - "name": "province_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "zones_name_province_id_unique": { - "name": "zones_name_province_id_unique", - "columns": [ - "name", - "province_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "zones_province_id_provinces_id_fk": { - "name": "zones_province_id_provinces_id_fk", - "tableFrom": "zones", - "tableTo": "provinces", - "columnsFrom": [ - "province_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/0003_snapshot.json b/drizzle/meta/0003_snapshot.json deleted file mode 100644 index 6678a6b..0000000 --- a/drizzle/meta/0003_snapshot.json +++ /dev/null @@ -1,499 +0,0 @@ -{ - "version": "5", - "dialect": "sqlite", - "id": "e867b430-8022-40ca-9151-eab2690479e1", - "prevId": "cb28043a-c451-41dc-a5cc-14a1a74c756d", - "tables": { - "groups": { - "name": "groups", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "groups_name_unique": { - "name": "groups_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "image_to_user": { - "name": "image_to_user", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "image_name": { - "name": "image_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_on": { - "name": "created_on", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": { - "image_to_user_user_id_users_id_fk": { - "name": "image_to_user_user_id_users_id_fk", - "tableFrom": "image_to_user", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "opinions": { - "name": "opinions", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'5Choice'" - } - }, - "indexes": { - "opinions_name_unique": { - "name": "opinions_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "provinces": { - "name": "provinces", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "provinces_name_unique": { - "name": "provinces_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "firstName": { - "name": "firstName", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "lastName": { - "name": "lastName", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "registerno": { - "name": "registerno", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "cid": { - "name": "cid", - "type": "text(13)", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "age": { - "name": "age", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "phone": { - "name": "phone", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "public_phone": { - "name": "public_phone", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "facebook": { - "name": "facebook", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "twitter": { - "name": "twitter", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tiktok": { - "name": "tiktok", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "other_social": { - "name": "other_social", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "job": { - "name": "job", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "education": { - "name": "education", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "vision": { - "name": "vision", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "reason": { - "name": "reason", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "group_id": { - "name": "group_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "zone_id": { - "name": "zone_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "verified": { - "name": "verified", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - } - }, - "indexes": { - "users_cid_unique": { - "name": "users_cid_unique", - "columns": [ - "cid" - ], - "isUnique": true - }, - "users_phone_unique": { - "name": "users_phone_unique", - "columns": [ - "phone" - ], - "isUnique": true - }, - "phone_idx": { - "name": "phone_idx", - "columns": [ - "phone" - ], - "isUnique": false - }, - "image_idx": { - "name": "image_idx", - "columns": [ - "image" - ], - "isUnique": false - } - }, - "foreignKeys": { - "users_group_id_groups_id_fk": { - "name": "users_group_id_groups_id_fk", - "tableFrom": "users", - "tableTo": "groups", - "columnsFrom": [ - "group_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "users_zone_id_zones_id_fk": { - "name": "users_zone_id_zones_id_fk", - "tableFrom": "users", - "tableTo": "zones", - "columnsFrom": [ - "zone_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_opinions": { - "name": "user_opinions", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "opinion_id": { - "name": "opinion_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "choice": { - "name": "choice", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'ignore'" - } - }, - "indexes": {}, - "foreignKeys": { - "user_opinions_user_id_users_id_fk": { - "name": "user_opinions_user_id_users_id_fk", - "tableFrom": "user_opinions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "user_opinions_opinion_id_opinions_id_fk": { - "name": "user_opinions_opinion_id_opinions_id_fk", - "tableFrom": "user_opinions", - "tableTo": "opinions", - "columnsFrom": [ - "opinion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "user_opinions_user_id_opinion_id_pk": { - "columns": [ - "opinion_id", - "user_id" - ], - "name": "user_opinions_user_id_opinion_id_pk" - } - }, - "uniqueConstraints": {} - }, - "zones": { - "name": "zones", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "province_id": { - "name": "province_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "zones_name_province_id_unique": { - "name": "zones_name_province_id_unique", - "columns": [ - "name", - "province_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "zones_province_id_provinces_id_fk": { - "name": "zones_province_id_provinces_id_fk", - "tableFrom": "zones", - "tableTo": "provinces", - "columnsFrom": [ - "province_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/0004_snapshot.json b/drizzle/meta/0004_snapshot.json deleted file mode 100644 index 8f10255..0000000 --- a/drizzle/meta/0004_snapshot.json +++ /dev/null @@ -1,507 +0,0 @@ -{ - "version": "5", - "dialect": "sqlite", - "id": "186f6e92-2b24-4aa0-8a01-68534b1997a3", - "prevId": "e867b430-8022-40ca-9151-eab2690479e1", - "tables": { - "groups": { - "name": "groups", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "groups_name_unique": { - "name": "groups_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "image_to_user": { - "name": "image_to_user", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "image_name": { - "name": "image_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_on": { - "name": "created_on", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "CURRENT_TIMESTAMP" - } - }, - "indexes": {}, - "foreignKeys": { - "image_to_user_user_id_users_id_fk": { - "name": "image_to_user_user_id_users_id_fk", - "tableFrom": "image_to_user", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "opinions": { - "name": "opinions", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'5Choice'" - } - }, - "indexes": { - "opinions_name_unique": { - "name": "opinions_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "provinces": { - "name": "provinces", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "provinces_name_unique": { - "name": "provinces_name_unique", - "columns": [ - "name" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "users": { - "name": "users", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "firstName": { - "name": "firstName", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "lastName": { - "name": "lastName", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "registerno": { - "name": "registerno", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "cid": { - "name": "cid", - "type": "text(13)", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "age": { - "name": "age", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "phone": { - "name": "phone", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "public_phone": { - "name": "public_phone", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "facebook": { - "name": "facebook", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "twitter": { - "name": "twitter", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tiktok": { - "name": "tiktok", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "other_social": { - "name": "other_social", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "job": { - "name": "job", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "education": { - "name": "education", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "vision": { - "name": "vision", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "reason": { - "name": "reason", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "group_id": { - "name": "group_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "zone_id": { - "name": "zone_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "verified": { - "name": "verified", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - } - }, - "indexes": { - "users_cid_unique": { - "name": "users_cid_unique", - "columns": [ - "cid" - ], - "isUnique": true - }, - "users_phone_unique": { - "name": "users_phone_unique", - "columns": [ - "phone" - ], - "isUnique": true - }, - "phone_idx": { - "name": "phone_idx", - "columns": [ - "phone" - ], - "isUnique": false - }, - "image_idx": { - "name": "image_idx", - "columns": [ - "image" - ], - "isUnique": false - } - }, - "foreignKeys": { - "users_group_id_groups_id_fk": { - "name": "users_group_id_groups_id_fk", - "tableFrom": "users", - "tableTo": "groups", - "columnsFrom": [ - "group_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "users_zone_id_zones_id_fk": { - "name": "users_zone_id_zones_id_fk", - "tableFrom": "users", - "tableTo": "zones", - "columnsFrom": [ - "zone_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "user_opinions": { - "name": "user_opinions", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "opinion_id": { - "name": "opinion_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "choice": { - "name": "choice", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'ignore'" - } - }, - "indexes": {}, - "foreignKeys": { - "user_opinions_user_id_users_id_fk": { - "name": "user_opinions_user_id_users_id_fk", - "tableFrom": "user_opinions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "user_opinions_opinion_id_opinions_id_fk": { - "name": "user_opinions_opinion_id_opinions_id_fk", - "tableFrom": "user_opinions", - "tableTo": "opinions", - "columnsFrom": [ - "opinion_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "user_opinions_user_id_opinion_id_pk": { - "columns": [ - "opinion_id", - "user_id" - ], - "name": "user_opinions_user_id_opinion_id_pk" - } - }, - "uniqueConstraints": {} - }, - "zones": { - "name": "zones", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "province_id": { - "name": "province_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "total": { - "name": "total", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": 0 - } - }, - "indexes": { - "zones_name_province_id_unique": { - "name": "zones_name_province_id_unique", - "columns": [ - "name", - "province_id" - ], - "isUnique": true - } - }, - "foreignKeys": { - "zones_province_id_provinces_id_fk": { - "name": "zones_province_id_provinces_id_fk", - "tableFrom": "zones", - "tableTo": "provinces", - "columnsFrom": [ - "province_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 6c71b01..21899ce 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -5,36 +5,8 @@ { "idx": 0, "version": "5", - "when": 1713548458041, - "tag": "0000_right_nebula", - "breakpoints": true - }, - { - "idx": 1, - "version": "5", - "when": 1713599233997, - "tag": "0001_chilly_bullseye", - "breakpoints": true - }, - { - "idx": 2, - "version": "5", - "when": 1715319087385, - "tag": "0002_gigantic_sentry", - "breakpoints": true - }, - { - "idx": 3, - "version": "5", - "when": 1715935487997, - "tag": "0003_overconfident_spencer_smythe", - "breakpoints": true - }, - { - "idx": 4, - "version": "5", - "when": 1716192353702, - "tag": "0004_icy_blockbuster", + "when": 1717814164478, + "tag": "0000_tired_impossible_man", "breakpoints": true } ] diff --git a/src/schema.ts b/src/schema.ts index e3d790b..48a763b 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -17,9 +17,9 @@ export const user = sqliteTable( lastName: text("lastName").notNull(), registerno: text("registerno"), title: text("title").notNull(), - cid: text("cid", { length: 13 }).notNull().unique(), + cid: text("cid", { length: 13 }).notNull(), age: integer("age").notNull(), - phone: text("phone").unique().notNull(), + phone: text("phone").notNull(), public_phone: text("public_phone"), facebook: text("facebook"), twitter: text("twitter"), @@ -55,6 +55,7 @@ export const userRelation = relations(user, ({ many, one }) => ({ fields: [user.zone], references: [zone.id], }), + userToSelection: many(userToSelection, { relationName: "userRelation" }), })); //----------------Group @@ -149,3 +150,26 @@ export const imageToUser = sqliteTable("image_to_user", { sql`CURRENT_TIMESTAMP`, ), }); + +export const userToSelection = sqliteTable("user_to_selection", { + userId: integer("user_id").references(() => user.id, { onDelete: "cascade" }), + targetId: integer("target_id").references(() => user.id, { + onDelete: "cascade", + }), +}); + +export const userToSelectionRelation = relations( + userToSelection, + ({ one }) => ({ + user: one(user, { + fields: [userToSelection.userId], + references: [user.id], + relationName: "userRelation", + }), + selection: one(user, { + fields: [userToSelection.targetId], + references: [user.id], + relationName: "selectionRelation", + }), + }), +); diff --git a/src/userRoute.ts b/src/userRoute.ts index d2083db..248d375 100644 --- a/src/userRoute.ts +++ b/src/userRoute.ts @@ -146,6 +146,7 @@ async function getAllUser( group?: number, zoneId?: number, provinceId?: number, + userId?: number, ) { const zoneIds: number[] = await getZone(provinceId); if (provinceId && zoneIds.length === 0) { diff --git a/tsconfig.json b/tsconfig.json index 16a0ffd..0d4b34a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -37,7 +37,7 @@ // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ + // "resolveJsonModule": true /* Enable importing .json files. */, // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */