diff --git a/.gitignore b/.gitignore index 3deec0c..1c1d1a1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ .github -review.js -.env -node_modules +review.js \ No newline at end of file diff --git a/website/drizzle/0001_heavy_leo.sql b/website/drizzle/0001_heavy_leo.sql deleted file mode 100644 index 52b4b22..0000000 --- a/website/drizzle/0001_heavy_leo.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE "notification" ADD COLUMN "link" text; \ No newline at end of file diff --git a/website/drizzle/0002_lonely_the_fallen.sql b/website/drizzle/0002_lonely_the_fallen.sql deleted file mode 100644 index 52a1d06..0000000 --- a/website/drizzle/0002_lonely_the_fallen.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE "coin" ADD COLUMN "trading_unlocks_at" timestamp;--> statement-breakpoint -ALTER TABLE "coin" ADD COLUMN "is_locked" boolean DEFAULT true NOT NULL; \ No newline at end of file diff --git a/website/drizzle/meta/0001_snapshot.json b/website/drizzle/meta/0001_snapshot.json deleted file mode 100644 index c173580..0000000 --- a/website/drizzle/meta/0001_snapshot.json +++ /dev/null @@ -1,2199 +0,0 @@ -{ - "id": "947dcf8e-040d-49d0-aba5-271be6750cc8", - "prevId": "08d1623b-7b2d-4777-8b7b-dbfa7884ecfe", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.account": { - "name": "account", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "account_id": { - "name": "account_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "provider_id": { - "name": "provider_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "access_token": { - "name": "access_token", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "refresh_token": { - "name": "refresh_token", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "id_token": { - "name": "id_token", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "access_token_expires_at": { - "name": "access_token_expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "refresh_token_expires_at": { - "name": "refresh_token_expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "scope": { - "name": "scope", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "account_user_id_user_id_fk": { - "name": "account_user_id_user_id_fk", - "tableFrom": "account", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.account_deletion_request": { - "name": "account_deletion_request", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "requested_at": { - "name": "requested_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "scheduled_deletion_at": { - "name": "scheduled_deletion_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "reason": { - "name": "reason", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "is_processed": { - "name": "is_processed", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - } - }, - "indexes": { - "account_deletion_request_user_id_idx": { - "name": "account_deletion_request_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "account_deletion_request_scheduled_deletion_idx": { - "name": "account_deletion_request_scheduled_deletion_idx", - "columns": [ - { - "expression": "scheduled_deletion_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "account_deletion_request_open_idx": { - "name": "account_deletion_request_open_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "where": "is_processed = false", - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "account_deletion_request_user_id_user_id_fk": { - "name": "account_deletion_request_user_id_user_id_fk", - "tableFrom": "account_deletion_request", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "account_deletion_request_user_id_unique": { - "name": "account_deletion_request_user_id_unique", - "nullsNotDistinct": false, - "columns": [ - "user_id" - ] - } - } - }, - "public.apikey": { - "name": "apikey", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "start": { - "name": "start", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "prefix": { - "name": "prefix", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "key": { - "name": "key", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "refill_interval": { - "name": "refill_interval", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "refill_amount": { - "name": "refill_amount", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "last_refill_at": { - "name": "last_refill_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false - }, - "rate_limit_enabled": { - "name": "rate_limit_enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false - }, - "rate_limit_time_window": { - "name": "rate_limit_time_window", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "rate_limit_max": { - "name": "rate_limit_max", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "request_count": { - "name": "request_count", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "remaining": { - "name": "remaining", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "last_request": { - "name": "last_request", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": true - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": true - }, - "permissions": { - "name": "permissions", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "metadata": { - "name": "metadata", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": { - "idx_apikey_user": { - "name": "idx_apikey_user", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "apikey_user_id_user_id_fk": { - "name": "apikey_user_id_user_id_fk", - "tableFrom": "apikey", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.coin": { - "name": "coin", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "symbol": { - "name": "symbol", - "type": "varchar(10)", - "primaryKey": false, - "notNull": true - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "creator_id": { - "name": "creator_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "initial_supply": { - "name": "initial_supply", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "circulating_supply": { - "name": "circulating_supply", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "current_price": { - "name": "current_price", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "market_cap": { - "name": "market_cap", - "type": "numeric(30, 2)", - "primaryKey": false, - "notNull": true - }, - "volume_24h": { - "name": "volume_24h", - "type": "numeric(30, 2)", - "primaryKey": false, - "notNull": false, - "default": "'0.00'" - }, - "change_24h": { - "name": "change_24h", - "type": "numeric(30, 4)", - "primaryKey": false, - "notNull": false, - "default": "'0.0000'" - }, - "pool_coin_amount": { - "name": "pool_coin_amount", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "pool_base_currency_amount": { - "name": "pool_base_currency_amount", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "is_listed": { - "name": "is_listed", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - } - }, - "indexes": { - "coin_symbol_idx": { - "name": "coin_symbol_idx", - "columns": [ - { - "expression": "symbol", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_creator_id_idx": { - "name": "coin_creator_id_idx", - "columns": [ - { - "expression": "creator_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_is_listed_idx": { - "name": "coin_is_listed_idx", - "columns": [ - { - "expression": "is_listed", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_market_cap_idx": { - "name": "coin_market_cap_idx", - "columns": [ - { - "expression": "market_cap", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_current_price_idx": { - "name": "coin_current_price_idx", - "columns": [ - { - "expression": "current_price", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_change24h_idx": { - "name": "coin_change24h_idx", - "columns": [ - { - "expression": "change_24h", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_volume24h_idx": { - "name": "coin_volume24h_idx", - "columns": [ - { - "expression": "volume_24h", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_created_at_idx": { - "name": "coin_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "coin_creator_id_user_id_fk": { - "name": "coin_creator_id_user_id_fk", - "tableFrom": "coin", - "tableTo": "user", - "columnsFrom": [ - "creator_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "coin_symbol_unique": { - "name": "coin_symbol_unique", - "nullsNotDistinct": false, - "columns": [ - "symbol" - ] - } - } - }, - "public.comment": { - "name": "comment", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "coin_id": { - "name": "coin_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "content": { - "name": "content", - "type": "varchar(500)", - "primaryKey": false, - "notNull": true - }, - "likes_count": { - "name": "likes_count", - "type": "integer", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "is_deleted": { - "name": "is_deleted", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - } - }, - "indexes": { - "comment_user_id_idx": { - "name": "comment_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "comment_coin_id_idx": { - "name": "comment_coin_id_idx", - "columns": [ - { - "expression": "coin_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "comment_user_id_user_id_fk": { - "name": "comment_user_id_user_id_fk", - "tableFrom": "comment", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "comment_coin_id_coin_id_fk": { - "name": "comment_coin_id_coin_id_fk", - "tableFrom": "comment", - "tableTo": "coin", - "columnsFrom": [ - "coin_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.comment_like": { - "name": "comment_like", - "schema": "", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "comment_id": { - "name": "comment_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "comment_like_user_id_user_id_fk": { - "name": "comment_like_user_id_user_id_fk", - "tableFrom": "comment_like", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "comment_like_comment_id_comment_id_fk": { - "name": "comment_like_comment_id_comment_id_fk", - "tableFrom": "comment_like", - "tableTo": "comment", - "columnsFrom": [ - "comment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "comment_like_user_id_comment_id_pk": { - "name": "comment_like_user_id_comment_id_pk", - "columns": [ - "user_id", - "comment_id" - ] - } - }, - "uniqueConstraints": {} - }, - "public.notification": { - "name": "notification", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "type": { - "name": "type", - "type": "notification_type", - "typeSchema": "public", - "primaryKey": false, - "notNull": true - }, - "title": { - "name": "title", - "type": "varchar(200)", - "primaryKey": false, - "notNull": true - }, - "message": { - "name": "message", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "link": { - "name": "link", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "is_read": { - "name": "is_read", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": { - "notification_user_id_idx": { - "name": "notification_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "notification_type_idx": { - "name": "notification_type_idx", - "columns": [ - { - "expression": "type", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "notification_is_read_idx": { - "name": "notification_is_read_idx", - "columns": [ - { - "expression": "is_read", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "notification_created_at_idx": { - "name": "notification_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "notification_user_id_user_id_fk": { - "name": "notification_user_id_user_id_fk", - "tableFrom": "notification", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.prediction_bet": { - "name": "prediction_bet", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "question_id": { - "name": "question_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "side": { - "name": "side", - "type": "boolean", - "primaryKey": false, - "notNull": true - }, - "amount": { - "name": "amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "actual_winnings": { - "name": "actual_winnings", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "settled_at": { - "name": "settled_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - } - }, - "indexes": { - "prediction_bet_user_id_idx": { - "name": "prediction_bet_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_bet_question_id_idx": { - "name": "prediction_bet_question_id_idx", - "columns": [ - { - "expression": "question_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_bet_user_question_idx": { - "name": "prediction_bet_user_question_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "question_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_bet_created_at_idx": { - "name": "prediction_bet_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "prediction_bet_user_id_user_id_fk": { - "name": "prediction_bet_user_id_user_id_fk", - "tableFrom": "prediction_bet", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "prediction_bet_question_id_prediction_question_id_fk": { - "name": "prediction_bet_question_id_prediction_question_id_fk", - "tableFrom": "prediction_bet", - "tableTo": "prediction_question", - "columnsFrom": [ - "question_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.prediction_question": { - "name": "prediction_question", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "creator_id": { - "name": "creator_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "question": { - "name": "question", - "type": "varchar(200)", - "primaryKey": false, - "notNull": true - }, - "status": { - "name": "status", - "type": "prediction_market_status", - "typeSchema": "public", - "primaryKey": false, - "notNull": true, - "default": "'ACTIVE'" - }, - "resolution_date": { - "name": "resolution_date", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "ai_resolution": { - "name": "ai_resolution", - "type": "boolean", - "primaryKey": false, - "notNull": false - }, - "total_yes_amount": { - "name": "total_yes_amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "total_no_amount": { - "name": "total_no_amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "resolved_at": { - "name": "resolved_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "requires_web_search": { - "name": "requires_web_search", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "validation_reason": { - "name": "validation_reason", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": { - "prediction_question_creator_id_idx": { - "name": "prediction_question_creator_id_idx", - "columns": [ - { - "expression": "creator_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_question_status_idx": { - "name": "prediction_question_status_idx", - "columns": [ - { - "expression": "status", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_question_resolution_date_idx": { - "name": "prediction_question_resolution_date_idx", - "columns": [ - { - "expression": "resolution_date", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_question_status_resolution_idx": { - "name": "prediction_question_status_resolution_idx", - "columns": [ - { - "expression": "status", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "resolution_date", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "prediction_question_creator_id_user_id_fk": { - "name": "prediction_question_creator_id_user_id_fk", - "tableFrom": "prediction_question", - "tableTo": "user", - "columnsFrom": [ - "creator_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.price_history": { - "name": "price_history", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "coin_id": { - "name": "coin_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "price": { - "name": "price", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "price_history_coin_id_coin_id_fk": { - "name": "price_history_coin_id_coin_id_fk", - "tableFrom": "price_history", - "tableTo": "coin", - "columnsFrom": [ - "coin_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.promo_code": { - "name": "promo_code", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "code": { - "name": "code", - "type": "varchar(50)", - "primaryKey": false, - "notNull": true - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "reward_amount": { - "name": "reward_amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "max_uses": { - "name": "max_uses", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "is_active": { - "name": "is_active", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "created_by": { - "name": "created_by", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "promo_code_created_by_user_id_fk": { - "name": "promo_code_created_by_user_id_fk", - "tableFrom": "promo_code", - "tableTo": "user", - "columnsFrom": [ - "created_by" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "promo_code_code_unique": { - "name": "promo_code_code_unique", - "nullsNotDistinct": false, - "columns": [ - "code" - ] - } - } - }, - "public.promo_code_redemption": { - "name": "promo_code_redemption", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "promo_code_id": { - "name": "promo_code_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "reward_amount": { - "name": "reward_amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "redeemed_at": { - "name": "redeemed_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "promo_code_redemption_user_id_user_id_fk": { - "name": "promo_code_redemption_user_id_user_id_fk", - "tableFrom": "promo_code_redemption", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "promo_code_redemption_promo_code_id_promo_code_id_fk": { - "name": "promo_code_redemption_promo_code_id_promo_code_id_fk", - "tableFrom": "promo_code_redemption", - "tableTo": "promo_code", - "columnsFrom": [ - "promo_code_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "promo_code_redemption_user_id_promo_code_id_unique": { - "name": "promo_code_redemption_user_id_promo_code_id_unique", - "nullsNotDistinct": false, - "columns": [ - "user_id", - "promo_code_id" - ] - } - } - }, - "public.session": { - "name": "session", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "ip_address": { - "name": "ip_address", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "user_agent": { - "name": "user_agent", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "session_user_id_user_id_fk": { - "name": "session_user_id_user_id_fk", - "tableFrom": "session", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "session_token_unique": { - "name": "session_token_unique", - "nullsNotDistinct": false, - "columns": [ - "token" - ] - } - } - }, - "public.transaction": { - "name": "transaction", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "coin_id": { - "name": "coin_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "type": { - "name": "type", - "type": "transaction_type", - "typeSchema": "public", - "primaryKey": false, - "notNull": true - }, - "quantity": { - "name": "quantity", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "price_per_coin": { - "name": "price_per_coin", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "total_base_currency_amount": { - "name": "total_base_currency_amount", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "recipient_user_id": { - "name": "recipient_user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "sender_user_id": { - "name": "sender_user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": { - "transaction_user_id_idx": { - "name": "transaction_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_coin_id_idx": { - "name": "transaction_coin_id_idx", - "columns": [ - { - "expression": "coin_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_type_idx": { - "name": "transaction_type_idx", - "columns": [ - { - "expression": "type", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_timestamp_idx": { - "name": "transaction_timestamp_idx", - "columns": [ - { - "expression": "timestamp", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_user_coin_idx": { - "name": "transaction_user_coin_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "coin_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_coin_type_idx": { - "name": "transaction_coin_type_idx", - "columns": [ - { - "expression": "coin_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "type", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "transaction_user_id_user_id_fk": { - "name": "transaction_user_id_user_id_fk", - "tableFrom": "transaction", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "transaction_coin_id_coin_id_fk": { - "name": "transaction_coin_id_coin_id_fk", - "tableFrom": "transaction", - "tableTo": "coin", - "columnsFrom": [ - "coin_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "transaction_recipient_user_id_user_id_fk": { - "name": "transaction_recipient_user_id_user_id_fk", - "tableFrom": "transaction", - "tableTo": "user", - "columnsFrom": [ - "recipient_user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "transaction_sender_user_id_user_id_fk": { - "name": "transaction_sender_user_id_user_id_fk", - "tableFrom": "transaction", - "tableTo": "user", - "columnsFrom": [ - "sender_user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.user": { - "name": "user", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "email_verified": { - "name": "email_verified", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "is_admin": { - "name": "is_admin", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "is_banned": { - "name": "is_banned", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "ban_reason": { - "name": "ban_reason", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "base_currency_balance": { - "name": "base_currency_balance", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true, - "default": "'100.00000000'" - }, - "bio": { - "name": "bio", - "type": "varchar(160)", - "primaryKey": false, - "notNull": false, - "default": "'Hello am 48 year old man from somalia. Sorry for my bed england. I selled my wife for internet connection for play “conter stirk”'" - }, - "username": { - "name": "username", - "type": "varchar(30)", - "primaryKey": false, - "notNull": true - }, - "volume_master": { - "name": "volume_master", - "type": "numeric(3, 2)", - "primaryKey": false, - "notNull": true, - "default": "'0.70'" - }, - "volume_muted": { - "name": "volume_muted", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "last_reward_claim": { - "name": "last_reward_claim", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "total_rewards_claimed": { - "name": "total_rewards_claimed", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "login_streak": { - "name": "login_streak", - "type": "integer", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "prestige_level": { - "name": "prestige_level", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - } - }, - "indexes": { - "user_username_idx": { - "name": "user_username_idx", - "columns": [ - { - "expression": "username", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "user_is_banned_idx": { - "name": "user_is_banned_idx", - "columns": [ - { - "expression": "is_banned", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "user_is_admin_idx": { - "name": "user_is_admin_idx", - "columns": [ - { - "expression": "is_admin", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "user_created_at_idx": { - "name": "user_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "user_updated_at_idx": { - "name": "user_updated_at_idx", - "columns": [ - { - "expression": "updated_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "user_email_unique": { - "name": "user_email_unique", - "nullsNotDistinct": false, - "columns": [ - "email" - ] - }, - "user_username_unique": { - "name": "user_username_unique", - "nullsNotDistinct": false, - "columns": [ - "username" - ] - } - } - }, - "public.user_portfolio": { - "name": "user_portfolio", - "schema": "", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "coin_id": { - "name": "coin_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "quantity": { - "name": "quantity", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_portfolio_user_id_user_id_fk": { - "name": "user_portfolio_user_id_user_id_fk", - "tableFrom": "user_portfolio", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_portfolio_coin_id_coin_id_fk": { - "name": "user_portfolio_coin_id_coin_id_fk", - "tableFrom": "user_portfolio", - "tableTo": "coin", - "columnsFrom": [ - "coin_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "user_portfolio_user_id_coin_id_pk": { - "name": "user_portfolio_user_id_coin_id_pk", - "columns": [ - "user_id", - "coin_id" - ] - } - }, - "uniqueConstraints": {} - }, - "public.verification": { - "name": "verification", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "identifier": { - "name": "identifier", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": { - "public.notification_type": { - "name": "notification_type", - "schema": "public", - "values": [ - "HOPIUM", - "SYSTEM", - "TRANSFER", - "RUG_PULL" - ] - }, - "public.prediction_market_status": { - "name": "prediction_market_status", - "schema": "public", - "values": [ - "ACTIVE", - "RESOLVED", - "CANCELLED" - ] - }, - "public.transaction_type": { - "name": "transaction_type", - "schema": "public", - "values": [ - "BUY", - "SELL", - "TRANSFER_IN", - "TRANSFER_OUT" - ] - } - }, - "schemas": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/website/drizzle/meta/0002_snapshot.json b/website/drizzle/meta/0002_snapshot.json deleted file mode 100644 index bbdcbaf..0000000 --- a/website/drizzle/meta/0002_snapshot.json +++ /dev/null @@ -1,2212 +0,0 @@ -{ - "id": "a121175f-03e9-4a31-866a-9af04fa805b6", - "prevId": "947dcf8e-040d-49d0-aba5-271be6750cc8", - "version": "7", - "dialect": "postgresql", - "tables": { - "public.account": { - "name": "account", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "account_id": { - "name": "account_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "provider_id": { - "name": "provider_id", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "access_token": { - "name": "access_token", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "refresh_token": { - "name": "refresh_token", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "id_token": { - "name": "id_token", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "access_token_expires_at": { - "name": "access_token_expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "refresh_token_expires_at": { - "name": "refresh_token_expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "scope": { - "name": "scope", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "account_user_id_user_id_fk": { - "name": "account_user_id_user_id_fk", - "tableFrom": "account", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.account_deletion_request": { - "name": "account_deletion_request", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "requested_at": { - "name": "requested_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "scheduled_deletion_at": { - "name": "scheduled_deletion_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "reason": { - "name": "reason", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "is_processed": { - "name": "is_processed", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - } - }, - "indexes": { - "account_deletion_request_user_id_idx": { - "name": "account_deletion_request_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "account_deletion_request_scheduled_deletion_idx": { - "name": "account_deletion_request_scheduled_deletion_idx", - "columns": [ - { - "expression": "scheduled_deletion_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "account_deletion_request_open_idx": { - "name": "account_deletion_request_open_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "where": "is_processed = false", - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "account_deletion_request_user_id_user_id_fk": { - "name": "account_deletion_request_user_id_user_id_fk", - "tableFrom": "account_deletion_request", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "account_deletion_request_user_id_unique": { - "name": "account_deletion_request_user_id_unique", - "nullsNotDistinct": false, - "columns": [ - "user_id" - ] - } - } - }, - "public.apikey": { - "name": "apikey", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "start": { - "name": "start", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "prefix": { - "name": "prefix", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "key": { - "name": "key", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "refill_interval": { - "name": "refill_interval", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "refill_amount": { - "name": "refill_amount", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "last_refill_at": { - "name": "last_refill_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "enabled": { - "name": "enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false - }, - "rate_limit_enabled": { - "name": "rate_limit_enabled", - "type": "boolean", - "primaryKey": false, - "notNull": false - }, - "rate_limit_time_window": { - "name": "rate_limit_time_window", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "rate_limit_max": { - "name": "rate_limit_max", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "request_count": { - "name": "request_count", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "remaining": { - "name": "remaining", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "last_request": { - "name": "last_request", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp", - "primaryKey": false, - "notNull": true - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp", - "primaryKey": false, - "notNull": true - }, - "permissions": { - "name": "permissions", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "metadata": { - "name": "metadata", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": { - "idx_apikey_user": { - "name": "idx_apikey_user", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "apikey_user_id_user_id_fk": { - "name": "apikey_user_id_user_id_fk", - "tableFrom": "apikey", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.coin": { - "name": "coin", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "varchar(255)", - "primaryKey": false, - "notNull": true - }, - "symbol": { - "name": "symbol", - "type": "varchar(10)", - "primaryKey": false, - "notNull": true - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "creator_id": { - "name": "creator_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "initial_supply": { - "name": "initial_supply", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "circulating_supply": { - "name": "circulating_supply", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "current_price": { - "name": "current_price", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "market_cap": { - "name": "market_cap", - "type": "numeric(30, 2)", - "primaryKey": false, - "notNull": true - }, - "volume_24h": { - "name": "volume_24h", - "type": "numeric(30, 2)", - "primaryKey": false, - "notNull": false, - "default": "'0.00'" - }, - "change_24h": { - "name": "change_24h", - "type": "numeric(30, 4)", - "primaryKey": false, - "notNull": false, - "default": "'0.0000'" - }, - "pool_coin_amount": { - "name": "pool_coin_amount", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "pool_base_currency_amount": { - "name": "pool_base_currency_amount", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "is_listed": { - "name": "is_listed", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "trading_unlocks_at": { - "name": "trading_unlocks_at", - "type": "timestamp", - "primaryKey": false, - "notNull": false - }, - "is_locked": { - "name": "is_locked", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - } - }, - "indexes": { - "coin_symbol_idx": { - "name": "coin_symbol_idx", - "columns": [ - { - "expression": "symbol", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_creator_id_idx": { - "name": "coin_creator_id_idx", - "columns": [ - { - "expression": "creator_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_is_listed_idx": { - "name": "coin_is_listed_idx", - "columns": [ - { - "expression": "is_listed", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_market_cap_idx": { - "name": "coin_market_cap_idx", - "columns": [ - { - "expression": "market_cap", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_current_price_idx": { - "name": "coin_current_price_idx", - "columns": [ - { - "expression": "current_price", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_change24h_idx": { - "name": "coin_change24h_idx", - "columns": [ - { - "expression": "change_24h", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_volume24h_idx": { - "name": "coin_volume24h_idx", - "columns": [ - { - "expression": "volume_24h", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "coin_created_at_idx": { - "name": "coin_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "coin_creator_id_user_id_fk": { - "name": "coin_creator_id_user_id_fk", - "tableFrom": "coin", - "tableTo": "user", - "columnsFrom": [ - "creator_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "coin_symbol_unique": { - "name": "coin_symbol_unique", - "nullsNotDistinct": false, - "columns": [ - "symbol" - ] - } - } - }, - "public.comment": { - "name": "comment", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "coin_id": { - "name": "coin_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "content": { - "name": "content", - "type": "varchar(500)", - "primaryKey": false, - "notNull": true - }, - "likes_count": { - "name": "likes_count", - "type": "integer", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "is_deleted": { - "name": "is_deleted", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - } - }, - "indexes": { - "comment_user_id_idx": { - "name": "comment_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "comment_coin_id_idx": { - "name": "comment_coin_id_idx", - "columns": [ - { - "expression": "coin_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "comment_user_id_user_id_fk": { - "name": "comment_user_id_user_id_fk", - "tableFrom": "comment", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "comment_coin_id_coin_id_fk": { - "name": "comment_coin_id_coin_id_fk", - "tableFrom": "comment", - "tableTo": "coin", - "columnsFrom": [ - "coin_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.comment_like": { - "name": "comment_like", - "schema": "", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "comment_id": { - "name": "comment_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "comment_like_user_id_user_id_fk": { - "name": "comment_like_user_id_user_id_fk", - "tableFrom": "comment_like", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "comment_like_comment_id_comment_id_fk": { - "name": "comment_like_comment_id_comment_id_fk", - "tableFrom": "comment_like", - "tableTo": "comment", - "columnsFrom": [ - "comment_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "comment_like_user_id_comment_id_pk": { - "name": "comment_like_user_id_comment_id_pk", - "columns": [ - "user_id", - "comment_id" - ] - } - }, - "uniqueConstraints": {} - }, - "public.notification": { - "name": "notification", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "type": { - "name": "type", - "type": "notification_type", - "typeSchema": "public", - "primaryKey": false, - "notNull": true - }, - "title": { - "name": "title", - "type": "varchar(200)", - "primaryKey": false, - "notNull": true - }, - "message": { - "name": "message", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "link": { - "name": "link", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "is_read": { - "name": "is_read", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": { - "notification_user_id_idx": { - "name": "notification_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "notification_type_idx": { - "name": "notification_type_idx", - "columns": [ - { - "expression": "type", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "notification_is_read_idx": { - "name": "notification_is_read_idx", - "columns": [ - { - "expression": "is_read", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "notification_created_at_idx": { - "name": "notification_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "notification_user_id_user_id_fk": { - "name": "notification_user_id_user_id_fk", - "tableFrom": "notification", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.prediction_bet": { - "name": "prediction_bet", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "question_id": { - "name": "question_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "side": { - "name": "side", - "type": "boolean", - "primaryKey": false, - "notNull": true - }, - "amount": { - "name": "amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "actual_winnings": { - "name": "actual_winnings", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "settled_at": { - "name": "settled_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - } - }, - "indexes": { - "prediction_bet_user_id_idx": { - "name": "prediction_bet_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_bet_question_id_idx": { - "name": "prediction_bet_question_id_idx", - "columns": [ - { - "expression": "question_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_bet_user_question_idx": { - "name": "prediction_bet_user_question_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "question_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_bet_created_at_idx": { - "name": "prediction_bet_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "prediction_bet_user_id_user_id_fk": { - "name": "prediction_bet_user_id_user_id_fk", - "tableFrom": "prediction_bet", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "prediction_bet_question_id_prediction_question_id_fk": { - "name": "prediction_bet_question_id_prediction_question_id_fk", - "tableFrom": "prediction_bet", - "tableTo": "prediction_question", - "columnsFrom": [ - "question_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.prediction_question": { - "name": "prediction_question", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "creator_id": { - "name": "creator_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "question": { - "name": "question", - "type": "varchar(200)", - "primaryKey": false, - "notNull": true - }, - "status": { - "name": "status", - "type": "prediction_market_status", - "typeSchema": "public", - "primaryKey": false, - "notNull": true, - "default": "'ACTIVE'" - }, - "resolution_date": { - "name": "resolution_date", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "ai_resolution": { - "name": "ai_resolution", - "type": "boolean", - "primaryKey": false, - "notNull": false - }, - "total_yes_amount": { - "name": "total_yes_amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "total_no_amount": { - "name": "total_no_amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "resolved_at": { - "name": "resolved_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "requires_web_search": { - "name": "requires_web_search", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "validation_reason": { - "name": "validation_reason", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": { - "prediction_question_creator_id_idx": { - "name": "prediction_question_creator_id_idx", - "columns": [ - { - "expression": "creator_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_question_status_idx": { - "name": "prediction_question_status_idx", - "columns": [ - { - "expression": "status", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_question_resolution_date_idx": { - "name": "prediction_question_resolution_date_idx", - "columns": [ - { - "expression": "resolution_date", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "prediction_question_status_resolution_idx": { - "name": "prediction_question_status_resolution_idx", - "columns": [ - { - "expression": "status", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "resolution_date", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "prediction_question_creator_id_user_id_fk": { - "name": "prediction_question_creator_id_user_id_fk", - "tableFrom": "prediction_question", - "tableTo": "user", - "columnsFrom": [ - "creator_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.price_history": { - "name": "price_history", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "coin_id": { - "name": "coin_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "price": { - "name": "price", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "price_history_coin_id_coin_id_fk": { - "name": "price_history_coin_id_coin_id_fk", - "tableFrom": "price_history", - "tableTo": "coin", - "columnsFrom": [ - "coin_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.promo_code": { - "name": "promo_code", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "code": { - "name": "code", - "type": "varchar(50)", - "primaryKey": false, - "notNull": true - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "reward_amount": { - "name": "reward_amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "max_uses": { - "name": "max_uses", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "is_active": { - "name": "is_active", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "created_by": { - "name": "created_by", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "promo_code_created_by_user_id_fk": { - "name": "promo_code_created_by_user_id_fk", - "tableFrom": "promo_code", - "tableTo": "user", - "columnsFrom": [ - "created_by" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "promo_code_code_unique": { - "name": "promo_code_code_unique", - "nullsNotDistinct": false, - "columns": [ - "code" - ] - } - } - }, - "public.promo_code_redemption": { - "name": "promo_code_redemption", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "promo_code_id": { - "name": "promo_code_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "reward_amount": { - "name": "reward_amount", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "redeemed_at": { - "name": "redeemed_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "promo_code_redemption_user_id_user_id_fk": { - "name": "promo_code_redemption_user_id_user_id_fk", - "tableFrom": "promo_code_redemption", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "promo_code_redemption_promo_code_id_promo_code_id_fk": { - "name": "promo_code_redemption_promo_code_id_promo_code_id_fk", - "tableFrom": "promo_code_redemption", - "tableTo": "promo_code", - "columnsFrom": [ - "promo_code_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "promo_code_redemption_user_id_promo_code_id_unique": { - "name": "promo_code_redemption_user_id_promo_code_id_unique", - "nullsNotDistinct": false, - "columns": [ - "user_id", - "promo_code_id" - ] - } - } - }, - "public.session": { - "name": "session", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "ip_address": { - "name": "ip_address", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "user_agent": { - "name": "user_agent", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": { - "session_user_id_user_id_fk": { - "name": "session_user_id_user_id_fk", - "tableFrom": "session", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "session_token_unique": { - "name": "session_token_unique", - "nullsNotDistinct": false, - "columns": [ - "token" - ] - } - } - }, - "public.transaction": { - "name": "transaction", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "coin_id": { - "name": "coin_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "type": { - "name": "type", - "type": "transaction_type", - "typeSchema": "public", - "primaryKey": false, - "notNull": true - }, - "quantity": { - "name": "quantity", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "price_per_coin": { - "name": "price_per_coin", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true - }, - "total_base_currency_amount": { - "name": "total_base_currency_amount", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "timestamp": { - "name": "timestamp", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "recipient_user_id": { - "name": "recipient_user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - }, - "sender_user_id": { - "name": "sender_user_id", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": { - "transaction_user_id_idx": { - "name": "transaction_user_id_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_coin_id_idx": { - "name": "transaction_coin_id_idx", - "columns": [ - { - "expression": "coin_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_type_idx": { - "name": "transaction_type_idx", - "columns": [ - { - "expression": "type", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_timestamp_idx": { - "name": "transaction_timestamp_idx", - "columns": [ - { - "expression": "timestamp", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_user_coin_idx": { - "name": "transaction_user_coin_idx", - "columns": [ - { - "expression": "user_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "coin_id", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "transaction_coin_type_idx": { - "name": "transaction_coin_type_idx", - "columns": [ - { - "expression": "coin_id", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "type", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": { - "transaction_user_id_user_id_fk": { - "name": "transaction_user_id_user_id_fk", - "tableFrom": "transaction", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "transaction_coin_id_coin_id_fk": { - "name": "transaction_coin_id_coin_id_fk", - "tableFrom": "transaction", - "tableTo": "coin", - "columnsFrom": [ - "coin_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "transaction_recipient_user_id_user_id_fk": { - "name": "transaction_recipient_user_id_user_id_fk", - "tableFrom": "transaction", - "tableTo": "user", - "columnsFrom": [ - "recipient_user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - }, - "transaction_sender_user_id_user_id_fk": { - "name": "transaction_sender_user_id_user_id_fk", - "tableFrom": "transaction", - "tableTo": "user", - "columnsFrom": [ - "sender_user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "set null", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "public.user": { - "name": "user", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "email_verified": { - "name": "email_verified", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "is_admin": { - "name": "is_admin", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "is_banned": { - "name": "is_banned", - "type": "boolean", - "primaryKey": false, - "notNull": false, - "default": false - }, - "ban_reason": { - "name": "ban_reason", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "base_currency_balance": { - "name": "base_currency_balance", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true, - "default": "'100.00000000'" - }, - "bio": { - "name": "bio", - "type": "varchar(160)", - "primaryKey": false, - "notNull": false, - "default": "'Hello am 48 year old man from somalia. Sorry for my bed england. I selled my wife for internet connection for play “conter stirk”'" - }, - "username": { - "name": "username", - "type": "varchar(30)", - "primaryKey": false, - "notNull": true - }, - "volume_master": { - "name": "volume_master", - "type": "numeric(3, 2)", - "primaryKey": false, - "notNull": true, - "default": "'0.70'" - }, - "volume_muted": { - "name": "volume_muted", - "type": "boolean", - "primaryKey": false, - "notNull": true, - "default": false - }, - "last_reward_claim": { - "name": "last_reward_claim", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false - }, - "total_rewards_claimed": { - "name": "total_rewards_claimed", - "type": "numeric(20, 8)", - "primaryKey": false, - "notNull": true, - "default": "'0.00000000'" - }, - "login_streak": { - "name": "login_streak", - "type": "integer", - "primaryKey": false, - "notNull": true, - "default": 0 - }, - "prestige_level": { - "name": "prestige_level", - "type": "integer", - "primaryKey": false, - "notNull": false, - "default": 0 - } - }, - "indexes": { - "user_username_idx": { - "name": "user_username_idx", - "columns": [ - { - "expression": "username", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "user_is_banned_idx": { - "name": "user_is_banned_idx", - "columns": [ - { - "expression": "is_banned", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "user_is_admin_idx": { - "name": "user_is_admin_idx", - "columns": [ - { - "expression": "is_admin", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "user_created_at_idx": { - "name": "user_created_at_idx", - "columns": [ - { - "expression": "created_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - }, - "user_updated_at_idx": { - "name": "user_updated_at_idx", - "columns": [ - { - "expression": "updated_at", - "isExpression": false, - "asc": true, - "nulls": "last" - } - ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": { - "user_email_unique": { - "name": "user_email_unique", - "nullsNotDistinct": false, - "columns": [ - "email" - ] - }, - "user_username_unique": { - "name": "user_username_unique", - "nullsNotDistinct": false, - "columns": [ - "username" - ] - } - } - }, - "public.user_portfolio": { - "name": "user_portfolio", - "schema": "", - "columns": { - "user_id": { - "name": "user_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "coin_id": { - "name": "coin_id", - "type": "integer", - "primaryKey": false, - "notNull": true - }, - "quantity": { - "name": "quantity", - "type": "numeric(30, 8)", - "primaryKey": false, - "notNull": true - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": { - "user_portfolio_user_id_user_id_fk": { - "name": "user_portfolio_user_id_user_id_fk", - "tableFrom": "user_portfolio", - "tableTo": "user", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - }, - "user_portfolio_coin_id_coin_id_fk": { - "name": "user_portfolio_coin_id_coin_id_fk", - "tableFrom": "user_portfolio", - "tableTo": "coin", - "columnsFrom": [ - "coin_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "cascade", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": { - "user_portfolio_user_id_coin_id_pk": { - "name": "user_portfolio_user_id_coin_id_pk", - "columns": [ - "user_id", - "coin_id" - ] - } - }, - "uniqueConstraints": {} - }, - "public.verification": { - "name": "verification", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "serial", - "primaryKey": true, - "notNull": true - }, - "identifier": { - "name": "identifier", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true - }, - "expires_at": { - "name": "expires_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": true - }, - "created_at": { - "name": "created_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - }, - "updated_at": { - "name": "updated_at", - "type": "timestamp with time zone", - "primaryKey": false, - "notNull": false, - "default": "now()" - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - } - }, - "enums": { - "public.notification_type": { - "name": "notification_type", - "schema": "public", - "values": [ - "HOPIUM", - "SYSTEM", - "TRANSFER", - "RUG_PULL" - ] - }, - "public.prediction_market_status": { - "name": "prediction_market_status", - "schema": "public", - "values": [ - "ACTIVE", - "RESOLVED", - "CANCELLED" - ] - }, - "public.transaction_type": { - "name": "transaction_type", - "schema": "public", - "values": [ - "BUY", - "SELL", - "TRANSFER_IN", - "TRANSFER_OUT" - ] - } - }, - "schemas": {}, - "_meta": { - "columns": {}, - "schemas": {}, - "tables": {} - } -} \ No newline at end of file diff --git a/website/drizzle/meta/_journal.json b/website/drizzle/meta/_journal.json index 64e3751..964b39d 100644 --- a/website/drizzle/meta/_journal.json +++ b/website/drizzle/meta/_journal.json @@ -8,20 +8,6 @@ "when": 1750863600119, "tag": "0000_chief_korath", "breakpoints": true - }, - { - "idx": 1, - "version": "7", - "when": 1752593600974, - "tag": "0001_heavy_leo", - "breakpoints": true - }, - { - "idx": 2, - "version": "7", - "when": 1752597309305, - "tag": "0002_lonely_the_fallen", - "breakpoints": true } ] } \ No newline at end of file diff --git a/website/package-lock.json b/website/package-lock.json index 4aa83e0..c2675db 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -1,12 +1,12 @@ { "name": "website", - "version": "2.0.0.a0", + "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "website", - "version": "2.0.0.a0", + "version": "0.0.1", "dependencies": { "@aws-sdk/client-s3": "^3.815.0", "@aws-sdk/s3-request-presigner": "^3.815.0", diff --git a/website/package.json b/website/package.json index c1daafb..cccea7a 100644 --- a/website/package.json +++ b/website/package.json @@ -1,7 +1,7 @@ { "name": "website", "private": true, - "version": "2.0.0.a0", + "version": "0.0.1", "type": "module", "scripts": { "dev": "vite dev", @@ -16,54 +16,53 @@ "db:studio": "drizzle-kit studio" }, "devDependencies": { - "@internationalized/date": "^3.8.2", - "@lucide/svelte": "^0.539.0", - "@sveltejs/adapter-auto": "^6.1.0", - "@sveltejs/adapter-node": "^5.2.14", - "@sveltejs/kit": "^2.29.1", - "@sveltejs/vite-plugin-svelte": "^6.1.2", + "@internationalized/date": "^3.8.1", + "@lucide/svelte": "^0.482.0", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/adapter-node": "^5.2.12", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^4.0.0", "@types/canvas-confetti": "^1.9.0", - "@types/node": "^24.2.1", - "autoprefixer": "^10.4.21", - "bits-ui": "^2.9.2", + "@types/node": "^22.15.21", + "autoprefixer": "^10.4.20", + "bits-ui": "^2.5.0", "clsx": "^2.1.1", - "dotenv": "^17.2.1", - "drizzle-kit": "^0.31.4", - "prettier": "^3.6.2", - "prettier-plugin-svelte": "^3.4.0", - "prettier-plugin-tailwindcss": "^0.6.14", - "svelte": "^5.38.1", - "svelte-apexcharts": "^1.0.2", - "svelte-check": "^4.3.1", - "svelte-confetti": "^2.3.2", - "svelte-lightweight-charts": "^2.2.0", - "svelte-sonner": "^1.0.5", - "tailwind-merge": "^3.3.1", - "tailwind-variants": "^2.1.0", - "tailwindcss": "^4.1.11", - "tw-animate-css": "^1.3.6", - "typescript": "^5.9.2", - "vite": "^7.1.2", - "vite-plugin-iso-import": "^1.3.0" + "drizzle-kit": "^0.22.0", + "prettier": "^3.3.2", + "prettier-plugin-svelte": "^3.2.6", + "prettier-plugin-tailwindcss": "^0.6.11", + "svelte": "^5.0.0", + "svelte-check": "^4.0.0", + "svelte-sonner": "^1.0.2", + "tailwind-merge": "^3.0.2", + "tailwind-variants": "^0.2.1", + "tailwindcss": "^4.1.7", + "tw-animate-css": "^1.3.0", + "typescript": "^5.0.0", + "vite": "^5.4.11", + "vite-plugin-iso-import": "^1.2.0" }, "dependencies": { - "@aws-sdk/client-s3": "^3.864.0", - "@aws-sdk/s3-request-presigner": "^3.864.0", - "@tailwindcss/postcss": "^4.1.11", + "@aws-sdk/client-s3": "^3.815.0", + "@aws-sdk/s3-request-presigner": "^3.815.0", + "@tailwindcss/postcss": "^4.1.7", "@tailwindcss/typography": "^0.5.16", "@visx/scale": "^3.12.0", - "apexcharts": "^5.3.3", - "better-auth": "^1.3.6", + "apexcharts": "^4.7.0", + "better-auth": "^1.2.8", "canvas-confetti": "^1.9.3", - "drizzle-orm": "^0.44.4", + "drizzle-orm": "^0.33.0", "express": "^5.1.0", - "lightweight-charts": "^5.0.8", - "lucide-svelte": "^0.539.0", - "mode-watcher": "^1.1.0", - "openai": "^5.12.2", - "postgres": "^3.4.7", - "redis": "^5.8.1", - "sharp": "^0.34.3" + "lightweight-charts": "^5.0.7", + "lucide-svelte": "^0.511.0", + "mode-watcher": "^1.0.7", + "openai": "^4.103.0", + "postgres": "^3.4.4", + "redis": "^5.1.0", + "sharp": "^0.34.2", + "svelte-apexcharts": "^1.0.2", + "svelte-confetti": "^2.3.1", + "svelte-lightweight-charts": "^2.2.0" }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "*", diff --git a/website/src/app.html b/website/src/app.html index 685e40b..d0273c8 100644 --- a/website/src/app.html +++ b/website/src/app.html @@ -10,11 +10,11 @@ -
- By accessing and using CoinStorge ("the Platform", "we", "us", "our"), you accept and agree + By accessing and using Rugplay ("the Platform", "we", "us", "our"), you accept and agree to be bound by these Terms of Service ("Terms"). If you do not agree to these Terms, you may not use the Platform.
- These Terms constitute a legally binding agreement between you and CoinStorge regarding your - use of our cryptocurrency trading simulation platform. If you are not of the age required to sign - a binding contract, you may not use the Platform. + These Terms constitute a legally binding agreement between you and Rugplay regarding your + use of our cryptocurrency trading simulation platform.
- CoinStorge is a simulated cryptocurrency trading platform designed for educational + Rugplay is a simulated cryptocurrency trading platform designed for educational and entertainment purposes. The Platform allows users to:
- You must be at least 18 years old to use CoinStorge. + You must be at least {MINIMUM_AGE} years old to use Rugplay due to the presence of gambling-style + features (coinflip and slots), even though they use only virtual currency.
- Due to the presence of gambling-style - features (coinflip and slots), even though they use only virtual currency, and while our platform - uses only virtual currency with no real-world value, we maintain an 18+ + While our platform uses virtual currency with no real-world value, we maintain an 18+ age requirement to ensure responsible engagement with simulated gambling mechanics.
You may not use CoinStorge if you are:
+You may not use Rugplay if you are:
Trading on CoinStorge includes realistic mechanics such as:
+Trading on Rugplay includes realistic mechanics such as:
- You agree to use CoinStorge only for lawful purposes and in accordance with these Terms. + You agree to use Rugplay only for lawful purposes and in accordance with these Terms. You will not:
- No Compensation: There is no refund of + No Compensation: We will not provide alternative compensation or restore virtual balances lost due to investments in prohibited content. You invest at your own risk.
@@ -314,7 +313,7 @@CoinStorge includes simulated gambling features:
+Rugplay includes simulated gambling features:
CoinStorge is designed for educational and entertainment purposes. It is not:
+Rugplay is designed for educational and entertainment purposes. It is not:
CoinStorge is based on Rugplay, licensed under CC BY-NC by OutPoot (FaceDev).
-CoinStorge and all related intellectual property are owned by either us or OutPoot, including:
+Rugplay and all related intellectual property are owned by us, including:
- CoinStorge incorporates intellectual property from creators' past projects, including: + Rugplay incorporates intellectual property from creator's past projects, including:
- All past project assets used in CoinStorge are owned by the platform creators or used + All past project assets used in Rugplay are owned by the platform creators or used with proper authorization.
- By using CoinStorge, you consent to our data practices as described in the Privacy Policy, + By using Rugplay, you consent to our data practices as described in the Privacy Policy, including the retention of anonymized data after account deletion.
@@ -562,8 +561,8 @@- These Terms, along with our Privacy Policy — incorporated in these Terms by reference —, constitute the entire agreement between - you and CoinStorge regarding use of the Platform. + These Terms, along with our Privacy Policy, constitute the entire agreement between + you and Rugplay regarding use of the Platform.
We may update these Terms periodically. Material changes will be communicated via - email and platform notifications, on a best-effort basis. Continued use after changes constitutes acceptance. - Failure to communicate does not automatically terminate our Agreement. + email and platform notifications. Continued use after changes constitutes acceptance.
+ For questions about these Terms, contact us at: + {CONTACT_EMAIL} +
+Last Updated: {LAST_UPDATED}
-Platform: CoinStorge
++ Contact: + {CONTACT_EMAIL} +
+Platform: Rugplay
*{coin.symbol}