{
  "version": "5",
  "dialect": "mysql",
  "id": "8e5a2981-0cd3-414b-a5e4-0a7c6d5975bb",
  "prevId": "2319954f-44c4-4c3e-8477-9d9c40e40fad",
  "tables": {
    "audit_logs": {
      "name": "audit_logs",
      "columns": {
        "id": {
          "name": "id",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "actorId": {
          "name": "actorId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "actorRole": {
          "name": "actorRole",
          "type": "varchar(32)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "targetUserId": {
          "name": "targetUserId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "action": {
          "name": "action",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "category": {
          "name": "category",
          "type": "enum('auth','wallet','game','admin','kyc','staff','system','fraud')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "details": {
          "name": "details",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "ipAddress": {
          "name": "ipAddress",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "userAgent": {
          "name": "userAgent",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_audit_actorId": {
          "name": "idx_audit_actorId",
          "columns": [
            "actorId"
          ],
          "isUnique": false
        },
        "idx_audit_createdAt": {
          "name": "idx_audit_createdAt",
          "columns": [
            "createdAt"
          ],
          "isUnique": false
        },
        "idx_audit_category": {
          "name": "idx_audit_category",
          "columns": [
            "category"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "audit_logs_id": {
          "name": "audit_logs_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "bingo_cards": {
      "name": "bingo_cards",
      "columns": {
        "id": {
          "name": "id",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "sessionId": {
          "name": "sessionId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "roomId": {
          "name": "roomId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "numbers": {
          "name": "numbers",
          "type": "json",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "daubed": {
          "name": "daubed",
          "type": "json",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "hasBingo": {
          "name": "hasBingo",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "winAmount": {
          "name": "winAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "purchasedAt": {
          "name": "purchasedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_cards_sessionId": {
          "name": "idx_cards_sessionId",
          "columns": [
            "sessionId"
          ],
          "isUnique": false
        },
        "idx_cards_userId": {
          "name": "idx_cards_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "bingo_cards_id": {
          "name": "bingo_cards_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "bingo_rooms": {
      "name": "bingo_rooms",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "name": {
          "name": "name",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "currency": {
          "name": "currency",
          "type": "enum('GC','SC')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "ticketPrice": {
          "name": "ticketPrice",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "maxCards": {
          "name": "maxCards",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 4
        },
        "jackpot": {
          "name": "jackpot",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "jackpotBallLimit": {
          "name": "jackpotBallLimit",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 76
        },
        "status": {
          "name": "status",
          "type": "enum('open','calling','finished','paused')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'open'"
        },
        "currentSession": {
          "name": "currentSession",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "bingo_rooms_id": {
          "name": "bingo_rooms_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "bingo_sessions": {
      "name": "bingo_sessions",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "roomId": {
          "name": "roomId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "calledBalls": {
          "name": "calledBalls",
          "type": "json",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "ballCount": {
          "name": "ballCount",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "prizePool": {
          "name": "prizePool",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "jackpotWon": {
          "name": "jackpotWon",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "winners": {
          "name": "winners",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('active','finished')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'active'"
        },
        "startedAt": {
          "name": "startedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "finishedAt": {
          "name": "finishedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "bingo_sessions_id": {
          "name": "bingo_sessions_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "casino_games": {
      "name": "casino_games",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "slug": {
          "name": "slug",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "title": {
          "name": "title",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "provider": {
          "name": "provider",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "category": {
          "name": "category",
          "type": "enum('slots','table','live','jackpot','new','popular','crash','instant')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "tags": {
          "name": "tags",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "thumbnailUrl": {
          "name": "thumbnailUrl",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "bannerUrl": {
          "name": "bannerUrl",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "rtp": {
          "name": "rtp",
          "type": "float",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 96
        },
        "volatility": {
          "name": "volatility",
          "type": "enum('low','medium','high','very_high')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'medium'"
        },
        "minBetGc": {
          "name": "minBetGc",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'1.00'"
        },
        "maxBetGc": {
          "name": "maxBetGc",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'1000.00'"
        },
        "minBetSc": {
          "name": "minBetSc",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.10'"
        },
        "maxBetSc": {
          "name": "maxBetSc",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'100.00'"
        },
        "isActive": {
          "name": "isActive",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "isFeatured": {
          "name": "isFeatured",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "isNew": {
          "name": "isNew",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "playCount": {
          "name": "playCount",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "features": {
          "name": "features",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "paylines": {
          "name": "paylines",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "reels": {
          "name": "reels",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_games_provider": {
          "name": "idx_games_provider",
          "columns": [
            "provider"
          ],
          "isUnique": false
        },
        "idx_games_category": {
          "name": "idx_games_category",
          "columns": [
            "category"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "casino_games_id": {
          "name": "casino_games_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {
        "casino_games_slug_unique": {
          "name": "casino_games_slug_unique",
          "columns": [
            "slug"
          ]
        }
      },
      "checkConstraint": {}
    },
    "chat_messages": {
      "name": "chat_messages",
      "columns": {
        "id": {
          "name": "id",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "channel": {
          "name": "channel",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'global'"
        },
        "message": {
          "name": "message",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "isDeleted": {
          "name": "isDeleted",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_chat_channel": {
          "name": "idx_chat_channel",
          "columns": [
            "channel"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "chat_messages_id": {
          "name": "chat_messages_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "coin_packages": {
      "name": "coin_packages",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "name": {
          "name": "name",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "gcAmount": {
          "name": "gcAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "scBonusAmount": {
          "name": "scBonusAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "priceUsd": {
          "name": "priceUsd",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "isPopular": {
          "name": "isPopular",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "isBestValue": {
          "name": "isBestValue",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "isActive": {
          "name": "isActive",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "sortOrder": {
          "name": "sortOrder",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "coin_packages_id": {
          "name": "coin_packages_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "daily_bonuses": {
      "name": "daily_bonuses",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "gcAmount": {
          "name": "gcAmount",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "scAmount": {
          "name": "scAmount",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "spinResult": {
          "name": "spinResult",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "claimedAt": {
          "name": "claimedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_daily_userId": {
          "name": "idx_daily_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "daily_bonuses_id": {
          "name": "daily_bonuses_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "fraud_alerts": {
      "name": "fraud_alerts",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "alertType": {
          "name": "alertType",
          "type": "enum('abnormal_rtp','rapid_betting','multi_account','bonus_abuse','unusual_withdrawal','velocity','pattern')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "severity": {
          "name": "severity",
          "type": "enum('low','medium','high','critical')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'medium'"
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "details": {
          "name": "details",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('open','investigating','resolved','dismissed')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'open'"
        },
        "resolvedBy": {
          "name": "resolvedBy",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "resolvedAt": {
          "name": "resolvedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_fraud_userId": {
          "name": "idx_fraud_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        },
        "idx_fraud_status": {
          "name": "idx_fraud_status",
          "columns": [
            "status"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "fraud_alerts_id": {
          "name": "fraud_alerts_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "game_sessions": {
      "name": "game_sessions",
      "columns": {
        "id": {
          "name": "id",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "gameId": {
          "name": "gameId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "currency": {
          "name": "currency",
          "type": "enum('GC','SC')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "betAmount": {
          "name": "betAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "winAmount": {
          "name": "winAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "multiplier": {
          "name": "multiplier",
          "type": "float",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "outcome": {
          "name": "outcome",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "rtpApplied": {
          "name": "rtpApplied",
          "type": "float",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_sessions_userId": {
          "name": "idx_sessions_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        },
        "idx_sessions_gameId": {
          "name": "idx_sessions_gameId",
          "columns": [
            "gameId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "game_sessions_id": {
          "name": "game_sessions_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "kyc_documents": {
      "name": "kyc_documents",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "docType": {
          "name": "docType",
          "type": "enum('passport','drivers_license','national_id','utility_bill','bank_statement','selfie')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "fileUrl": {
          "name": "fileUrl",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "fileKey": {
          "name": "fileKey",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('pending','approved','rejected')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'pending'"
        },
        "reviewedBy": {
          "name": "reviewedBy",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "reviewNote": {
          "name": "reviewNote",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "submittedAt": {
          "name": "submittedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "reviewedAt": {
          "name": "reviewedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "kyc_documents_id": {
          "name": "kyc_documents_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "mini_game_rounds": {
      "name": "mini_game_rounds",
      "columns": {
        "id": {
          "name": "id",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "gameType": {
          "name": "gameType",
          "type": "enum('plinko','mines','dice','crash','wheel')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "currency": {
          "name": "currency",
          "type": "enum('GC','SC')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "betAmount": {
          "name": "betAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "winAmount": {
          "name": "winAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "multiplier": {
          "name": "multiplier",
          "type": "float",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "serverSeed": {
          "name": "serverSeed",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "clientSeed": {
          "name": "clientSeed",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "nonce": {
          "name": "nonce",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "outcome": {
          "name": "outcome",
          "type": "json",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "isVerified": {
          "name": "isVerified",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_minigame_userId": {
          "name": "idx_minigame_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "mini_game_rounds_id": {
          "name": "mini_game_rounds_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "poker_hands": {
      "name": "poker_hands",
      "columns": {
        "id": {
          "name": "id",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "tableId": {
          "name": "tableId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "handNumber": {
          "name": "handNumber",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "players": {
          "name": "players",
          "type": "json",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "communityCards": {
          "name": "communityCards",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "pot": {
          "name": "pot",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "winners": {
          "name": "winners",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "actions": {
          "name": "actions",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_hands_tableId": {
          "name": "idx_hands_tableId",
          "columns": [
            "tableId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "poker_hands_id": {
          "name": "poker_hands_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "poker_tables": {
      "name": "poker_tables",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "name": {
          "name": "name",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "gameType": {
          "name": "gameType",
          "type": "enum('holdem','omaha')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'holdem'"
        },
        "currency": {
          "name": "currency",
          "type": "enum('GC','SC')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "smallBlind": {
          "name": "smallBlind",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "bigBlind": {
          "name": "bigBlind",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "minBuyIn": {
          "name": "minBuyIn",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "maxBuyIn": {
          "name": "maxBuyIn",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "maxPlayers": {
          "name": "maxPlayers",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 9
        },
        "currentPlayers": {
          "name": "currentPlayers",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "status": {
          "name": "status",
          "type": "enum('waiting','active','paused','closed')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'waiting'"
        },
        "tournamentId": {
          "name": "tournamentId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "poker_tables_id": {
          "name": "poker_tables_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "poker_tournaments": {
      "name": "poker_tournaments",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "name": {
          "name": "name",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "currency": {
          "name": "currency",
          "type": "enum('GC','SC')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "buyIn": {
          "name": "buyIn",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "prizePool": {
          "name": "prizePool",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "maxPlayers": {
          "name": "maxPlayers",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "registeredPlayers": {
          "name": "registeredPlayers",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "startTime": {
          "name": "startTime",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('registering','running','finished','cancelled')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'registering'"
        },
        "structure": {
          "name": "structure",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "payoutStructure": {
          "name": "payoutStructure",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "poker_tournaments_id": {
          "name": "poker_tournaments_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "recently_played": {
      "name": "recently_played",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "gameId": {
          "name": "gameId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "playedAt": {
          "name": "playedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_recent_userId": {
          "name": "idx_recent_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "recently_played_id": {
          "name": "recently_played_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "restricted_states": {
      "name": "restricted_states",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "stateCode": {
          "name": "stateCode",
          "type": "varchar(4)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "stateName": {
          "name": "stateName",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "reason": {
          "name": "reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "isActive": {
          "name": "isActive",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "restricted_states_id": {
          "name": "restricted_states_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {
        "restricted_states_stateCode_unique": {
          "name": "restricted_states_stateCode_unique",
          "columns": [
            "stateCode"
          ]
        }
      },
      "checkConstraint": {}
    },
    "rtp_overrides": {
      "name": "rtp_overrides",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "gameId": {
          "name": "gameId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "rtpOverride": {
          "name": "rtpOverride",
          "type": "float",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "setByAdminId": {
          "name": "setByAdminId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "reason": {
          "name": "reason",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "expiresAt": {
          "name": "expiresAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "rtp_overrides_id": {
          "name": "rtp_overrides_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "sc_redemptions": {
      "name": "sc_redemptions",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "scAmount": {
          "name": "scAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "usdAmount": {
          "name": "usdAmount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "method": {
          "name": "method",
          "type": "enum('bank_transfer','check','paypal','crypto')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "paymentDetails": {
          "name": "paymentDetails",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('pending','approved','processing','completed','rejected')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'pending'"
        },
        "reviewedBy": {
          "name": "reviewedBy",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "reviewNote": {
          "name": "reviewNote",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "processedAt": {
          "name": "processedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        }
      },
      "indexes": {
        "idx_redemptions_userId": {
          "name": "idx_redemptions_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "sc_redemptions_id": {
          "name": "sc_redemptions_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "sport_bets": {
      "name": "sport_bets",
      "columns": {
        "id": {
          "name": "id",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "currency": {
          "name": "currency",
          "type": "enum('GC','SC')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "betType": {
          "name": "betType",
          "type": "enum('single','parlay','teaser')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'single'"
        },
        "totalStake": {
          "name": "totalStake",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "totalOdds": {
          "name": "totalOdds",
          "type": "float",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "potentialPayout": {
          "name": "potentialPayout",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "actualPayout": {
          "name": "actualPayout",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "status": {
          "name": "status",
          "type": "enum('pending','won','lost','cancelled','partial_win','void')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'pending'"
        },
        "selections": {
          "name": "selections",
          "type": "json",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "settledAt": {
          "name": "settledAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_bets_userId": {
          "name": "idx_bets_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        },
        "idx_bets_status": {
          "name": "idx_bets_status",
          "columns": [
            "status"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "sport_bets_id": {
          "name": "sport_bets_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "sport_events": {
      "name": "sport_events",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "sport": {
          "name": "sport",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "league": {
          "name": "league",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "homeTeam": {
          "name": "homeTeam",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "awayTeam": {
          "name": "awayTeam",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "startTime": {
          "name": "startTime",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "status": {
          "name": "status",
          "type": "enum('upcoming','live','finished','cancelled','suspended')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'upcoming'"
        },
        "homeScore": {
          "name": "homeScore",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": 0
        },
        "awayScore": {
          "name": "awayScore",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": 0
        },
        "period": {
          "name": "period",
          "type": "varchar(32)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "odds": {
          "name": "odds",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "metadata": {
          "name": "metadata",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_events_sport": {
          "name": "idx_events_sport",
          "columns": [
            "sport"
          ],
          "isUnique": false
        },
        "idx_events_status": {
          "name": "idx_events_status",
          "columns": [
            "status"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "sport_events_id": {
          "name": "sport_events_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "staff": {
      "name": "staff",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "staffId": {
          "name": "staffId",
          "type": "varchar(32)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "pin": {
          "name": "pin",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "position": {
          "name": "position",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "department": {
          "name": "department",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "hourlyRate": {
          "name": "hourlyRate",
          "type": "decimal(10,2)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "isActive": {
          "name": "isActive",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": true
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "staff_id": {
          "name": "staff_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {
        "staff_userId_unique": {
          "name": "staff_userId_unique",
          "columns": [
            "userId"
          ]
        },
        "staff_staffId_unique": {
          "name": "staff_staffId_unique",
          "columns": [
            "staffId"
          ]
        }
      },
      "checkConstraint": {}
    },
    "support_tickets": {
      "name": "support_tickets",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "assignedStaffId": {
          "name": "assignedStaffId",
          "type": "int",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "subject": {
          "name": "subject",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "category": {
          "name": "category",
          "type": "enum('account','payment','game','bonus','technical','kyc','other')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "priority": {
          "name": "priority",
          "type": "enum('low','medium','high','urgent')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'medium'"
        },
        "status": {
          "name": "status",
          "type": "enum('open','in_progress','waiting_user','resolved','closed')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'open'"
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        },
        "resolvedAt": {
          "name": "resolvedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        }
      },
      "indexes": {
        "idx_tickets_userId": {
          "name": "idx_tickets_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        },
        "idx_tickets_status": {
          "name": "idx_tickets_status",
          "columns": [
            "status"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "support_tickets_id": {
          "name": "support_tickets_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "ticket_messages": {
      "name": "ticket_messages",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "ticketId": {
          "name": "ticketId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "senderId": {
          "name": "senderId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "senderRole": {
          "name": "senderRole",
          "type": "enum('user','staff','admin')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "message": {
          "name": "message",
          "type": "text",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "attachmentUrl": {
          "name": "attachmentUrl",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_messages_ticketId": {
          "name": "idx_messages_ticketId",
          "columns": [
            "ticketId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "ticket_messages_id": {
          "name": "ticket_messages_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "time_clock": {
      "name": "time_clock",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "staffId": {
          "name": "staffId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "clockIn": {
          "name": "clockIn",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "clockOut": {
          "name": "clockOut",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "hoursWorked": {
          "name": "hoursWorked",
          "type": "float",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "notes": {
          "name": "notes",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_timeclock_staffId": {
          "name": "idx_timeclock_staffId",
          "columns": [
            "staffId"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "time_clock_id": {
          "name": "time_clock_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "transactions": {
      "name": "transactions",
      "columns": {
        "id": {
          "name": "id",
          "type": "bigint",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "type": {
          "name": "type",
          "type": "enum('gc_purchase','gc_bonus','sc_bonus','sc_redeem','game_bet','game_win','sport_bet','sport_win','sport_refund','poker_buyin','poker_win','poker_rake','bingo_purchase','bingo_win','minigame_bet','minigame_win','daily_bonus','admin_credit','admin_debit','referral_bonus','promo_credit')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "currency": {
          "name": "currency",
          "type": "enum('GC','SC')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "amount": {
          "name": "amount",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "balanceBefore": {
          "name": "balanceBefore",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "balanceAfter": {
          "name": "balanceAfter",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "referenceId": {
          "name": "referenceId",
          "type": "varchar(128)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "referenceType": {
          "name": "referenceType",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "description": {
          "name": "description",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "metadata": {
          "name": "metadata",
          "type": "json",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {
        "idx_transactions_userId": {
          "name": "idx_transactions_userId",
          "columns": [
            "userId"
          ],
          "isUnique": false
        },
        "idx_transactions_createdAt": {
          "name": "idx_transactions_createdAt",
          "columns": [
            "createdAt"
          ],
          "isUnique": false
        }
      },
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "transactions_id": {
          "name": "transactions_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    },
    "users": {
      "name": "users",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "openId": {
          "name": "openId",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "username": {
          "name": "username",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "email": {
          "name": "email",
          "type": "varchar(320)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "passwordHash": {
          "name": "passwordHash",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "name": {
          "name": "name",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "loginMethod": {
          "name": "loginMethod",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "role": {
          "name": "role",
          "type": "enum('user','staff','admin')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'user'"
        },
        "kycStatus": {
          "name": "kycStatus",
          "type": "enum('none','pending','approved','rejected')",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'none'"
        },
        "kycLevel": {
          "name": "kycLevel",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": 0
        },
        "isBanned": {
          "name": "isBanned",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "banReason": {
          "name": "banReason",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "isAgeVerified": {
          "name": "isAgeVerified",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "dateOfBirth": {
          "name": "dateOfBirth",
          "type": "varchar(10)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "stateCode": {
          "name": "stateCode",
          "type": "varchar(4)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "country": {
          "name": "country",
          "type": "varchar(4)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false,
          "default": "'US'"
        },
        "phone": {
          "name": "phone",
          "type": "varchar(32)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "avatarUrl": {
          "name": "avatarUrl",
          "type": "text",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "lastIp": {
          "name": "lastIp",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "twoFactorEnabled": {
          "name": "twoFactorEnabled",
          "type": "boolean",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": false
        },
        "twoFactorSecret": {
          "name": "twoFactorSecret",
          "type": "varchar(64)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "stripeCustomerId": {
          "name": "stripeCustomerId",
          "type": "varchar(255)",
          "primaryKey": false,
          "notNull": false,
          "autoincrement": false
        },
        "createdAt": {
          "name": "createdAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        },
        "lastSignedIn": {
          "name": "lastSignedIn",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "users_id": {
          "name": "users_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {
        "users_openId_unique": {
          "name": "users_openId_unique",
          "columns": [
            "openId"
          ]
        },
        "users_username_unique": {
          "name": "users_username_unique",
          "columns": [
            "username"
          ]
        },
        "users_stripeCustomerId_unique": {
          "name": "users_stripeCustomerId_unique",
          "columns": [
            "stripeCustomerId"
          ]
        }
      },
      "checkConstraint": {}
    },
    "wallets": {
      "name": "wallets",
      "columns": {
        "id": {
          "name": "id",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": true
        },
        "userId": {
          "name": "userId",
          "type": "int",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false
        },
        "gcBalance": {
          "name": "gcBalance",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "scBalance": {
          "name": "scBalance",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "lifetimeGcEarned": {
          "name": "lifetimeGcEarned",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "lifetimeScEarned": {
          "name": "lifetimeScEarned",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "lifetimeScRedeemed": {
          "name": "lifetimeScRedeemed",
          "type": "decimal(18,2)",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "default": "'0.00'"
        },
        "updatedAt": {
          "name": "updatedAt",
          "type": "timestamp",
          "primaryKey": false,
          "notNull": true,
          "autoincrement": false,
          "onUpdate": true,
          "default": "(now())"
        }
      },
      "indexes": {},
      "foreignKeys": {},
      "compositePrimaryKeys": {
        "wallets_id": {
          "name": "wallets_id",
          "columns": [
            "id"
          ]
        }
      },
      "uniqueConstraints": {},
      "checkConstraint": {}
    }
  },
  "views": {},
  "_meta": {
    "schemas": {},
    "tables": {},
    "columns": {}
  },
  "internal": {
    "tables": {},
    "indexes": {}
  }
}