{ "id": "08d1623b-7b2d-4777-8b7b-dbfa7884ecfe", "prevId": "00000000-0000-0000-0000-000000000000", "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 }, "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": {} } }