{ "id": "7a39edf8-ec83-4a5e-a228-8ab0a5bde3c7", "prevId": "f787ddd6-318e-4c93-aece-16ee95317091", "version": "7", "dialect": "postgresql", "tables": { "public.app_settings": { "name": "app_settings", "schema": "", "columns": { "id": { "name": "id", "type": "text", "primaryKey": true, "notNull": true, "default": "'default'" }, "registration_message": { "name": "registration_message", "type": "text", "primaryKey": false, "notNull": true, "default": "'Please register your Minecraft account before joining.'" }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.events": { "name": "events", "schema": "", "columns": { "id": { "name": "id", "type": "uuid", "primaryKey": true, "notNull": true }, "spec_version": { "name": "spec_version", "type": "text", "primaryKey": false, "notNull": true, "default": "'1.0'" }, "source": { "name": "source", "type": "text", "primaryKey": false, "notNull": true }, "type": { "name": "type", "type": "text", "primaryKey": false, "notNull": true }, "subject": { "name": "subject", "type": "text", "primaryKey": false, "notNull": false }, "time": { "name": "time", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true }, "data_content_type": { "name": "data_content_type", "type": "text", "primaryKey": false, "notNull": true, "default": "'application/json'" }, "data_schema": { "name": "data_schema", "type": "text", "primaryKey": false, "notNull": false }, "data": { "name": "data", "type": "jsonb", "primaryKey": false, "notNull": true }, "actor_user_id": { "name": "actor_user_id", "type": "uuid", "primaryKey": false, "notNull": false }, "ip_address": { "name": "ip_address", "type": "inet", "primaryKey": false, "notNull": false }, "correlation_id": { "name": "correlation_id", "type": "uuid", "primaryKey": false, "notNull": false }, "published_at": { "name": "published_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "events_time_idx": { "name": "events_time_idx", "columns": [ { "expression": "time", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} }, "events_type_time_idx": { "name": "events_type_time_idx", "columns": [ { "expression": "type", "isExpression": false, "asc": true, "nulls": "last" }, { "expression": "time", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} }, "events_subject_time_idx": { "name": "events_subject_time_idx", "columns": [ { "expression": "subject", "isExpression": false, "asc": true, "nulls": "last" }, { "expression": "time", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} }, "events_unpublished_idx": { "name": "events_unpublished_idx", "columns": [ { "expression": "created_at", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "where": "\"events\".\"published_at\" is null", "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "events_actor_user_id_users_id_fk": { "name": "events_actor_user_id_users_id_fk", "tableFrom": "events", "tableTo": "users", "columnsFrom": [ "actor_user_id" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.groups": { "name": "groups", "schema": "", "columns": { "id": { "name": "id", "type": "uuid", "primaryKey": true, "notNull": true, "default": "gen_random_uuid()" }, "name": { "name": "name", "type": "varchar(50)", "primaryKey": false, "notNull": true }, "slug": { "name": "slug", "type": "varchar(50)", "primaryKey": false, "notNull": true }, "description": { "name": "description", "type": "text", "primaryKey": false, "notNull": false }, "access_enabled": { "name": "access_enabled", "type": "boolean", "primaryKey": false, "notNull": true, "default": false }, "is_default": { "name": "is_default", "type": "boolean", "primaryKey": false, "notNull": true, "default": false }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "groups_slug_uidx": { "name": "groups_slug_uidx", "columns": [ { "expression": "lower(\"slug\")", "asc": true, "isExpression": true, "nulls": "last" } ], "isUnique": true, "concurrently": false, "method": "btree", "with": {} }, "groups_one_default_uidx": { "name": "groups_one_default_uidx", "columns": [ { "expression": "is_default", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "where": "\"groups\".\"is_default\" = true", "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.ip_intelligence": { "name": "ip_intelligence", "schema": "", "columns": { "ip_address": { "name": "ip_address", "type": "inet", "primaryKey": true, "notNull": true }, "classification": { "name": "classification", "type": "ip_classification", "typeSchema": "public", "primaryKey": false, "notNull": true, "default": "'unknown'" }, "provider": { "name": "provider", "type": "text", "primaryKey": false, "notNull": false }, "raw_response": { "name": "raw_response", "type": "jsonb", "primaryKey": false, "notNull": false }, "checked_at": { "name": "checked_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "expires_at": { "name": "expires_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": {}, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.ip_observations": { "name": "ip_observations", "schema": "", "columns": { "id": { "name": "id", "type": "uuid", "primaryKey": true, "notNull": true, "default": "gen_random_uuid()" }, "user_id": { "name": "user_id", "type": "uuid", "primaryKey": false, "notNull": false }, "minecraft_account_id": { "name": "minecraft_account_id", "type": "uuid", "primaryKey": false, "notNull": false }, "source": { "name": "source", "type": "ip_observation_source", "typeSchema": "public", "primaryKey": false, "notNull": true }, "ip_address": { "name": "ip_address", "type": "inet", "primaryKey": false, "notNull": true }, "minecraft_uuid": { "name": "minecraft_uuid", "type": "varchar(32)", "primaryKey": false, "notNull": false }, "username": { "name": "username", "type": "varchar(16)", "primaryKey": false, "notNull": false }, "classification": { "name": "classification", "type": "ip_classification", "typeSchema": "public", "primaryKey": false, "notNull": true, "default": "'unknown'" }, "observed_at": { "name": "observed_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "ip_observations_user_observed_idx": { "name": "ip_observations_user_observed_idx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" }, { "expression": "observed_at", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} }, "ip_observations_account_observed_idx": { "name": "ip_observations_account_observed_idx", "columns": [ { "expression": "minecraft_account_id", "isExpression": false, "asc": true, "nulls": "last" }, { "expression": "observed_at", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "ip_observations_user_id_users_id_fk": { "name": "ip_observations_user_id_users_id_fk", "tableFrom": "ip_observations", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" }, "ip_observations_minecraft_account_id_minecraft_accounts_id_fk": { "name": "ip_observations_minecraft_account_id_minecraft_accounts_id_fk", "tableFrom": "ip_observations", "tableTo": "minecraft_accounts", "columnsFrom": [ "minecraft_account_id" ], "columnsTo": [ "id" ], "onDelete": "set null", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.login_codes": { "name": "login_codes", "schema": "", "columns": { "id": { "name": "id", "type": "uuid", "primaryKey": true, "notNull": true, "default": "gen_random_uuid()" }, "token_hash": { "name": "token_hash", "type": "text", "primaryKey": false, "notNull": true }, "discord_user_id": { "name": "discord_user_id", "type": "text", "primaryKey": false, "notNull": true }, "discord_username": { "name": "discord_username", "type": "text", "primaryKey": false, "notNull": true }, "discord_global_name": { "name": "discord_global_name", "type": "text", "primaryKey": false, "notNull": false }, "expires_at": { "name": "expires_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true }, "consumed_at": { "name": "consumed_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "login_codes_token_hash_uidx": { "name": "login_codes_token_hash_uidx", "columns": [ { "expression": "token_hash", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "concurrently": false, "method": "btree", "with": {} }, "login_codes_discord_user_idx": { "name": "login_codes_discord_user_idx", "columns": [ { "expression": "discord_user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} }, "login_codes_expires_idx": { "name": "login_codes_expires_idx", "columns": [ { "expression": "expires_at", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.minecraft_accounts": { "name": "minecraft_accounts", "schema": "", "columns": { "id": { "name": "id", "type": "uuid", "primaryKey": true, "notNull": true, "default": "gen_random_uuid()" }, "user_id": { "name": "user_id", "type": "uuid", "primaryKey": false, "notNull": true }, "minecraft_uuid": { "name": "minecraft_uuid", "type": "varchar(32)", "primaryKey": false, "notNull": false }, "username": { "name": "username", "type": "varchar(16)", "primaryKey": false, "notNull": true }, "validation_status": { "name": "validation_status", "type": "minecraft_validation_status", "typeSchema": "public", "primaryKey": false, "notNull": true }, "is_primary": { "name": "is_primary", "type": "boolean", "primaryKey": false, "notNull": true, "default": false }, "last_verified_at": { "name": "last_verified_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "deleted_at": { "name": "deleted_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "minecraft_accounts_user_idx": { "name": "minecraft_accounts_user_idx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} }, "minecraft_accounts_active_uuid_uidx": { "name": "minecraft_accounts_active_uuid_uidx", "columns": [ { "expression": "minecraft_uuid", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "where": "\"minecraft_accounts\".\"deleted_at\" is null and \"minecraft_accounts\".\"minecraft_uuid\" is not null", "concurrently": false, "method": "btree", "with": {} }, "minecraft_accounts_active_username_uidx": { "name": "minecraft_accounts_active_username_uidx", "columns": [ { "expression": "lower(\"username\")", "asc": true, "isExpression": true, "nulls": "last" } ], "isUnique": true, "where": "\"minecraft_accounts\".\"deleted_at\" is null", "concurrently": false, "method": "btree", "with": {} }, "minecraft_accounts_one_primary_per_user_uidx": { "name": "minecraft_accounts_one_primary_per_user_uidx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "where": "\"minecraft_accounts\".\"is_primary\" = true and \"minecraft_accounts\".\"deleted_at\" is null", "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "minecraft_accounts_user_id_users_id_fk": { "name": "minecraft_accounts_user_id_users_id_fk", "tableFrom": "minecraft_accounts", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.plugin_credentials": { "name": "plugin_credentials", "schema": "", "columns": { "id": { "name": "id", "type": "uuid", "primaryKey": true, "notNull": true, "default": "gen_random_uuid()" }, "server_id": { "name": "server_id", "type": "text", "primaryKey": false, "notNull": true }, "secret_hash": { "name": "secret_hash", "type": "text", "primaryKey": false, "notNull": true }, "revoked_at": { "name": "revoked_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "plugin_credentials_server_id_uidx": { "name": "plugin_credentials_server_id_uidx", "columns": [ { "expression": "server_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.plugin_requests": { "name": "plugin_requests", "schema": "", "columns": { "request_id": { "name": "request_id", "type": "uuid", "primaryKey": true, "notNull": true }, "server_id": { "name": "server_id", "type": "text", "primaryKey": false, "notNull": true }, "received_at": { "name": "received_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "expires_at": { "name": "expires_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true } }, "indexes": { "plugin_requests_expires_idx": { "name": "plugin_requests_expires_idx", "columns": [ { "expression": "expires_at", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "plugin_requests_server_id_plugin_credentials_server_id_fk": { "name": "plugin_requests_server_id_plugin_credentials_server_id_fk", "tableFrom": "plugin_requests", "tableTo": "plugin_credentials", "columnsFrom": [ "server_id" ], "columnsTo": [ "server_id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.sessions": { "name": "sessions", "schema": "", "columns": { "id": { "name": "id", "type": "uuid", "primaryKey": true, "notNull": true, "default": "gen_random_uuid()" }, "user_id": { "name": "user_id", "type": "uuid", "primaryKey": false, "notNull": true }, "token_hash": { "name": "token_hash", "type": "text", "primaryKey": false, "notNull": true }, "expires_at": { "name": "expires_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true }, "last_seen_at": { "name": "last_seen_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "revoked_at": { "name": "revoked_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "sessions_token_hash_uidx": { "name": "sessions_token_hash_uidx", "columns": [ { "expression": "token_hash", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "concurrently": false, "method": "btree", "with": {} }, "sessions_user_idx": { "name": "sessions_user_idx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} }, "sessions_expires_idx": { "name": "sessions_expires_idx", "columns": [ { "expression": "expires_at", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "sessions_user_id_users_id_fk": { "name": "sessions_user_id_users_id_fk", "tableFrom": "sessions", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.user_group_memberships": { "name": "user_group_memberships", "schema": "", "columns": { "user_id": { "name": "user_id", "type": "uuid", "primaryKey": false, "notNull": true }, "group_id": { "name": "group_id", "type": "uuid", "primaryKey": false, "notNull": true }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "user_group_memberships_user_uidx": { "name": "user_group_memberships_user_uidx", "columns": [ { "expression": "user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "concurrently": false, "method": "btree", "with": {} }, "user_group_memberships_group_idx": { "name": "user_group_memberships_group_idx", "columns": [ { "expression": "group_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": false, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": { "user_group_memberships_user_id_users_id_fk": { "name": "user_group_memberships_user_id_users_id_fk", "tableFrom": "user_group_memberships", "tableTo": "users", "columnsFrom": [ "user_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" }, "user_group_memberships_group_id_groups_id_fk": { "name": "user_group_memberships_group_id_groups_id_fk", "tableFrom": "user_group_memberships", "tableTo": "groups", "columnsFrom": [ "group_id" ], "columnsTo": [ "id" ], "onDelete": "cascade", "onUpdate": "no action" } }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false }, "public.users": { "name": "users", "schema": "", "columns": { "id": { "name": "id", "type": "uuid", "primaryKey": true, "notNull": true, "default": "gen_random_uuid()" }, "discord_user_id": { "name": "discord_user_id", "type": "text", "primaryKey": false, "notNull": true }, "discord_username": { "name": "discord_username", "type": "text", "primaryKey": false, "notNull": true }, "discord_global_name": { "name": "discord_global_name", "type": "text", "primaryKey": false, "notNull": false }, "first_name": { "name": "first_name", "type": "text", "primaryKey": false, "notNull": false }, "onboarding_completed_at": { "name": "onboarding_completed_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": false }, "created_at": { "name": "created_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" }, "updated_at": { "name": "updated_at", "type": "timestamp (3) with time zone", "primaryKey": false, "notNull": true, "default": "now()" } }, "indexes": { "users_discord_user_id_uidx": { "name": "users_discord_user_id_uidx", "columns": [ { "expression": "discord_user_id", "isExpression": false, "asc": true, "nulls": "last" } ], "isUnique": true, "concurrently": false, "method": "btree", "with": {} } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, "policies": {}, "checkConstraints": {}, "isRLSEnabled": false } }, "enums": { "public.ip_classification": { "name": "ip_classification", "schema": "public", "values": [ "unknown", "clear", "vpn", "proxy", "hosting", "tor" ] }, "public.ip_observation_source": { "name": "ip_observation_source", "schema": "public", "values": [ "web", "game" ] }, "public.minecraft_validation_status": { "name": "minecraft_validation_status", "schema": "public", "values": [ "verified", "user_confirmed" ] } }, "schemas": {}, "sequences": {}, "roles": {}, "policies": {}, "views": {}, "_meta": { "columns": {}, "schemas": {}, "tables": {} } }