{
  "id": "51266d99-8120-41ae-9c8a-45945c6d442a",
  "prevId": "de0863ba-af00-4bfe-a767-cc1a91275b10",
  "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": {}
        }
      },
      "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.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(10, 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": {},
      "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.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": {}
        }
      },
      "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()"
        }
      },
      "indexes": {},
      "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"
        }
      },
      "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": "'10000.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
        }
      },
      "indexes": {},
      "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.prediction_market_status": {
      "name": "prediction_market_status",
      "schema": "public",
      "values": [
        "ACTIVE",
        "RESOLVED",
        "CANCELLED"
      ]
    },
    "public.transaction_type": {
      "name": "transaction_type",
      "schema": "public",
      "values": [
        "BUY",
        "SELL"
      ]
    }
  },
  "schemas": {},
  "_meta": {
    "columns": {},
    "schemas": {},
    "tables": {}
  }
}