SPB Git forge

spb/spinza

Public
8commits 1branches 0releases
1.6 MBsize
maindefault branch
16 days agolast push
TypeScript 97.6% SQL 1.4% JavaScript 0.5%
64.9 KB · 2,584 lines json
Raw Blame History
1{2  "id": "ce701f34-3e3b-4c96-a7b0-2d2f90472e21",3  "prevId": "00000000-0000-0000-0000-000000000000",4  "version": "7",5  "dialect": "postgresql",6  "tables": {7    "public.achievements": {8      "name": "achievements",9      "schema": "",10      "columns": {11        "key": {12          "name": "key",13          "type": "varchar(48)",14          "primaryKey": true,15          "notNull": true16        },17        "name": {18          "name": "name",19          "type": "varchar(80)",20          "primaryKey": false,21          "notNull": true22        },23        "description": {24          "name": "description",25          "type": "text",26          "primaryKey": false,27          "notNull": true28        },29        "category": {30          "name": "category",31          "type": "varchar(24)",32          "primaryKey": false,33          "notNull": true34        },35        "metric": {36          "name": "metric",37          "type": "varchar(32)",38          "primaryKey": false,39          "notNull": true40        },41        "target": {42          "name": "target",43          "type": "bigint",44          "primaryKey": false,45          "notNull": true46        },47        "reward_credits": {48          "name": "reward_credits",49          "type": "integer",50          "primaryKey": false,51          "notNull": true,52          "default": 053        },54        "reward_xp": {55          "name": "reward_xp",56          "type": "integer",57          "primaryKey": false,58          "notNull": true,59          "default": 060        },61        "icon": {62          "name": "icon",63          "type": "varchar(32)",64          "primaryKey": false,65          "notNull": true,66          "default": "'star'"67        },68        "sort_order": {69          "name": "sort_order",70          "type": "integer",71          "primaryKey": false,72          "notNull": true,73          "default": 074        },75        "enabled": {76          "name": "enabled",77          "type": "boolean",78          "primaryKey": false,79          "notNull": true,80          "default": true81        }82      },83      "indexes": {},84      "foreignKeys": {},85      "compositePrimaryKeys": {},86      "uniqueConstraints": {},87      "policies": {},88      "checkConstraints": {},89      "isRLSEnabled": false90    },91    "public.admin_sessions": {92      "name": "admin_sessions",93      "schema": "",94      "columns": {95        "id": {96          "name": "id",97          "type": "uuid",98          "primaryKey": true,99          "notNull": true,100          "default": "gen_random_uuid()"101        },102        "admin_id": {103          "name": "admin_id",104          "type": "uuid",105          "primaryKey": false,106          "notNull": true107        },108        "token_hash": {109          "name": "token_hash",110          "type": "text",111          "primaryKey": false,112          "notNull": true113        },114        "created_at": {115          "name": "created_at",116          "type": "timestamp with time zone",117          "primaryKey": false,118          "notNull": true,119          "default": "now()"120        },121        "expires_at": {122          "name": "expires_at",123          "type": "timestamp with time zone",124          "primaryKey": false,125          "notNull": true126        },127        "ip": {128          "name": "ip",129          "type": "varchar(64)",130          "primaryKey": false,131          "notNull": false132        }133      },134      "indexes": {135        "admin_sessions_token_idx": {136          "name": "admin_sessions_token_idx",137          "columns": [138            {139              "expression": "token_hash",140              "isExpression": false,141              "asc": true,142              "nulls": "last"143            }144          ],145          "isUnique": true,146          "concurrently": false,147          "method": "btree",148          "with": {}149        }150      },151      "foreignKeys": {152        "admin_sessions_admin_id_admin_users_id_fk": {153          "name": "admin_sessions_admin_id_admin_users_id_fk",154          "tableFrom": "admin_sessions",155          "tableTo": "admin_users",156          "columnsFrom": [157            "admin_id"158          ],159          "columnsTo": [160            "id"161          ],162          "onDelete": "cascade",163          "onUpdate": "no action"164        }165      },166      "compositePrimaryKeys": {},167      "uniqueConstraints": {},168      "policies": {},169      "checkConstraints": {},170      "isRLSEnabled": false171    },172    "public.admin_users": {173      "name": "admin_users",174      "schema": "",175      "columns": {176        "id": {177          "name": "id",178          "type": "uuid",179          "primaryKey": true,180          "notNull": true,181          "default": "gen_random_uuid()"182        },183        "username": {184          "name": "username",185          "type": "varchar(32)",186          "primaryKey": false,187          "notNull": true188        },189        "password_hash": {190          "name": "password_hash",191          "type": "text",192          "primaryKey": false,193          "notNull": true194        },195        "totp_secret": {196          "name": "totp_secret",197          "type": "text",198          "primaryKey": false,199          "notNull": true200        },201        "role": {202          "name": "role",203          "type": "varchar(16)",204          "primaryKey": false,205          "notNull": true,206          "default": "'admin'"207        },208        "created_at": {209          "name": "created_at",210          "type": "timestamp with time zone",211          "primaryKey": false,212          "notNull": true,213          "default": "now()"214        },215        "last_login_at": {216          "name": "last_login_at",217          "type": "timestamp with time zone",218          "primaryKey": false,219          "notNull": false220        },221        "disabled": {222          "name": "disabled",223          "type": "boolean",224          "primaryKey": false,225          "notNull": true,226          "default": false227        }228      },229      "indexes": {230        "admin_users_username_idx": {231          "name": "admin_users_username_idx",232          "columns": [233            {234              "expression": "username",235              "isExpression": false,236              "asc": true,237              "nulls": "last"238            }239          ],240          "isUnique": true,241          "concurrently": false,242          "method": "btree",243          "with": {}244        }245      },246      "foreignKeys": {},247      "compositePrimaryKeys": {},248      "uniqueConstraints": {},249      "policies": {},250      "checkConstraints": {},251      "isRLSEnabled": false252    },253    "public.credit_transactions": {254      "name": "credit_transactions",255      "schema": "",256      "columns": {257        "id": {258          "name": "id",259          "type": "uuid",260          "primaryKey": true,261          "notNull": true,262          "default": "gen_random_uuid()"263        },264        "user_id": {265          "name": "user_id",266          "type": "uuid",267          "primaryKey": false,268          "notNull": true269        },270        "type": {271          "name": "type",272          "type": "varchar(24)",273          "primaryKey": false,274          "notNull": true275        },276        "amount": {277          "name": "amount",278          "type": "bigint",279          "primaryKey": false,280          "notNull": true281        },282        "balance_after": {283          "name": "balance_after",284          "type": "bigint",285          "primaryKey": false,286          "notNull": true287        },288        "reference": {289          "name": "reference",290          "type": "text",291          "primaryKey": false,292          "notNull": false293        },294        "meta": {295          "name": "meta",296          "type": "jsonb",297          "primaryKey": false,298          "notNull": false299        },300        "created_at": {301          "name": "created_at",302          "type": "timestamp with time zone",303          "primaryKey": false,304          "notNull": true,305          "default": "now()"306        }307      },308      "indexes": {309        "ctx_user_created_idx": {310          "name": "ctx_user_created_idx",311          "columns": [312            {313              "expression": "user_id",314              "isExpression": false,315              "asc": true,316              "nulls": "last"317            },318            {319              "expression": "created_at",320              "isExpression": false,321              "asc": true,322              "nulls": "last"323            }324          ],325          "isUnique": false,326          "concurrently": false,327          "method": "btree",328          "with": {}329        },330        "ctx_type_idx": {331          "name": "ctx_type_idx",332          "columns": [333            {334              "expression": "type",335              "isExpression": false,336              "asc": true,337              "nulls": "last"338            }339          ],340          "isUnique": false,341          "concurrently": false,342          "method": "btree",343          "with": {}344        },345        "ctx_reference_idx": {346          "name": "ctx_reference_idx",347          "columns": [348            {349              "expression": "reference",350              "isExpression": false,351              "asc": true,352              "nulls": "last"353            }354          ],355          "isUnique": false,356          "concurrently": false,357          "method": "btree",358          "with": {}359        }360      },361      "foreignKeys": {362        "credit_transactions_user_id_users_id_fk": {363          "name": "credit_transactions_user_id_users_id_fk",364          "tableFrom": "credit_transactions",365          "tableTo": "users",366          "columnsFrom": [367            "user_id"368          ],369          "columnsTo": [370            "id"371          ],372          "onDelete": "cascade",373          "onUpdate": "no action"374        }375      },376      "compositePrimaryKeys": {},377      "uniqueConstraints": {},378      "policies": {},379      "checkConstraints": {},380      "isRLSEnabled": false381    },382    "public.daily_rewards": {383      "name": "daily_rewards",384      "schema": "",385      "columns": {386        "user_id": {387          "name": "user_id",388          "type": "uuid",389          "primaryKey": true,390          "notNull": true391        },392        "streak_day": {393          "name": "streak_day",394          "type": "integer",395          "primaryKey": false,396          "notNull": true,397          "default": 0398        },399        "last_claimed_at": {400          "name": "last_claimed_at",401          "type": "timestamp with time zone",402          "primaryKey": false,403          "notNull": false404        },405        "next_available_at": {406          "name": "next_available_at",407          "type": "timestamp with time zone",408          "primaryKey": false,409          "notNull": false410        },411        "total_claimed": {412          "name": "total_claimed",413          "type": "bigint",414          "primaryKey": false,415          "notNull": true,416          "default": 0417        },418        "claims": {419          "name": "claims",420          "type": "integer",421          "primaryKey": false,422          "notNull": true,423          "default": 0424        }425      },426      "indexes": {},427      "foreignKeys": {428        "daily_rewards_user_id_users_id_fk": {429          "name": "daily_rewards_user_id_users_id_fk",430          "tableFrom": "daily_rewards",431          "tableTo": "users",432          "columnsFrom": [433            "user_id"434          ],435          "columnsTo": [436            "id"437          ],438          "onDelete": "cascade",439          "onUpdate": "no action"440        }441      },442      "compositePrimaryKeys": {},443      "uniqueConstraints": {},444      "policies": {},445      "checkConstraints": {},446      "isRLSEnabled": false447    },448    "public.favorites": {449      "name": "favorites",450      "schema": "",451      "columns": {452        "user_id": {453          "name": "user_id",454          "type": "uuid",455          "primaryKey": false,456          "notNull": true457        },458        "game_id": {459          "name": "game_id",460          "type": "uuid",461          "primaryKey": false,462          "notNull": true463        },464        "created_at": {465          "name": "created_at",466          "type": "timestamp with time zone",467          "primaryKey": false,468          "notNull": true,469          "default": "now()"470        }471      },472      "indexes": {},473      "foreignKeys": {474        "favorites_user_id_users_id_fk": {475          "name": "favorites_user_id_users_id_fk",476          "tableFrom": "favorites",477          "tableTo": "users",478          "columnsFrom": [479            "user_id"480          ],481          "columnsTo": [482            "id"483          ],484          "onDelete": "cascade",485          "onUpdate": "no action"486        },487        "favorites_game_id_games_id_fk": {488          "name": "favorites_game_id_games_id_fk",489          "tableFrom": "favorites",490          "tableTo": "games",491          "columnsFrom": [492            "game_id"493          ],494          "columnsTo": [495            "id"496          ],497          "onDelete": "cascade",498          "onUpdate": "no action"499        }500      },501      "compositePrimaryKeys": {502        "favorites_user_id_game_id_pk": {503          "name": "favorites_user_id_game_id_pk",504          "columns": [505            "user_id",506            "game_id"507          ]508        }509      },510      "uniqueConstraints": {},511      "policies": {},512      "checkConstraints": {},513      "isRLSEnabled": false514    },515    "public.feature_flags": {516      "name": "feature_flags",517      "schema": "",518      "columns": {519        "key": {520          "name": "key",521          "type": "varchar(64)",522          "primaryKey": true,523          "notNull": true524        },525        "enabled": {526          "name": "enabled",527          "type": "boolean",528          "primaryKey": false,529          "notNull": true,530          "default": true531        },532        "description": {533          "name": "description",534          "type": "text",535          "primaryKey": false,536          "notNull": false537        },538        "updated_at": {539          "name": "updated_at",540          "type": "timestamp with time zone",541          "primaryKey": false,542          "notNull": true,543          "default": "now()"544        }545      },546      "indexes": {},547      "foreignKeys": {},548      "compositePrimaryKeys": {},549      "uniqueConstraints": {},550      "policies": {},551      "checkConstraints": {},552      "isRLSEnabled": false553    },554    "public.game_rounds": {555      "name": "game_rounds",556      "schema": "",557      "columns": {558        "id": {559          "name": "id",560          "type": "uuid",561          "primaryKey": true,562          "notNull": true,563          "default": "gen_random_uuid()"564        },565        "round_id": {566          "name": "round_id",567          "type": "varchar(32)",568          "primaryKey": false,569          "notNull": true570        },571        "user_id": {572          "name": "user_id",573          "type": "uuid",574          "primaryKey": false,575          "notNull": true576        },577        "game_id": {578          "name": "game_id",579          "type": "uuid",580          "primaryKey": false,581          "notNull": true582        },583        "game_slug": {584          "name": "game_slug",585          "type": "varchar(64)",586          "primaryKey": false,587          "notNull": true588        },589        "game_version": {590          "name": "game_version",591          "type": "varchar(16)",592          "primaryKey": false,593          "notNull": true594        },595        "client_round_id": {596          "name": "client_round_id",597          "type": "uuid",598          "primaryKey": false,599          "notNull": true600        },601        "bet": {602          "name": "bet",603          "type": "bigint",604          "primaryKey": false,605          "notNull": true606        },607        "win": {608          "name": "win",609          "type": "bigint",610          "primaryKey": false,611          "notNull": true612        },613        "multiplier": {614          "name": "multiplier",615          "type": "numeric(12, 4)",616          "primaryKey": false,617          "notNull": true618        },619        "balance_after": {620          "name": "balance_after",621          "type": "bigint",622          "primaryKey": false,623          "notNull": true624        },625        "result": {626          "name": "result",627          "type": "jsonb",628          "primaryKey": false,629          "notNull": true630        },631        "features": {632          "name": "features",633          "type": "text[]",634          "primaryKey": false,635          "notNull": true,636          "default": "'{}'::text[]"637        },638        "free_spins": {639          "name": "free_spins",640          "type": "boolean",641          "primaryKey": false,642          "notNull": true,643          "default": false644        },645        "bonus": {646          "name": "bonus",647          "type": "boolean",648          "primaryKey": false,649          "notNull": true,650          "default": false651        },652        "jackpot_tier": {653          "name": "jackpot_tier",654          "type": "varchar(8)",655          "primaryKey": false,656          "notNull": false657        },658        "rng_reference": {659          "name": "rng_reference",660          "type": "text",661          "primaryKey": false,662          "notNull": true663        },664        "duration_ms": {665          "name": "duration_ms",666          "type": "integer",667          "primaryKey": false,668          "notNull": false669        },670        "created_at": {671          "name": "created_at",672          "type": "timestamp with time zone",673          "primaryKey": false,674          "notNull": true,675          "default": "now()"676        }677      },678      "indexes": {679        "game_rounds_round_id_idx": {680          "name": "game_rounds_round_id_idx",681          "columns": [682            {683              "expression": "round_id",684              "isExpression": false,685              "asc": true,686              "nulls": "last"687            }688          ],689          "isUnique": true,690          "concurrently": false,691          "method": "btree",692          "with": {}693        },694        "game_rounds_user_client_idx": {695          "name": "game_rounds_user_client_idx",696          "columns": [697            {698              "expression": "user_id",699              "isExpression": false,700              "asc": true,701              "nulls": "last"702            },703            {704              "expression": "client_round_id",705              "isExpression": false,706              "asc": true,707              "nulls": "last"708            }709          ],710          "isUnique": true,711          "concurrently": false,712          "method": "btree",713          "with": {}714        },715        "game_rounds_user_created_idx": {716          "name": "game_rounds_user_created_idx",717          "columns": [718            {719              "expression": "user_id",720              "isExpression": false,721              "asc": true,722              "nulls": "last"723            },724            {725              "expression": "created_at",726              "isExpression": false,727              "asc": true,728              "nulls": "last"729            }730          ],731          "isUnique": false,732          "concurrently": false,733          "method": "btree",734          "with": {}735        },736        "game_rounds_game_created_idx": {737          "name": "game_rounds_game_created_idx",738          "columns": [739            {740              "expression": "game_id",741              "isExpression": false,742              "asc": true,743              "nulls": "last"744            },745            {746              "expression": "created_at",747              "isExpression": false,748              "asc": true,749              "nulls": "last"750            }751          ],752          "isUnique": false,753          "concurrently": false,754          "method": "btree",755          "with": {}756        },757        "game_rounds_created_idx": {758          "name": "game_rounds_created_idx",759          "columns": [760            {761              "expression": "created_at",762              "isExpression": false,763              "asc": true,764              "nulls": "last"765            }766          ],767          "isUnique": false,768          "concurrently": false,769          "method": "btree",770          "with": {}771        },772        "game_rounds_win_idx": {773          "name": "game_rounds_win_idx",774          "columns": [775            {776              "expression": "win",777              "isExpression": false,778              "asc": true,779              "nulls": "last"780            }781          ],782          "isUnique": false,783          "concurrently": false,784          "method": "btree",785          "with": {}786        }787      },788      "foreignKeys": {789        "game_rounds_user_id_users_id_fk": {790          "name": "game_rounds_user_id_users_id_fk",791          "tableFrom": "game_rounds",792          "tableTo": "users",793          "columnsFrom": [794            "user_id"795          ],796          "columnsTo": [797            "id"798          ],799          "onDelete": "cascade",800          "onUpdate": "no action"801        },802        "game_rounds_game_id_games_id_fk": {803          "name": "game_rounds_game_id_games_id_fk",804          "tableFrom": "game_rounds",805          "tableTo": "games",806          "columnsFrom": [807            "game_id"808          ],809          "columnsTo": [810            "id"811          ],812          "onDelete": "no action",813          "onUpdate": "no action"814        }815      },816      "compositePrimaryKeys": {},817      "uniqueConstraints": {},818      "policies": {},819      "checkConstraints": {},820      "isRLSEnabled": false821    },822    "public.game_states": {823      "name": "game_states",824      "schema": "",825      "columns": {826        "user_id": {827          "name": "user_id",828          "type": "uuid",829          "primaryKey": false,830          "notNull": true831        },832        "game_id": {833          "name": "game_id",834          "type": "uuid",835          "primaryKey": false,836          "notNull": true837        },838        "state": {839          "name": "state",840          "type": "jsonb",841          "primaryKey": false,842          "notNull": true843        },844        "updated_at": {845          "name": "updated_at",846          "type": "timestamp with time zone",847          "primaryKey": false,848          "notNull": true,849          "default": "now()"850        }851      },852      "indexes": {},853      "foreignKeys": {854        "game_states_user_id_users_id_fk": {855          "name": "game_states_user_id_users_id_fk",856          "tableFrom": "game_states",857          "tableTo": "users",858          "columnsFrom": [859            "user_id"860          ],861          "columnsTo": [862            "id"863          ],864          "onDelete": "cascade",865          "onUpdate": "no action"866        },867        "game_states_game_id_games_id_fk": {868          "name": "game_states_game_id_games_id_fk",869          "tableFrom": "game_states",870          "tableTo": "games",871          "columnsFrom": [872            "game_id"873          ],874          "columnsTo": [875            "id"876          ],877          "onDelete": "cascade",878          "onUpdate": "no action"879        }880      },881      "compositePrimaryKeys": {882        "game_states_user_id_game_id_pk": {883          "name": "game_states_user_id_game_id_pk",884          "columns": [885            "user_id",886            "game_id"887          ]888        }889      },890      "uniqueConstraints": {},891      "policies": {},892      "checkConstraints": {},893      "isRLSEnabled": false894    },895    "public.game_statistics": {896      "name": "game_statistics",897      "schema": "",898      "columns": {899        "game_id": {900          "name": "game_id",901          "type": "uuid",902          "primaryKey": true,903          "notNull": true904        },905        "launches": {906          "name": "launches",907          "type": "bigint",908          "primaryKey": false,909          "notNull": true,910          "default": 0911        },912        "spins": {913          "name": "spins",914          "type": "bigint",915          "primaryKey": false,916          "notNull": true,917          "default": 0918        },919        "wagered": {920          "name": "wagered",921          "type": "bigint",922          "primaryKey": false,923          "notNull": true,924          "default": 0925        },926        "won": {927          "name": "won",928          "type": "bigint",929          "primaryKey": false,930          "notNull": true,931          "default": 0932        },933        "wins": {934          "name": "wins",935          "type": "bigint",936          "primaryKey": false,937          "notNull": true,938          "default": 0939        },940        "bonuses": {941          "name": "bonuses",942          "type": "bigint",943          "primaryKey": false,944          "notNull": true,945          "default": 0946        },947        "free_spins": {948          "name": "free_spins",949          "type": "bigint",950          "primaryKey": false,951          "notNull": true,952          "default": 0953        },954        "big_wins": {955          "name": "big_wins",956          "type": "bigint",957          "primaryKey": false,958          "notNull": true,959          "default": 0960        },961        "max_win": {962          "name": "max_win",963          "type": "bigint",964          "primaryKey": false,965          "notNull": true,966          "default": 0967        },968        "max_multiplier": {969          "name": "max_multiplier",970          "type": "numeric(12, 2)",971          "primaryKey": false,972          "notNull": true,973          "default": "'0'"974        },975        "favorites": {976          "name": "favorites",977          "type": "integer",978          "primaryKey": false,979          "notNull": true,980          "default": 0981        },982        "updated_at": {983          "name": "updated_at",984          "type": "timestamp with time zone",985          "primaryKey": false,986          "notNull": true,987          "default": "now()"988        }989      },990      "indexes": {},991      "foreignKeys": {992        "game_statistics_game_id_games_id_fk": {993          "name": "game_statistics_game_id_games_id_fk",994          "tableFrom": "game_statistics",995          "tableTo": "games",996          "columnsFrom": [997            "game_id"998          ],999          "columnsTo": [1000            "id"1001          ],1002          "onDelete": "cascade",1003          "onUpdate": "no action"1004        }1005      },1006      "compositePrimaryKeys": {},1007      "uniqueConstraints": {},1008      "policies": {},1009      "checkConstraints": {},1010      "isRLSEnabled": false1011    },1012    "public.game_versions": {1013      "name": "game_versions",1014      "schema": "",1015      "columns": {1016        "id": {1017          "name": "id",1018          "type": "uuid",1019          "primaryKey": true,1020          "notNull": true,1021          "default": "gen_random_uuid()"1022        },1023        "game_id": {1024          "name": "game_id",1025          "type": "uuid",1026          "primaryKey": false,1027          "notNull": true1028        },1029        "version": {1030          "name": "version",1031          "type": "varchar(16)",1032          "primaryKey": false,1033          "notNull": true1034        },1035        "definition": {1036          "name": "definition",1037          "type": "jsonb",1038          "primaryKey": false,1039          "notNull": true1040        },1041        "definition_hash": {1042          "name": "definition_hash",1043          "type": "varchar(64)",1044          "primaryKey": false,1045          "notNull": true1046        },1047        "certification": {1048          "name": "certification",1049          "type": "jsonb",1050          "primaryKey": false,1051          "notNull": false1052        },1053        "status": {1054          "name": "status",1055          "type": "varchar(16)",1056          "primaryKey": false,1057          "notNull": true,1058          "default": "'draft'"1059        },1060        "created_at": {1061          "name": "created_at",1062          "type": "timestamp with time zone",1063          "primaryKey": false,1064          "notNull": true,1065          "default": "now()"1066        }1067      },1068      "indexes": {1069        "game_versions_game_version_idx": {1070          "name": "game_versions_game_version_idx",1071          "columns": [1072            {1073              "expression": "game_id",1074              "isExpression": false,1075              "asc": true,1076              "nulls": "last"1077            },1078            {1079              "expression": "version",1080              "isExpression": false,1081              "asc": true,1082              "nulls": "last"1083            }1084          ],1085          "isUnique": true,1086          "concurrently": false,1087          "method": "btree",1088          "with": {}1089        }1090      },1091      "foreignKeys": {1092        "game_versions_game_id_games_id_fk": {1093          "name": "game_versions_game_id_games_id_fk",1094          "tableFrom": "game_versions",1095          "tableTo": "games",1096          "columnsFrom": [1097            "game_id"1098          ],1099          "columnsTo": [1100            "id"1101          ],1102          "onDelete": "cascade",1103          "onUpdate": "no action"1104        }1105      },1106      "compositePrimaryKeys": {},1107      "uniqueConstraints": {},1108      "policies": {},1109      "checkConstraints": {},1110      "isRLSEnabled": false1111    },1112    "public.games": {1113      "name": "games",1114      "schema": "",1115      "columns": {1116        "id": {1117          "name": "id",1118          "type": "uuid",1119          "primaryKey": true,1120          "notNull": true,1121          "default": "gen_random_uuid()"1122        },1123        "slug": {1124          "name": "slug",1125          "type": "varchar(64)",1126          "primaryKey": false,1127          "notNull": true1128        },1129        "name": {1130          "name": "name",1131          "type": "varchar(80)",1132          "primaryKey": false,1133          "notNull": true1134        },1135        "version": {1136          "name": "version",1137          "type": "varchar(16)",1138          "primaryKey": false,1139          "notNull": true1140        },1141        "lifecycle": {1142          "name": "lifecycle",1143          "type": "varchar(16)",1144          "primaryKey": false,1145          "notNull": true,1146          "default": "'draft'"1147        },1148        "sort_order": {1149          "name": "sort_order",1150          "type": "integer",1151          "primaryKey": false,1152          "notNull": true,1153          "default": 01154        },1155        "is_featured": {1156          "name": "is_featured",1157          "type": "boolean",1158          "primaryKey": false,1159          "notNull": true,1160          "default": false1161        },1162        "is_new": {1163          "name": "is_new",1164          "type": "boolean",1165          "primaryKey": false,1166          "notNull": true,1167          "default": true1168        },1169        "summary": {1170          "name": "summary",1171          "type": "jsonb",1172          "primaryKey": false,1173          "notNull": true1174        },1175        "created_at": {1176          "name": "created_at",1177          "type": "timestamp with time zone",1178          "primaryKey": false,1179          "notNull": true,1180          "default": "now()"1181        },1182        "published_at": {1183          "name": "published_at",1184          "type": "timestamp with time zone",1185          "primaryKey": false,1186          "notNull": false1187        },1188        "updated_at": {1189          "name": "updated_at",1190          "type": "timestamp with time zone",1191          "primaryKey": false,1192          "notNull": true,1193          "default": "now()"1194        }1195      },1196      "indexes": {1197        "games_slug_idx": {1198          "name": "games_slug_idx",1199          "columns": [1200            {1201              "expression": "slug",1202              "isExpression": false,1203              "asc": true,1204              "nulls": "last"1205            }1206          ],1207          "isUnique": true,1208          "concurrently": false,1209          "method": "btree",1210          "with": {}1211        }1212      },1213      "foreignKeys": {},1214      "compositePrimaryKeys": {},1215      "uniqueConstraints": {},1216      "policies": {},1217      "checkConstraints": {},1218      "isRLSEnabled": false1219    },1220    "public.leaderboards": {1221      "name": "leaderboards",1222      "schema": "",1223      "columns": {1224        "id": {1225          "name": "id",1226          "type": "uuid",1227          "primaryKey": true,1228          "notNull": true,1229          "default": "gen_random_uuid()"1230        },1231        "category": {1232          "name": "category",1233          "type": "varchar(32)",1234          "primaryKey": false,1235          "notNull": true1236        },1237        "period_key": {1238          "name": "period_key",1239          "type": "varchar(16)",1240          "primaryKey": false,1241          "notNull": true1242        },1243        "user_id": {1244          "name": "user_id",1245          "type": "uuid",1246          "primaryKey": false,1247          "notNull": true1248        },1249        "value": {1250          "name": "value",1251          "type": "numeric(18, 2)",1252          "primaryKey": false,1253          "notNull": true1254        },1255        "game_slug": {1256          "name": "game_slug",1257          "type": "varchar(64)",1258          "primaryKey": false,1259          "notNull": false1260        },1261        "round_id": {1262          "name": "round_id",1263          "type": "varchar(32)",1264          "primaryKey": false,1265          "notNull": false1266        },1267        "updated_at": {1268          "name": "updated_at",1269          "type": "timestamp with time zone",1270          "primaryKey": false,1271          "notNull": true,1272          "default": "now()"1273        }1274      },1275      "indexes": {1276        "leaderboards_unique_idx": {1277          "name": "leaderboards_unique_idx",1278          "columns": [1279            {1280              "expression": "category",1281              "isExpression": false,1282              "asc": true,1283              "nulls": "last"1284            },1285            {1286              "expression": "period_key",1287              "isExpression": false,1288              "asc": true,1289              "nulls": "last"1290            },1291            {1292              "expression": "user_id",1293              "isExpression": false,1294              "asc": true,1295              "nulls": "last"1296            }1297          ],1298          "isUnique": true,1299          "concurrently": false,1300          "method": "btree",1301          "with": {}1302        },1303        "leaderboards_rank_idx": {1304          "name": "leaderboards_rank_idx",1305          "columns": [1306            {1307              "expression": "category",1308              "isExpression": false,1309              "asc": true,1310              "nulls": "last"1311            },1312            {1313              "expression": "period_key",1314              "isExpression": false,1315              "asc": true,1316              "nulls": "last"1317            },1318            {1319              "expression": "value",1320              "isExpression": false,1321              "asc": true,1322              "nulls": "last"1323            }1324          ],1325          "isUnique": false,1326          "concurrently": false,1327          "method": "btree",1328          "with": {}1329        }1330      },1331      "foreignKeys": {1332        "leaderboards_user_id_users_id_fk": {1333          "name": "leaderboards_user_id_users_id_fk",1334          "tableFrom": "leaderboards",1335          "tableTo": "users",1336          "columnsFrom": [1337            "user_id"1338          ],1339          "columnsTo": [1340            "id"1341          ],1342          "onDelete": "cascade",1343          "onUpdate": "no action"1344        }1345      },1346      "compositePrimaryKeys": {},1347      "uniqueConstraints": {},1348      "policies": {},1349      "checkConstraints": {},1350      "isRLSEnabled": false1351    },1352    "public.missions": {1353      "name": "missions",1354      "schema": "",1355      "columns": {1356        "key": {1357          "name": "key",1358          "type": "varchar(48)",1359          "primaryKey": true,1360          "notNull": true1361        },1362        "name": {1363          "name": "name",1364          "type": "varchar(80)",1365          "primaryKey": false,1366          "notNull": true1367        },1368        "description": {1369          "name": "description",1370          "type": "text",1371          "primaryKey": false,1372          "notNull": true1373        },1374        "period": {1375          "name": "period",1376          "type": "varchar(8)",1377          "primaryKey": false,1378          "notNull": true1379        },1380        "metric": {1381          "name": "metric",1382          "type": "varchar(32)",1383          "primaryKey": false,1384          "notNull": true1385        },1386        "target": {1387          "name": "target",1388          "type": "bigint",1389          "primaryKey": false,1390          "notNull": true1391        },1392        "reward_credits": {1393          "name": "reward_credits",1394          "type": "integer",1395          "primaryKey": false,1396          "notNull": true,1397          "default": 01398        },1399        "reward_xp": {1400          "name": "reward_xp",1401          "type": "integer",1402          "primaryKey": false,1403          "notNull": true,1404          "default": 01405        },1406        "enabled": {1407          "name": "enabled",1408          "type": "boolean",1409          "primaryKey": false,1410          "notNull": true,1411          "default": true1412        },1413        "sort_order": {1414          "name": "sort_order",1415          "type": "integer",1416          "primaryKey": false,1417          "notNull": true,1418          "default": 01419        }1420      },1421      "indexes": {},1422      "foreignKeys": {},1423      "compositePrimaryKeys": {},1424      "uniqueConstraints": {},1425      "policies": {},1426      "checkConstraints": {},1427      "isRLSEnabled": false1428    },1429    "public.platform_settings": {1430      "name": "platform_settings",1431      "schema": "",1432      "columns": {1433        "key": {1434          "name": "key",1435          "type": "varchar(64)",1436          "primaryKey": true,1437          "notNull": true1438        },1439        "value": {1440          "name": "value",1441          "type": "jsonb",1442          "primaryKey": false,1443          "notNull": true1444        },1445        "updated_at": {1446          "name": "updated_at",1447          "type": "timestamp with time zone",1448          "primaryKey": false,1449          "notNull": true,1450          "default": "now()"1451        }1452      },1453      "indexes": {},1454      "foreignKeys": {},1455      "compositePrimaryKeys": {},1456      "uniqueConstraints": {},1457      "policies": {},1458      "checkConstraints": {},1459      "isRLSEnabled": false1460    },1461    "public.player_levels": {1462      "name": "player_levels",1463      "schema": "",1464      "columns": {1465        "level": {1466          "name": "level",1467          "type": "integer",1468          "primaryKey": true,1469          "notNull": true1470        },1471        "xp_required": {1472          "name": "xp_required",1473          "type": "bigint",1474          "primaryKey": false,1475          "notNull": true1476        },1477        "xp_cumulative": {1478          "name": "xp_cumulative",1479          "type": "bigint",1480          "primaryKey": false,1481          "notNull": true1482        },1483        "reward_credits": {1484          "name": "reward_credits",1485          "type": "integer",1486          "primaryKey": false,1487          "notNull": true1488        },1489        "title": {1490          "name": "title",1491          "type": "varchar(48)",1492          "primaryKey": false,1493          "notNull": true1494        }1495      },1496      "indexes": {},1497      "foreignKeys": {},1498      "compositePrimaryKeys": {},1499      "uniqueConstraints": {},1500      "policies": {},1501      "checkConstraints": {},1502      "isRLSEnabled": false1503    },1504    "public.recovery_codes": {1505      "name": "recovery_codes",1506      "schema": "",1507      "columns": {1508        "user_id": {1509          "name": "user_id",1510          "type": "uuid",1511          "primaryKey": true,1512          "notNull": true1513        },1514        "code_hash": {1515          "name": "code_hash",1516          "type": "text",1517          "primaryKey": false,1518          "notNull": true1519        },1520        "created_at": {1521          "name": "created_at",1522          "type": "timestamp with time zone",1523          "primaryKey": false,1524          "notNull": true,1525          "default": "now()"1526        },1527        "rotated_at": {1528          "name": "rotated_at",1529          "type": "timestamp with time zone",1530          "primaryKey": false,1531          "notNull": false1532        },1533        "used_at": {1534          "name": "used_at",1535          "type": "timestamp with time zone",1536          "primaryKey": false,1537          "notNull": false1538        },1539        "use_count": {1540          "name": "use_count",1541          "type": "integer",1542          "primaryKey": false,1543          "notNull": true,1544          "default": 01545        }1546      },1547      "indexes": {},1548      "foreignKeys": {1549        "recovery_codes_user_id_users_id_fk": {1550          "name": "recovery_codes_user_id_users_id_fk",1551          "tableFrom": "recovery_codes",1552          "tableTo": "users",1553          "columnsFrom": [1554            "user_id"1555          ],1556          "columnsTo": [1557            "id"1558          ],1559          "onDelete": "cascade",1560          "onUpdate": "no action"1561        }1562      },1563      "compositePrimaryKeys": {},1564      "uniqueConstraints": {},1565      "policies": {},1566      "checkConstraints": {},1567      "isRLSEnabled": false1568    },1569    "public.security_events": {1570      "name": "security_events",1571      "schema": "",1572      "columns": {1573        "id": {1574          "name": "id",1575          "type": "uuid",1576          "primaryKey": true,1577          "notNull": true,1578          "default": "gen_random_uuid()"1579        },1580        "user_id": {1581          "name": "user_id",1582          "type": "uuid",1583          "primaryKey": false,1584          "notNull": false1585        },1586        "admin_id": {1587          "name": "admin_id",1588          "type": "uuid",1589          "primaryKey": false,1590          "notNull": false1591        },1592        "type": {1593          "name": "type",1594          "type": "varchar(48)",1595          "primaryKey": false,1596          "notNull": true1597        },1598        "severity": {1599          "name": "severity",1600          "type": "varchar(8)",1601          "primaryKey": false,1602          "notNull": true,1603          "default": "'info'"1604        },1605        "ip": {1606          "name": "ip",1607          "type": "varchar(64)",1608          "primaryKey": false,1609          "notNull": false1610        },1611        "user_agent": {1612          "name": "user_agent",1613          "type": "text",1614          "primaryKey": false,1615          "notNull": false1616        },1617        "meta": {1618          "name": "meta",1619          "type": "jsonb",1620          "primaryKey": false,1621          "notNull": false1622        },1623        "created_at": {1624          "name": "created_at",1625          "type": "timestamp with time zone",1626          "primaryKey": false,1627          "notNull": true,1628          "default": "now()"1629        }1630      },1631      "indexes": {1632        "security_events_created_idx": {1633          "name": "security_events_created_idx",1634          "columns": [1635            {1636              "expression": "created_at",1637              "isExpression": false,1638              "asc": true,1639              "nulls": "last"1640            }1641          ],1642          "isUnique": false,1643          "concurrently": false,1644          "method": "btree",1645          "with": {}1646        },1647        "security_events_type_idx": {1648          "name": "security_events_type_idx",1649          "columns": [1650            {1651              "expression": "type",1652              "isExpression": false,1653              "asc": true,1654              "nulls": "last"1655            }1656          ],1657          "isUnique": false,1658          "concurrently": false,1659          "method": "btree",1660          "with": {}1661        },1662        "security_events_user_idx": {1663          "name": "security_events_user_idx",1664          "columns": [1665            {1666              "expression": "user_id",1667              "isExpression": false,1668              "asc": true,1669              "nulls": "last"1670            }1671          ],1672          "isUnique": false,1673          "concurrently": false,1674          "method": "btree",1675          "with": {}1676        }1677      },1678      "foreignKeys": {1679        "security_events_user_id_users_id_fk": {1680          "name": "security_events_user_id_users_id_fk",1681          "tableFrom": "security_events",1682          "tableTo": "users",1683          "columnsFrom": [1684            "user_id"1685          ],1686          "columnsTo": [1687            "id"1688          ],1689          "onDelete": "set null",1690          "onUpdate": "no action"1691        }1692      },1693      "compositePrimaryKeys": {},1694      "uniqueConstraints": {},1695      "policies": {},1696      "checkConstraints": {},1697      "isRLSEnabled": false1698    },1699    "public.sessions": {1700      "name": "sessions",1701      "schema": "",1702      "columns": {1703        "id": {1704          "name": "id",1705          "type": "uuid",1706          "primaryKey": true,1707          "notNull": true,1708          "default": "gen_random_uuid()"1709        },1710        "user_id": {1711          "name": "user_id",1712          "type": "uuid",1713          "primaryKey": false,1714          "notNull": true1715        },1716        "token_hash": {1717          "name": "token_hash",1718          "type": "text",1719          "primaryKey": false,1720          "notNull": true1721        },1722        "created_at": {1723          "name": "created_at",1724          "type": "timestamp with time zone",1725          "primaryKey": false,1726          "notNull": true,1727          "default": "now()"1728        },1729        "expires_at": {1730          "name": "expires_at",1731          "type": "timestamp with time zone",1732          "primaryKey": false,1733          "notNull": true1734        },1735        "last_seen_at": {1736          "name": "last_seen_at",1737          "type": "timestamp with time zone",1738          "primaryKey": false,1739          "notNull": true,1740          "default": "now()"1741        },1742        "user_agent": {1743          "name": "user_agent",1744          "type": "text",1745          "primaryKey": false,1746          "notNull": false1747        },1748        "ip": {1749          "name": "ip",1750          "type": "varchar(64)",1751          "primaryKey": false,1752          "notNull": false1753        }1754      },1755      "indexes": {1756        "sessions_token_hash_idx": {1757          "name": "sessions_token_hash_idx",1758          "columns": [1759            {1760              "expression": "token_hash",1761              "isExpression": false,1762              "asc": true,1763              "nulls": "last"1764            }1765          ],1766          "isUnique": true,1767          "concurrently": false,1768          "method": "btree",1769          "with": {}1770        },1771        "sessions_user_idx": {1772          "name": "sessions_user_idx",1773          "columns": [1774            {1775              "expression": "user_id",1776              "isExpression": false,1777              "asc": true,1778              "nulls": "last"1779            }1780          ],1781          "isUnique": false,1782          "concurrently": false,1783          "method": "btree",1784          "with": {}1785        }1786      },1787      "foreignKeys": {1788        "sessions_user_id_users_id_fk": {1789          "name": "sessions_user_id_users_id_fk",1790          "tableFrom": "sessions",1791          "tableTo": "users",1792          "columnsFrom": [1793            "user_id"1794          ],1795          "columnsTo": [1796            "id"1797          ],1798          "onDelete": "cascade",1799          "onUpdate": "no action"1800        }1801      },1802      "compositePrimaryKeys": {},1803      "uniqueConstraints": {},1804      "policies": {},1805      "checkConstraints": {},1806      "isRLSEnabled": false1807    },1808    "public.simulation_runs": {1809      "name": "simulation_runs",1810      "schema": "",1811      "columns": {1812        "id": {1813          "name": "id",1814          "type": "uuid",1815          "primaryKey": true,1816          "notNull": true,1817          "default": "gen_random_uuid()"1818        },1819        "game_slug": {1820          "name": "game_slug",1821          "type": "varchar(64)",1822          "primaryKey": false,1823          "notNull": true1824        },1825        "game_version": {1826          "name": "game_version",1827          "type": "varchar(16)",1828          "primaryKey": false,1829          "notNull": true1830        },1831        "spins": {1832          "name": "spins",1833          "type": "bigint",1834          "primaryKey": false,1835          "notNull": true1836        },1837        "status": {1838          "name": "status",1839          "type": "varchar(16)",1840          "primaryKey": false,1841          "notNull": true,1842          "default": "'running'"1843        },1844        "progress": {1845          "name": "progress",1846          "type": "bigint",1847          "primaryKey": false,1848          "notNull": true,1849          "default": 01850        },1851        "result": {1852          "name": "result",1853          "type": "jsonb",1854          "primaryKey": false,1855          "notNull": false1856        },1857        "error": {1858          "name": "error",1859          "type": "text",1860          "primaryKey": false,1861          "notNull": false1862        },1863        "requested_by": {1864          "name": "requested_by",1865          "type": "uuid",1866          "primaryKey": false,1867          "notNull": false1868        },1869        "created_at": {1870          "name": "created_at",1871          "type": "timestamp with time zone",1872          "primaryKey": false,1873          "notNull": true,1874          "default": "now()"1875        },1876        "finished_at": {1877          "name": "finished_at",1878          "type": "timestamp with time zone",1879          "primaryKey": false,1880          "notNull": false1881        }1882      },1883      "indexes": {1884        "simulation_runs_game_idx": {1885          "name": "simulation_runs_game_idx",1886          "columns": [1887            {1888              "expression": "game_slug",1889              "isExpression": false,1890              "asc": true,1891              "nulls": "last"1892            },1893            {1894              "expression": "created_at",1895              "isExpression": false,1896              "asc": true,1897              "nulls": "last"1898            }1899          ],1900          "isUnique": false,1901          "concurrently": false,1902          "method": "btree",1903          "with": {}1904        }1905      },1906      "foreignKeys": {},1907      "compositePrimaryKeys": {},1908      "uniqueConstraints": {},1909      "policies": {},1910      "checkConstraints": {},1911      "isRLSEnabled": false1912    },1913    "public.user_achievements": {1914      "name": "user_achievements",1915      "schema": "",1916      "columns": {1917        "user_id": {1918          "name": "user_id",1919          "type": "uuid",1920          "primaryKey": false,1921          "notNull": true1922        },1923        "achievement_key": {1924          "name": "achievement_key",1925          "type": "varchar(48)",1926          "primaryKey": false,1927          "notNull": true1928        },1929        "unlocked_at": {1930          "name": "unlocked_at",1931          "type": "timestamp with time zone",1932          "primaryKey": false,1933          "notNull": true,1934          "default": "now()"1935        }1936      },1937      "indexes": {},1938      "foreignKeys": {1939        "user_achievements_user_id_users_id_fk": {1940          "name": "user_achievements_user_id_users_id_fk",1941          "tableFrom": "user_achievements",1942          "tableTo": "users",1943          "columnsFrom": [1944            "user_id"1945          ],1946          "columnsTo": [1947            "id"1948          ],1949          "onDelete": "cascade",1950          "onUpdate": "no action"1951        },1952        "user_achievements_achievement_key_achievements_key_fk": {1953          "name": "user_achievements_achievement_key_achievements_key_fk",1954          "tableFrom": "user_achievements",1955          "tableTo": "achievements",1956          "columnsFrom": [1957            "achievement_key"1958          ],1959          "columnsTo": [1960            "key"1961          ],1962          "onDelete": "cascade",1963          "onUpdate": "no action"1964        }1965      },1966      "compositePrimaryKeys": {1967        "user_achievements_user_id_achievement_key_pk": {1968          "name": "user_achievements_user_id_achievement_key_pk",1969          "columns": [1970            "user_id",1971            "achievement_key"1972          ]1973        }1974      },1975      "uniqueConstraints": {},1976      "policies": {},1977      "checkConstraints": {},1978      "isRLSEnabled": false1979    },1980    "public.user_game_stats": {1981      "name": "user_game_stats",1982      "schema": "",1983      "columns": {1984        "user_id": {1985          "name": "user_id",1986          "type": "uuid",1987          "primaryKey": false,1988          "notNull": true1989        },1990        "game_id": {1991          "name": "game_id",1992          "type": "uuid",1993          "primaryKey": false,1994          "notNull": true1995        },1996        "spins": {1997          "name": "spins",1998          "type": "bigint",1999          "primaryKey": false,2000          "notNull": true,2001          "default": 02002        },2003        "wagered": {2004          "name": "wagered",2005          "type": "bigint",2006          "primaryKey": false,2007          "notNull": true,2008          "default": 02009        },2010        "won": {2011          "name": "won",2012          "type": "bigint",2013          "primaryKey": false,2014          "notNull": true,2015          "default": 02016        },2017        "bonuses": {2018          "name": "bonuses",2019          "type": "integer",2020          "primaryKey": false,2021          "notNull": true,2022          "default": 02023        },2024        "biggest_win": {2025          "name": "biggest_win",2026          "type": "bigint",2027          "primaryKey": false,2028          "notNull": true,2029          "default": 02030        },2031        "biggest_multiplier": {2032          "name": "biggest_multiplier",2033          "type": "numeric(12, 2)",2034          "primaryKey": false,2035          "notNull": true,2036          "default": "'0'"2037        },2038        "last_played_at": {2039          "name": "last_played_at",2040          "type": "timestamp with time zone",2041          "primaryKey": false,2042          "notNull": true,2043          "default": "now()"2044        },2045        "first_played_at": {2046          "name": "first_played_at",2047          "type": "timestamp with time zone",2048          "primaryKey": false,2049          "notNull": true,2050          "default": "now()"2051        }2052      },2053      "indexes": {2054        "ugs_user_last_idx": {2055          "name": "ugs_user_last_idx",2056          "columns": [2057            {2058              "expression": "user_id",2059              "isExpression": false,2060              "asc": true,2061              "nulls": "last"2062            },2063            {2064              "expression": "last_played_at",2065              "isExpression": false,2066              "asc": true,2067              "nulls": "last"2068            }2069          ],2070          "isUnique": false,2071          "concurrently": false,2072          "method": "btree",2073          "with": {}2074        }2075      },2076      "foreignKeys": {2077        "user_game_stats_user_id_users_id_fk": {2078          "name": "user_game_stats_user_id_users_id_fk",2079          "tableFrom": "user_game_stats",2080          "tableTo": "users",2081          "columnsFrom": [2082            "user_id"2083          ],2084          "columnsTo": [2085            "id"2086          ],2087          "onDelete": "cascade",2088          "onUpdate": "no action"2089        },2090        "user_game_stats_game_id_games_id_fk": {2091          "name": "user_game_stats_game_id_games_id_fk",2092          "tableFrom": "user_game_stats",2093          "tableTo": "games",2094          "columnsFrom": [2095            "game_id"2096          ],2097          "columnsTo": [2098            "id"2099          ],2100          "onDelete": "cascade",2101          "onUpdate": "no action"2102        }2103      },2104      "compositePrimaryKeys": {2105        "user_game_stats_user_id_game_id_pk": {2106          "name": "user_game_stats_user_id_game_id_pk",2107          "columns": [2108            "user_id",2109            "game_id"2110          ]2111        }2112      },2113      "uniqueConstraints": {},2114      "policies": {},2115      "checkConstraints": {},2116      "isRLSEnabled": false2117    },2118    "public.user_missions": {2119      "name": "user_missions",2120      "schema": "",2121      "columns": {2122        "id": {2123          "name": "id",2124          "type": "uuid",2125          "primaryKey": true,2126          "notNull": true,2127          "default": "gen_random_uuid()"2128        },2129        "user_id": {2130          "name": "user_id",2131          "type": "uuid",2132          "primaryKey": false,2133          "notNull": true2134        },2135        "mission_key": {2136          "name": "mission_key",2137          "type": "varchar(48)",2138          "primaryKey": false,2139          "notNull": true2140        },2141        "period_key": {2142          "name": "period_key",2143          "type": "varchar(16)",2144          "primaryKey": false,2145          "notNull": true2146        },2147        "progress": {2148          "name": "progress",2149          "type": "bigint",2150          "primaryKey": false,2151          "notNull": true,2152          "default": 02153        },2154        "progress_set": {2155          "name": "progress_set",2156          "type": "text[]",2157          "primaryKey": false,2158          "notNull": true,2159          "default": "'{}'::text[]"2160        },2161        "completed_at": {2162          "name": "completed_at",2163          "type": "timestamp with time zone",2164          "primaryKey": false,2165          "notNull": false2166        },2167        "claimed_at": {2168          "name": "claimed_at",2169          "type": "timestamp with time zone",2170          "primaryKey": false,2171          "notNull": false2172        },2173        "expires_at": {2174          "name": "expires_at",2175          "type": "timestamp with time zone",2176          "primaryKey": false,2177          "notNull": true2178        }2179      },2180      "indexes": {2181        "user_missions_unique_idx": {2182          "name": "user_missions_unique_idx",2183          "columns": [2184            {2185              "expression": "user_id",2186              "isExpression": false,2187              "asc": true,2188              "nulls": "last"2189            },2190            {2191              "expression": "mission_key",2192              "isExpression": false,2193              "asc": true,2194              "nulls": "last"2195            },2196            {2197              "expression": "period_key",2198              "isExpression": false,2199              "asc": true,2200              "nulls": "last"2201            }2202          ],2203          "isUnique": true,2204          "concurrently": false,2205          "method": "btree",2206          "with": {}2207        },2208        "user_missions_user_idx": {2209          "name": "user_missions_user_idx",2210          "columns": [2211            {2212              "expression": "user_id",2213              "isExpression": false,2214              "asc": true,2215              "nulls": "last"2216            }2217          ],2218          "isUnique": false,2219          "concurrently": false,2220          "method": "btree",2221          "with": {}2222        }2223      },2224      "foreignKeys": {2225        "user_missions_user_id_users_id_fk": {2226          "name": "user_missions_user_id_users_id_fk",2227          "tableFrom": "user_missions",2228          "tableTo": "users",2229          "columnsFrom": [2230            "user_id"2231          ],2232          "columnsTo": [2233            "id"2234          ],2235          "onDelete": "cascade",2236          "onUpdate": "no action"2237        },2238        "user_missions_mission_key_missions_key_fk": {2239          "name": "user_missions_mission_key_missions_key_fk",2240          "tableFrom": "user_missions",2241          "tableTo": "missions",2242          "columnsFrom": [2243            "mission_key"2244          ],2245          "columnsTo": [2246            "key"2247          ],2248          "onDelete": "cascade",2249          "onUpdate": "no action"2250        }2251      },2252      "compositePrimaryKeys": {},2253      "uniqueConstraints": {},2254      "policies": {},2255      "checkConstraints": {},2256      "isRLSEnabled": false2257    },2258    "public.user_settings": {2259      "name": "user_settings",2260      "schema": "",2261      "columns": {2262        "user_id": {2263          "name": "user_id",2264          "type": "uuid",2265          "primaryKey": true,2266          "notNull": true2267        },2268        "sound_enabled": {2269          "name": "sound_enabled",2270          "type": "boolean",2271          "primaryKey": false,2272          "notNull": true,2273          "default": true2274        },2275        "music_volume": {2276          "name": "music_volume",2277          "type": "numeric(3, 2)",2278          "primaryKey": false,2279          "notNull": true,2280          "default": "'0.6'"2281        },2282        "effects_volume": {2283          "name": "effects_volume",2284          "type": "numeric(3, 2)",2285          "primaryKey": false,2286          "notNull": true,2287          "default": "'0.8'"2288        },2289        "master_volume": {2290          "name": "master_volume",2291          "type": "numeric(3, 2)",2292          "primaryKey": false,2293          "notNull": true,2294          "default": "'0.8'"2295        },2296        "reduce_motion": {2297          "name": "reduce_motion",2298          "type": "boolean",2299          "primaryKey": false,2300          "notNull": true,2301          "default": false2302        },2303        "animation_intensity": {2304          "name": "animation_intensity",2305          "type": "varchar(8)",2306          "primaryKey": false,2307          "notNull": true,2308          "default": "'high'"2309        },2310        "session_reminder_minutes": {2311          "name": "session_reminder_minutes",2312          "type": "integer",2313          "primaryKey": false,2314          "notNull": true,2315          "default": 602316        },2317        "break_reminder": {2318          "name": "break_reminder",2319          "type": "boolean",2320          "primaryKey": false,2321          "notNull": true,2322          "default": true2323        },2324        "leaderboard_opt_in": {2325          "name": "leaderboard_opt_in",2326          "type": "boolean",2327          "primaryKey": false,2328          "notNull": true,2329          "default": true2330        },2331        "updated_at": {2332          "name": "updated_at",2333          "type": "timestamp with time zone",2334          "primaryKey": false,2335          "notNull": true,2336          "default": "now()"2337        }2338      },2339      "indexes": {},2340      "foreignKeys": {2341        "user_settings_user_id_users_id_fk": {2342          "name": "user_settings_user_id_users_id_fk",2343          "tableFrom": "user_settings",2344          "tableTo": "users",2345          "columnsFrom": [2346            "user_id"2347          ],2348          "columnsTo": [2349            "id"2350          ],2351          "onDelete": "cascade",2352          "onUpdate": "no action"2353        }2354      },2355      "compositePrimaryKeys": {},2356      "uniqueConstraints": {},2357      "policies": {},2358      "checkConstraints": {},2359      "isRLSEnabled": false2360    },2361    "public.users": {2362      "name": "users",2363      "schema": "",2364      "columns": {2365        "id": {2366          "name": "id",2367          "type": "uuid",2368          "primaryKey": true,2369          "notNull": true,2370          "default": "gen_random_uuid()"2371        },2372        "username": {2373          "name": "username",2374          "type": "varchar(24)",2375          "primaryKey": false,2376          "notNull": true2377        },2378        "username_normalized": {2379          "name": "username_normalized",2380          "type": "varchar(24)",2381          "primaryKey": false,2382          "notNull": true2383        },2384        "password_hash": {2385          "name": "password_hash",2386          "type": "text",2387          "primaryKey": false,2388          "notNull": true2389        },2390        "level": {2391          "name": "level",2392          "type": "integer",2393          "primaryKey": false,2394          "notNull": true,2395          "default": 12396        },2397        "xp": {2398          "name": "xp",2399          "type": "bigint",2400          "primaryKey": false,2401          "notNull": true,2402          "default": 02403        },2404        "status": {2405          "name": "status",2406          "type": "varchar(16)",2407          "primaryKey": false,2408          "notNull": true,2409          "default": "'active'"2410        },2411        "age_confirmed_at": {2412          "name": "age_confirmed_at",2413          "type": "timestamp with time zone",2414          "primaryKey": false,2415          "notNull": false2416        },2417        "created_at": {2418          "name": "created_at",2419          "type": "timestamp with time zone",2420          "primaryKey": false,2421          "notNull": true,2422          "default": "now()"2423        },2424        "last_login_at": {2425          "name": "last_login_at",2426          "type": "timestamp with time zone",2427          "primaryKey": false,2428          "notNull": false2429        },2430        "last_rescue_at": {2431          "name": "last_rescue_at",2432          "type": "timestamp with time zone",2433          "primaryKey": false,2434          "notNull": false2435        },2436        "total_spins": {2437          "name": "total_spins",2438          "type": "bigint",2439          "primaryKey": false,2440          "notNull": true,2441          "default": 02442        },2443        "games_played": {2444          "name": "games_played",2445          "type": "integer",2446          "primaryKey": false,2447          "notNull": true,2448          "default": 02449        },2450        "biggest_win": {2451          "name": "biggest_win",2452          "type": "bigint",2453          "primaryKey": false,2454          "notNull": true,2455          "default": 02456        },2457        "biggest_multiplier": {2458          "name": "biggest_multiplier",2459          "type": "numeric(12, 2)",2460          "primaryKey": false,2461          "notNull": true,2462          "default": "'0'"2463        }2464      },2465      "indexes": {2466        "users_username_normalized_idx": {2467          "name": "users_username_normalized_idx",2468          "columns": [2469            {2470              "expression": "username_normalized",2471              "isExpression": false,2472              "asc": true,2473              "nulls": "last"2474            }2475          ],2476          "isUnique": true,2477          "concurrently": false,2478          "method": "btree",2479          "with": {}2480        },2481        "users_username_idx": {2482          "name": "users_username_idx",2483          "columns": [2484            {2485              "expression": "username",2486              "isExpression": false,2487              "asc": true,2488              "nulls": "last"2489            }2490          ],2491          "isUnique": true,2492          "concurrently": false,2493          "method": "btree",2494          "with": {}2495        }2496      },2497      "foreignKeys": {},2498      "compositePrimaryKeys": {},2499      "uniqueConstraints": {},2500      "policies": {},2501      "checkConstraints": {},2502      "isRLSEnabled": false2503    },2504    "public.wallets": {2505      "name": "wallets",2506      "schema": "",2507      "columns": {2508        "user_id": {2509          "name": "user_id",2510          "type": "uuid",2511          "primaryKey": true,2512          "notNull": true2513        },2514        "balance": {2515          "name": "balance",2516          "type": "bigint",2517          "primaryKey": false,2518          "notNull": true,2519          "default": 02520        },2521        "lifetime_wagered": {2522          "name": "lifetime_wagered",2523          "type": "bigint",2524          "primaryKey": false,2525          "notNull": true,2526          "default": 02527        },2528        "lifetime_won": {2529          "name": "lifetime_won",2530          "type": "bigint",2531          "primaryKey": false,2532          "notNull": true,2533          "default": 02534        },2535        "lifetime_granted": {2536          "name": "lifetime_granted",2537          "type": "bigint",2538          "primaryKey": false,2539          "notNull": true,2540          "default": 02541        },2542        "updated_at": {2543          "name": "updated_at",2544          "type": "timestamp with time zone",2545          "primaryKey": false,2546          "notNull": true,2547          "default": "now()"2548        }2549      },2550      "indexes": {},2551      "foreignKeys": {2552        "wallets_user_id_users_id_fk": {2553          "name": "wallets_user_id_users_id_fk",2554          "tableFrom": "wallets",2555          "tableTo": "users",2556          "columnsFrom": [2557            "user_id"2558          ],2559          "columnsTo": [2560            "id"2561          ],2562          "onDelete": "cascade",2563          "onUpdate": "no action"2564        }2565      },2566      "compositePrimaryKeys": {},2567      "uniqueConstraints": {},2568      "policies": {},2569      "checkConstraints": {},2570      "isRLSEnabled": false2571    }2572  },2573  "enums": {},2574  "schemas": {},2575  "sequences": {},2576  "roles": {},2577  "policies": {},2578  "views": {},2579  "_meta": {2580    "columns": {},2581    "schemas": {},2582    "tables": {}2583  }2584}