/* tslint:disable */ /* eslint-disable */ /** * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:db-schema` to regenerate this file. */ import type {} from "@payloadcms/db-postgres"; import { pgTable, index, uniqueIndex, foreignKey, serial, varchar, timestamp, numeric, integer, jsonb, boolean, type AnyPgColumn, pgEnum, } from "@payloadcms/db-postgres/drizzle/pg-core"; import { sql, relations } from "@payloadcms/db-postgres/drizzle"; export const enum_users_roles = pgEnum("enum_users_roles", ["guest", "user", "admin", "developer"]); export const enum_awards_type = pgEnum("enum_awards_type", ["commendation", "ribbon", "medal"]); export const enum_assignments_type = pgEnum("enum_assignments_type", [ "division", "squad", "team", "special", ]); export const enum_missions_factions_involved_threat_level = pgEnum( "enum_missions_factions_involved_threat_level", ["ally", "friendly", "neutral", "hostile"], ); export const enum_missions_logistics_and_support_insertion = pgEnum( "enum_missions_logistics_and_support_insertion", ["helicopter", "aircraft", "paradrop", "boat", "car", "onFoot"], ); export const enum_missions_logistics_and_support_extraction = pgEnum( "enum_missions_logistics_and_support_extraction", ["helicopter", "aircraft", "paradrop", "boat", "car", "onFoot"], ); export const enum_missions_operation_type = pgEnum("enum_missions_operation_type", [ "main", "side", "external", ]); export const enum_missions_classification_mission_type = pgEnum( "enum_missions_classification_mission_type", ["Zeus", "PvE", "PvP", "PvPvE", "Training", "Special"], ); export const enum_missions_ownership_and_status_status = pgEnum( "enum_missions_ownership_and_status_status", ["Concept", "Planning", "Ready", "Scheduled", "Active", "Completed", "Cancelled"], ); export const enum_missions_ownership_and_status_visibility = pgEnum( "enum_missions_ownership_and_status_visibility", ["unit", "leadership", "intel", "private"], ); export const enum_missions_civilian_presence = pgEnum("enum_missions_civilian_presence", [ "None", "Low", "Medium", "High", ]); export const enum_campaigns_status = pgEnum("enum_campaigns_status", [ "concept", "inProgress", "completed", ]); export const enum_factions_type = pgEnum("enum_factions_type", [ "majorFaction", "minorFaction", "corporation", "special", ]); export const enum_technologies_type = pgEnum("enum_technologies_type", ["asset", "upgrade"]); export const enum_assets_asset_type = pgEnum("enum_assets_asset_type", [ "weapon", "magazine", "optic", "muzzle", "bipod", "uniform", "vest", "backpack", "helmet", "facewear", "nvg", "radio", "medical", "tool", "explosive", "miscellaneous", ]); export const enum_assets_weapon_configuration_slot_type = pgEnum( "enum_assets_weapon_configuration_slot_type", ["primary", "secondary", "launcher"], ); export const enum_assets_nightvision_configuration_nvg_generation = pgEnum( "enum_assets_nightvision_configuration_nvg_generation", ["gen1", "gen2", "gen3"], ); export const enum_assets_market_trading_rarity = pgEnum("enum_assets_market_trading_rarity", [ "basic", "common", "uncommon", "rare", "veryRare", "epic", "legendary", "unique", ]); export const enum_resources_type = pgEnum("enum_resources_type", [ "physical", "fluid", "energy", "abstract", ]); export const enum_resources_rarity = pgEnum("enum_resources_rarity", [ "common", "uncommon", "rare", "epic", "legendary", "exotic", "unique", ]); export const enum_vehicles_category = pgEnum("enum_vehicles_category", [ "civilian", "utility", "transport", "weaponized", "military", ]); export const enum_vehicles_pylons_pylon_type = pgEnum("enum_vehicles_pylons_pylon_type", [ "mountedWeapon", "pylon", ]); export const enum_vehicles_armor_rating = pgEnum("enum_vehicles_armor_rating", [ "none", "light", "medium", "heavy", "composite", ]); export const enum_structures_category = pgEnum("enum_structures_category", [ "logistics", "military", "civilian", ]); export const enum_structures_terrain_type = pgEnum("enum_structures_terrain_type", [ "land", "water", ]); export const enum_structures_function_type = pgEnum("enum_structures_function_type", [ "producer", "storage", "sensor", "converter", "defense", "miscellaneous", ]); export const media = pgTable( "media", { id: serial("id").primaryKey(), alt: varchar("alt"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), url: varchar("url"), thumbnailURL: varchar("thumbnail_u_r_l"), filename: varchar("filename"), mimeType: varchar("mime_type"), filesize: numeric("filesize"), width: numeric("width"), height: numeric("height"), focalX: numeric("focal_x"), focalY: numeric("focal_y"), }, (columns) => [ index("media_updated_at_idx").on(columns.updatedAt), index("media_created_at_idx").on(columns.createdAt), uniqueIndex("media_filename_idx").on(columns.filename), ], ); export const users_roles = pgTable( "users_roles", { order: integer("order").notNull(), parent: integer("parent_id").notNull(), value: enum_users_roles("value"), id: serial("id").primaryKey(), }, (columns) => [ index("users_roles_order_idx").on(columns.order), index("users_roles_parent_idx").on(columns.parent), foreignKey({ columns: [columns["parent"]], foreignColumns: [users.id], name: "users_roles_parent_fk", }).onDelete("cascade"), ], ); export const users_sessions = pgTable( "users_sessions", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }), expiresAt: timestamp("expires_at", { mode: "string", withTimezone: true, precision: 3, }).notNull(), }, (columns) => [ index("users_sessions_order_idx").on(columns._order), index("users_sessions_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [users.id], name: "users_sessions_parent_id_fk", }).onDelete("cascade"), ], ); export const users = pgTable( "users", { id: serial("id").primaryKey(), discordUsername: varchar("discord_username").notNull(), displayName: varchar("display_name").notNull(), payloadDisplayName: varchar("payload_display_name"), steamId: varchar("steam_id").notNull(), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), email: varchar("email"), username: varchar("username").notNull(), resetPasswordToken: varchar("reset_password_token"), resetPasswordExpiration: timestamp("reset_password_expiration", { mode: "string", withTimezone: true, precision: 3, }), salt: varchar("salt"), hash: varchar("hash"), loginAttempts: numeric("login_attempts").default("0"), lockUntil: timestamp("lock_until", { mode: "string", withTimezone: true, precision: 3 }), }, (columns) => [ uniqueIndex("users_discord_username_idx").on(columns.discordUsername), index("users_updated_at_idx").on(columns.updatedAt), index("users_created_at_idx").on(columns.createdAt), uniqueIndex("users_username_idx").on(columns.username), ], ); export const ranks = pgTable( "ranks", { id: serial("id").primaryKey(), _order: varchar("_order"), name: varchar("name").notNull(), abbreviation: varchar("abbreviation").notNull(), description: varchar("description").notNull(), insignia: integer("insignia_id").references(() => media.id, { onDelete: "set null", }), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("ranks__order_idx").on(columns._order), uniqueIndex("ranks_name_idx").on(columns.name), uniqueIndex("ranks_abbreviation_idx").on(columns.abbreviation), index("ranks_insignia_idx").on(columns.insignia), index("ranks_updated_at_idx").on(columns.updatedAt), index("ranks_created_at_idx").on(columns.createdAt), ], ); export const profiles = pgTable( "profiles", { id: serial("id").primaryKey(), user: integer("user_id") .notNull() .references(() => users.id, { onDelete: "set null", }), rank: integer("rank_id") .notNull() .references(() => ranks.id, { onDelete: "set null", }), dossier_personalExcerpt: varchar("dossier_personal_excerpt"), dossier_intelExcerpt: jsonb("dossier_intel_excerpt"), progression_scoreboard_infantryKills: numeric("progression_scoreboard_infantry_kills").default( "0", ), progression_scoreboard_vehicleKills: numeric("progression_scoreboard_vehicle_kills").default( "0", ), progression_scoreboard_armorKills: numeric("progression_scoreboard_armor_kills").default("0"), progression_scoreboard_airKills: numeric("progression_scoreboard_air_kills").default("0"), progression_scoreboard_deaths: numeric("progression_scoreboard_deaths").default("0"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("profiles_user_idx").on(columns.user), index("profiles_rank_idx").on(columns.rank), index("profiles_updated_at_idx").on(columns.updatedAt), index("profiles_created_at_idx").on(columns.createdAt), ], ); export const profiles_rels = pgTable( "profiles_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), awardsID: integer("awards_id"), }, (columns) => [ index("profiles_rels_order_idx").on(columns.order), index("profiles_rels_parent_idx").on(columns.parent), index("profiles_rels_path_idx").on(columns.path), index("profiles_rels_awards_id_idx").on(columns.awardsID), foreignKey({ columns: [columns["parent"]], foreignColumns: [profiles.id], name: "profiles_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["awardsID"]], foreignColumns: [awards.id], name: "profiles_rels_awards_fk", }).onDelete("cascade"), ], ); export const awards = pgTable( "awards", { id: serial("id").primaryKey(), name: varchar("name").notNull(), description: jsonb("description").notNull(), type: enum_awards_type("type").default("commendation"), image: integer("image_id").references(() => media.id, { onDelete: "set null", }), experiencePoints: numeric("experience_points"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ uniqueIndex("awards_name_idx").on(columns.name), index("awards_image_idx").on(columns.image), index("awards_updated_at_idx").on(columns.updatedAt), index("awards_created_at_idx").on(columns.createdAt), ], ); export const qualifications = pgTable( "qualifications", { id: serial("id").primaryKey(), name: varchar("name").notNull(), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ uniqueIndex("qualifications_name_idx").on(columns.name), index("qualifications_updated_at_idx").on(columns.updatedAt), index("qualifications_created_at_idx").on(columns.createdAt), ], ); export const assignments = pgTable( "assignments", { id: serial("id").primaryKey(), name: varchar("name").notNull(), type: enum_assignments_type("type").notNull(), callsign: varchar("callsign"), description: jsonb("description"), leader: integer("leader_id").references(() => users.id, { onDelete: "set null", }), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("assignments_leader_idx").on(columns.leader), index("assignments_updated_at_idx").on(columns.updatedAt), index("assignments_created_at_idx").on(columns.createdAt), ], ); export const assignments_rels = pgTable( "assignments_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), assignmentsID: integer("assignments_id"), usersID: integer("users_id"), }, (columns) => [ index("assignments_rels_order_idx").on(columns.order), index("assignments_rels_parent_idx").on(columns.parent), index("assignments_rels_path_idx").on(columns.path), index("assignments_rels_assignments_id_idx").on(columns.assignmentsID), index("assignments_rels_users_id_idx").on(columns.usersID), foreignKey({ columns: [columns["parent"]], foreignColumns: [assignments.id], name: "assignments_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["assignmentsID"]], foreignColumns: [assignments.id], name: "assignments_rels_assignments_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["usersID"]], foreignColumns: [users.id], name: "assignments_rels_users_fk", }).onDelete("cascade"), ], ); export const missions_mission_roles_provided_roles = pgTable( "missions_mission_roles_provided_roles", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), roleName: varchar("role_name").notNull(), missionCritical: boolean("mission_critical").default(true), minimumRank: integer("minimum_rank_id").references(() => ranks.id, { onDelete: "set null", }), }, (columns) => [ index("missions_mission_roles_provided_roles_order_idx").on(columns._order), index("missions_mission_roles_provided_roles_parent_id_idx").on(columns._parentID), index("missions_mission_roles_provided_roles_minimum_rank_idx").on(columns.minimumRank), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [missions.id], name: "missions_mission_roles_provided_roles_parent_id_fk", }).onDelete("cascade"), ], ); export const missions_briefing = pgTable( "missions_briefing", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), sectionName: varchar("section_name").notNull(), details: jsonb("details").notNull(), }, (columns) => [ index("missions_briefing_order_idx").on(columns._order), index("missions_briefing_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [missions.id], name: "missions_briefing_parent_id_fk", }).onDelete("cascade"), ], ); export const missions_mission_objectives = pgTable( "missions_mission_objectives", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), title: varchar("title").notNull(), description: varchar("description"), missionCritical: boolean("mission_critical").default(true), successOrFailConditions: varchar("success_or_fail_conditions"), }, (columns) => [ index("missions_mission_objectives_order_idx").on(columns._order), index("missions_mission_objectives_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [missions.id], name: "missions_mission_objectives_parent_id_fk", }).onDelete("cascade"), ], ); export const missions_factions_involved = pgTable( "missions_factions_involved", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), factionName: varchar("faction_name").notNull(), threatLevel: enum_missions_factions_involved_threat_level("threat_level") .notNull() .default("hostile"), }, (columns) => [ index("missions_factions_involved_order_idx").on(columns._order), index("missions_factions_involved_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [missions.id], name: "missions_factions_involved_parent_id_fk", }).onDelete("cascade"), ], ); export const missions_logistics_and_support_insertion = pgTable( "missions_logistics_and_support_insertion", { order: integer("order").notNull(), parent: integer("parent_id").notNull(), value: enum_missions_logistics_and_support_insertion("value"), id: serial("id").primaryKey(), }, (columns) => [ index("missions_logistics_and_support_insertion_order_idx").on(columns.order), index("missions_logistics_and_support_insertion_parent_idx").on(columns.parent), foreignKey({ columns: [columns["parent"]], foreignColumns: [missions.id], name: "missions_logistics_and_support_insertion_parent_fk", }).onDelete("cascade"), ], ); export const missions_logistics_and_support_extraction = pgTable( "missions_logistics_and_support_extraction", { order: integer("order").notNull(), parent: integer("parent_id").notNull(), value: enum_missions_logistics_and_support_extraction("value"), id: serial("id").primaryKey(), }, (columns) => [ index("missions_logistics_and_support_extraction_order_idx").on(columns.order), index("missions_logistics_and_support_extraction_parent_idx").on(columns.parent), foreignKey({ columns: [columns["parent"]], foreignColumns: [missions.id], name: "missions_logistics_and_support_extraction_parent_fk", }).onDelete("cascade"), ], ); export const missions_logistics_and_support_assets_available = pgTable( "missions_logistics_and_support_assets_available", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), assetType: varchar("asset_type").notNull(), assetCount: varchar("asset_count"), doesRespawn: boolean("does_respawn"), assetCallsign: varchar("asset_callsign"), }, (columns) => [ index("missions_logistics_and_support_assets_available_order_idx").on(columns._order), index("missions_logistics_and_support_assets_available_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [missions.id], name: "missions_logistics_and_support_assets_available_parent_id_fk", }).onDelete("cascade"), ], ); export const missions_comms_and_docs_frequencies = pgTable( "missions_comms_and_docs_frequencies", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), frequency: numeric("frequency").notNull(), channel: numeric("channel"), netName: varchar("net_name").notNull(), freqUsage: varchar("freq_usage").notNull(), }, (columns) => [ index("missions_comms_and_docs_frequencies_order_idx").on(columns._order), index("missions_comms_and_docs_frequencies_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [missions.id], name: "missions_comms_and_docs_frequencies_parent_id_fk", }).onDelete("cascade"), ], ); export const missions = pgTable( "missions", { id: serial("id").primaryKey(), name: varchar("name").notNull(), codeName: varchar("code_name").notNull(), summary: varchar("summary").notNull(), operationType: enum_missions_operation_type("operation_type").notNull(), classification_map: integer("classification_map_id") .notNull() .references(() => maps.id, { onDelete: "set null", }), classification_missionType: enum_missions_classification_mission_type( "classification_mission_type", ) .notNull() .default("Zeus"), classification_campaign: integer("classification_campaign_id") .notNull() .references(() => campaigns.id, { onDelete: "set null", }), classification_customScripts: boolean("classification_custom_scripts"), classification_startDateTime: timestamp("classification_start_date_time", { mode: "string", withTimezone: true, precision: 3, }).notNull(), classification_estimatedDuration: numeric("classification_estimated_duration") .notNull() .default("240"), ownershipAndStatus_status: enum_missions_ownership_and_status_status( "ownership_and_status_status", ) .notNull() .default("Concept"), ownershipAndStatus_visibility: enum_missions_ownership_and_status_visibility( "ownership_and_status_visibility", ) .notNull() .default("leadership"), missionRoles_maxPlayers: numeric("mission_roles_max_players").notNull().default("32"), missionRoles_notes: varchar("mission_roles_notes"), civilianPresence: enum_missions_civilian_presence("civilian_presence").default("None"), gameDetails_serverDetails_serverIp: varchar("game_details_server_details_server_ip") .notNull() .default("arma.onyxsimple.com"), gameDetails_serverDetails_serverPort: numeric("game_details_server_details_server_port") .notNull() .default("2302"), gameDetails_serverDetails_serverPassword: varchar( "game_details_server_details_server_password", ).default("ptf313"), gameDetails_gameSetup_missionFile: integer("game_details_game_setup_mission_file_id") .notNull() .references(() => mission_files.id, { onDelete: "set null", }), gameDetails_gameSetup_requiredMods: integer( "game_details_game_setup_required_mods_id", ).references(() => mod_lists.id, { onDelete: "set null", }), commsAndDocs_radioPlan: jsonb("comms_and_docs_radio_plan"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ uniqueIndex("missions_code_name_idx").on(columns.codeName), index("missions_classification_classification_map_idx").on(columns.classification_map), index("missions_classification_classification_campaign_idx").on( columns.classification_campaign, ), index("missions_game_details_game_setup_game_details_game_setup_idx").on( columns.gameDetails_gameSetup_missionFile, ), index("missions_game_details_game_setup_game_details_game_set_1_idx").on( columns.gameDetails_gameSetup_requiredMods, ), index("missions_updated_at_idx").on(columns.updatedAt), index("missions_created_at_idx").on(columns.createdAt), ], ); export const missions_rels = pgTable( "missions_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), usersID: integer("users_id"), qualificationsID: integer("qualifications_id"), }, (columns) => [ index("missions_rels_order_idx").on(columns.order), index("missions_rels_parent_idx").on(columns.parent), index("missions_rels_path_idx").on(columns.path), index("missions_rels_users_id_idx").on(columns.usersID), index("missions_rels_qualifications_id_idx").on(columns.qualificationsID), foreignKey({ columns: [columns["parent"]], foreignColumns: [missions.id], name: "missions_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["usersID"]], foreignColumns: [users.id], name: "missions_rels_users_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["qualificationsID"]], foreignColumns: [qualifications.id], name: "missions_rels_qualifications_fk", }).onDelete("cascade"), ], ); export const campaigns = pgTable( "campaigns", { id: serial("id").primaryKey(), name: varchar("name").notNull(), summary: varchar("summary").notNull().default("An Arma 3 campaign."), status: enum_campaigns_status("status").notNull().default("concept"), description: jsonb("description"), startDate: timestamp("start_date", { mode: "string", withTimezone: true, precision: 3 }), endDate: timestamp("end_date", { mode: "string", withTimezone: true, precision: 3 }), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ uniqueIndex("campaigns_name_idx").on(columns.name), index("campaigns_updated_at_idx").on(columns.updatedAt), index("campaigns_created_at_idx").on(columns.createdAt), ], ); export const factions = pgTable( "factions", { id: serial("id").primaryKey(), name: varchar("name").notNull(), type: enum_factions_type("type").notNull().default("minorFaction"), description: jsonb("description"), playableFaction: boolean("playable_faction"), startingFaction: boolean("starting_faction"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ uniqueIndex("factions_name_idx").on(columns.name), index("factions_updated_at_idx").on(columns.updatedAt), index("factions_created_at_idx").on(columns.createdAt), ], ); export const factions_rels = pgTable( "factions_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), campaignsID: integer("campaigns_id"), }, (columns) => [ index("factions_rels_order_idx").on(columns.order), index("factions_rels_parent_idx").on(columns.parent), index("factions_rels_path_idx").on(columns.path), index("factions_rels_campaigns_id_idx").on(columns.campaignsID), foreignKey({ columns: [columns["parent"]], foreignColumns: [factions.id], name: "factions_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["campaignsID"]], foreignColumns: [campaigns.id], name: "factions_rels_campaigns_fk", }).onDelete("cascade"), ], ); export const technologies_requirements_prerequisite_technologies = pgTable( "technologies_requirements_prerequisite_technologies", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), }, (columns) => [ index("technologies_requirements_prerequisite_technologies_order_idx").on(columns._order), index("technologies_requirements_prerequisite_technologies_parent_id_idx").on( columns._parentID, ), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [technologies.id], name: "technologies_requirements_prerequisite_technologies_parent_id_fk", }).onDelete("cascade"), ], ); export const technologies = pgTable( "technologies", { id: serial("id").primaryKey(), name: varchar("name").notNull(), type: enum_technologies_type("type").notNull().default("upgrade"), summary: varchar("summary").notNull(), description: jsonb("description"), requirements_intelligencePoints: numeric("requirements_intelligence_points"), researchCosts_minimumResearchDuration: numeric("research_costs_minimum_research_duration") .notNull() .default("0"), researchCosts_maximumResearchDuration: numeric("research_costs_maximum_research_duration"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("technologies_updated_at_idx").on(columns.updatedAt), index("technologies_created_at_idx").on(columns.createdAt), ], ); export const technologies_rels = pgTable( "technologies_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), technologiesID: integer("technologies_id"), }, (columns) => [ index("technologies_rels_order_idx").on(columns.order), index("technologies_rels_parent_idx").on(columns.parent), index("technologies_rels_path_idx").on(columns.path), index("technologies_rels_technologies_id_idx").on(columns.technologiesID), foreignKey({ columns: [columns["parent"]], foreignColumns: [technologies.id], name: "technologies_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["technologiesID"]], foreignColumns: [technologies.id], name: "technologies_rels_technologies_fk", }).onDelete("cascade"), ], ); export const assets_crafting_crafting_data_inputs = pgTable( "assets_crafting_crafting_data_inputs", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), quantity: numeric("quantity"), lended: boolean("lended"), }, (columns) => [ index("assets_crafting_crafting_data_inputs_order_idx").on(columns._order), index("assets_crafting_crafting_data_inputs_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [assets.id], name: "assets_crafting_crafting_data_inputs_parent_id_fk", }).onDelete("cascade"), ], ); export const assets_crafting_crafting_data_byproducts = pgTable( "assets_crafting_crafting_data_byproducts", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), quantity: numeric("quantity"), }, (columns) => [ index("assets_crafting_crafting_data_byproducts_order_idx").on(columns._order), index("assets_crafting_crafting_data_byproducts_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [assets.id], name: "assets_crafting_crafting_data_byproducts_parent_id_fk", }).onDelete("cascade"), ], ); export const assets = pgTable( "assets", { id: serial("id").primaryKey(), name: varchar("name").notNull(), className: varchar("class_name").notNull().default(""), assetType: enum_assets_asset_type("asset_type").notNull().default("weapon"), "Weapon Configuration_slotType": enum_assets_weapon_configuration_slot_type( "weapon_configuration_slot_type", ), "Nightvision Configuration_nvgGeneration": enum_assets_nightvision_configuration_nvg_generation( "nightvision_configuration_nvg_generation", ), "Nightvision Configuration_nvgHasThermals": boolean( "nightvision_configuration_nvg_has_thermals", ), "Container Configuration_capacityKg": numeric("container_configuration_capacity_kg"), "Container Configuration_weightKg": numeric("container_configuration_weight_kg"), "Magazine Configuration_roundCapacity": numeric("magazine_configuration_round_capacity"), "Magazine Configuration_ammoType": varchar("magazine_configuration_ammo_type"), "Magazine Configuration_greenmagCompatible": boolean( "magazine_configuration_greenmag_compatible", ), "Asset Metadata_mod": varchar("asset_metadata_mod"), "Asset Metadata_thumbnail": integer("asset_metadata_thumbnail_id").references(() => media.id, { onDelete: "set null", }), "Asset Metadata_gameDescription": varchar("asset_metadata_game_description"), tradeable: boolean("tradeable"), marketTrading_Rarity: enum_assets_market_trading_rarity("market_trading_rarity"), marketTrading_perceivedValue_baseBuyPrice: numeric( "market_trading_perceived_value_base_buy_price", ), marketTrading_perceivedValue_baseSellPrice: numeric( "market_trading_perceived_value_base_sell_price", ), crafting_craftable: boolean("crafting_craftable"), crafting_blueprintRequired: boolean("crafting_blueprint_required"), crafting_technologyRequiredToUse: boolean("crafting_technology_required_to_use"), crafting_craftingData_craftingTimePerUnit: numeric( "crafting_crafting_data_crafting_time_per_unit", ) .notNull() .default("1"), crafting_craftingData_batchSize: numeric("crafting_crafting_data_batch_size") .notNull() .default("1"), isLive: boolean("is_live"), notes: jsonb("notes"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("assets_asset_metadata_asset_metadata_thumbnail_idx").on( columns["Asset Metadata_thumbnail"], ), index("assets_updated_at_idx").on(columns.updatedAt), index("assets_created_at_idx").on(columns.createdAt), ], ); export const assets_rels = pgTable( "assets_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), assetsID: integer("assets_id"), technologiesID: integer("technologies_id"), resourcesID: integer("resources_id"), structuresID: integer("structures_id"), }, (columns) => [ index("assets_rels_order_idx").on(columns.order), index("assets_rels_parent_idx").on(columns.parent), index("assets_rels_path_idx").on(columns.path), index("assets_rels_assets_id_idx").on(columns.assetsID), index("assets_rels_technologies_id_idx").on(columns.technologiesID), index("assets_rels_resources_id_idx").on(columns.resourcesID), index("assets_rels_structures_id_idx").on(columns.structuresID), foreignKey({ columns: [columns["parent"]], foreignColumns: [assets.id], name: "assets_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["assetsID"]], foreignColumns: [assets.id], name: "assets_rels_assets_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["technologiesID"]], foreignColumns: [technologies.id], name: "assets_rels_technologies_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["resourcesID"]], foreignColumns: [resources.id], name: "assets_rels_resources_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["structuresID"]], foreignColumns: [structures.id], name: "assets_rels_structures_fk", }).onDelete("cascade"), ], ); export const resources = pgTable( "resources", { id: serial("id").primaryKey(), name: varchar("name").notNull(), codeName: varchar("code_name").notNull(), type: enum_resources_type("type").notNull().default("physical"), description: jsonb("description"), icon: integer("icon_id").references(() => media.id, { onDelete: "set null", }), color: varchar("color"), baseValue: numeric("base_value").notNull().default("1"), tradeable: boolean("tradeable"), rarity: enum_resources_rarity("rarity").notNull().default("common"), unitOfMeasure: varchar("unit_of_measure").notNull(), massPerUnit: numeric("mass_per_unit").notNull().default("0"), stackSize: numeric("stack_size").default("1"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("resources_icon_idx").on(columns.icon), index("resources_updated_at_idx").on(columns.updatedAt), index("resources_created_at_idx").on(columns.createdAt), ], ); export const vehicles_category = pgTable( "vehicles_category", { order: integer("order").notNull(), parent: integer("parent_id").notNull(), value: enum_vehicles_category("value"), id: serial("id").primaryKey(), }, (columns) => [ index("vehicles_category_order_idx").on(columns.order), index("vehicles_category_parent_idx").on(columns.parent), foreignKey({ columns: [columns["parent"]], foreignColumns: [vehicles.id], name: "vehicles_category_parent_fk", }).onDelete("cascade"), ], ); export const vehicles_materials = pgTable( "vehicles_materials", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), resource: integer("resource_id") .notNull() .references(() => resources.id, { onDelete: "set null", }), amount: numeric("amount"), }, (columns) => [ index("vehicles_materials_order_idx").on(columns._order), index("vehicles_materials_parent_id_idx").on(columns._parentID), index("vehicles_materials_resource_idx").on(columns.resource), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [vehicles.id], name: "vehicles_materials_parent_id_fk", }).onDelete("cascade"), ], ); export const vehicles_scrap_returns = pgTable( "vehicles_scrap_returns", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), resource: integer("resource_id") .notNull() .references(() => resources.id, { onDelete: "set null", }), amount: numeric("amount").default("1"), chance: numeric("chance").default("100"), }, (columns) => [ index("vehicles_scrap_returns_order_idx").on(columns._order), index("vehicles_scrap_returns_parent_id_idx").on(columns._parentID), index("vehicles_scrap_returns_resource_idx").on(columns.resource), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [vehicles.id], name: "vehicles_scrap_returns_parent_id_fk", }).onDelete("cascade"), ], ); export const vehicles_upkeep_costs = pgTable( "vehicles_upkeep_costs", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), resource: integer("resource_id") .notNull() .references(() => resources.id, { onDelete: "set null", }), amount: numeric("amount").default("1"), }, (columns) => [ index("vehicles_upkeep_costs_order_idx").on(columns._order), index("vehicles_upkeep_costs_parent_id_idx").on(columns._parentID), index("vehicles_upkeep_costs_resource_idx").on(columns.resource), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [vehicles.id], name: "vehicles_upkeep_costs_parent_id_fk", }).onDelete("cascade"), ], ); export const vehicles_allowed_virtual_cargo = pgTable( "vehicles_allowed_virtual_cargo", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), amount: numeric("amount").default("1"), }, (columns) => [ index("vehicles_allowed_virtual_cargo_order_idx").on(columns._order), index("vehicles_allowed_virtual_cargo_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [vehicles.id], name: "vehicles_allowed_virtual_cargo_parent_id_fk", }).onDelete("cascade"), ], ); export const vehicles_pylons = pgTable( "vehicles_pylons", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), pylonName: varchar("pylon_name").notNull(), pylonType: enum_vehicles_pylons_pylon_type("pylon_type").notNull().default("mountedWeapon"), amount: numeric("amount").default("1"), ammoType: integer("ammo_type_id").references(() => assets.id, { onDelete: "set null", }), }, (columns) => [ index("vehicles_pylons_order_idx").on(columns._order), index("vehicles_pylons_parent_id_idx").on(columns._parentID), index("vehicles_pylons_ammo_type_idx").on(columns.ammoType), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [vehicles.id], name: "vehicles_pylons_parent_id_fk", }).onDelete("cascade"), ], ); export const vehicles = pgTable( "vehicles", { id: serial("id").primaryKey(), name: varchar("name").notNull(), classname: varchar("classname"), Description: jsonb("description"), image: integer("image_id").references(() => media.id, { onDelete: "set null", }), constructionTime: numeric("construction_time"), width: numeric("width"), height: numeric("height"), maxMass: numeric("max_mass"), aceCargoSlots: numeric("ace_cargo_slots"), maxHealth: numeric("max_health"), armorRating: enum_vehicles_armor_rating("armor_rating"), maxSpeedOnRoad: numeric("max_speed_on_road"), maxSpeedOffRoad: numeric("max_speed_off_road"), maxAirspeed: numeric("max_airspeed"), maxKnots: numeric("max_knots"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("vehicles_image_idx").on(columns.image), index("vehicles_updated_at_idx").on(columns.updatedAt), index("vehicles_created_at_idx").on(columns.createdAt), ], ); export const vehicles_rels = pgTable( "vehicles_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), technologiesID: integer("technologies_id"), assetsID: integer("assets_id"), vehiclesID: integer("vehicles_id"), resourcesID: integer("resources_id"), }, (columns) => [ index("vehicles_rels_order_idx").on(columns.order), index("vehicles_rels_parent_idx").on(columns.parent), index("vehicles_rels_path_idx").on(columns.path), index("vehicles_rels_technologies_id_idx").on(columns.technologiesID), index("vehicles_rels_assets_id_idx").on(columns.assetsID), index("vehicles_rels_vehicles_id_idx").on(columns.vehiclesID), index("vehicles_rels_resources_id_idx").on(columns.resourcesID), foreignKey({ columns: [columns["parent"]], foreignColumns: [vehicles.id], name: "vehicles_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["technologiesID"]], foreignColumns: [technologies.id], name: "vehicles_rels_technologies_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["assetsID"]], foreignColumns: [assets.id], name: "vehicles_rels_assets_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["vehiclesID"]], foreignColumns: [vehicles.id], name: "vehicles_rels_vehicles_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["resourcesID"]], foreignColumns: [resources.id], name: "vehicles_rels_resources_fk", }).onDelete("cascade"), ], ); export const structures_materials = pgTable( "structures_materials", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), resource: integer("resource_id") .notNull() .references(() => resources.id, { onDelete: "set null", }), amount: numeric("amount"), }, (columns) => [ index("structures_materials_order_idx").on(columns._order), index("structures_materials_parent_id_idx").on(columns._parentID), index("structures_materials_resource_idx").on(columns.resource), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [structures.id], name: "structures_materials_parent_id_fk", }).onDelete("cascade"), ], ); export const structures_resources_in_range = pgTable( "structures_resources_in_range", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), resource: integer("resource_id").references(() => resources.id, { onDelete: "set null", }), range: numeric("range"), }, (columns) => [ index("structures_resources_in_range_order_idx").on(columns._order), index("structures_resources_in_range_parent_id_idx").on(columns._parentID), index("structures_resources_in_range_resource_idx").on(columns.resource), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [structures.id], name: "structures_resources_in_range_parent_id_fk", }).onDelete("cascade"), ], ); export const structures_structures_in_range = pgTable( "structures_structures_in_range", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), structure: integer("structure_id").references(() => structures.id, { onDelete: "set null", }), range: numeric("range"), }, (columns) => [ index("structures_structures_in_range_order_idx").on(columns._order), index("structures_structures_in_range_parent_id_idx").on(columns._parentID), index("structures_structures_in_range_structure_idx").on(columns.structure), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [structures.id], name: "structures_structures_in_range_parent_id_fk", }).onDelete("cascade"), ], ); export const structures_upkeep = pgTable( "structures_upkeep", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), resource: integer("resource_id").references(() => resources.id, { onDelete: "set null", }), amount: numeric("amount"), }, (columns) => [ index("structures_upkeep_order_idx").on(columns._order), index("structures_upkeep_parent_id_idx").on(columns._parentID), index("structures_upkeep_resource_idx").on(columns.resource), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [structures.id], name: "structures_upkeep_parent_id_fk", }).onDelete("cascade"), ], ); export const structures_auto_generated_resources = pgTable( "structures_auto_generated_resources", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), resource: integer("resource_id").references(() => resources.id, { onDelete: "set null", }), amount: numeric("amount"), frequency: varchar("frequency"), }, (columns) => [ index("structures_auto_generated_resources_order_idx").on(columns._order), index("structures_auto_generated_resources_parent_id_idx").on(columns._parentID), index("structures_auto_generated_resources_resource_idx").on(columns.resource), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [structures.id], name: "structures_auto_generated_resources_parent_id_fk", }).onDelete("cascade"), ], ); export const structures_allowed_storage = pgTable( "structures_allowed_storage", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), amount: numeric("amount"), }, (columns) => [ index("structures_allowed_storage_order_idx").on(columns._order), index("structures_allowed_storage_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [structures.id], name: "structures_allowed_storage_parent_id_fk", }).onDelete("cascade"), ], ); export const structures_prohibited_storage = pgTable( "structures_prohibited_storage", { _order: integer("_order").notNull(), _parentID: integer("_parent_id").notNull(), id: varchar("id").primaryKey(), }, (columns) => [ index("structures_prohibited_storage_order_idx").on(columns._order), index("structures_prohibited_storage_parent_id_idx").on(columns._parentID), foreignKey({ columns: [columns["_parentID"]], foreignColumns: [structures.id], name: "structures_prohibited_storage_parent_id_fk", }).onDelete("cascade"), ], ); export const structures = pgTable( "structures", { id: serial("id").primaryKey(), name: varchar("name").notNull(), codeName: varchar("code_name").notNull(), description: jsonb("description").notNull(), image: integer("image_id").references(() => media.id, { onDelete: "set null", }), category: enum_structures_category("category").notNull(), constructionTime: numeric("construction_time").notNull(), requiresUpgrade: boolean("requires_upgrade"), upgradesInto: integer("upgrades_into_id").references((): AnyPgColumn => structures.id, { onDelete: "set null", }), upgradeCostMultiplier: numeric("upgrade_cost_multiplier").default("1"), terrainType: enum_structures_terrain_type("terrain_type").notNull(), sellPrice: numeric("sell_price"), functionType: enum_structures_function_type("function_type"), maxCapacityMass: numeric("max_capacity_mass"), xSize: numeric("x_size"), ySize: numeric("y_size"), maxHealth: numeric("max_health").notNull(), repairSpeed: numeric("repair_speed"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("structures_image_idx").on(columns.image), index("structures_upgrades_into_idx").on(columns.upgradesInto), index("structures_updated_at_idx").on(columns.updatedAt), index("structures_created_at_idx").on(columns.createdAt), ], ); export const structures_rels = pgTable( "structures_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), technologiesID: integer("technologies_id"), assetsID: integer("assets_id"), vehiclesID: integer("vehicles_id"), resourcesID: integer("resources_id"), }, (columns) => [ index("structures_rels_order_idx").on(columns.order), index("structures_rels_parent_idx").on(columns.parent), index("structures_rels_path_idx").on(columns.path), index("structures_rels_technologies_id_idx").on(columns.technologiesID), index("structures_rels_assets_id_idx").on(columns.assetsID), index("structures_rels_vehicles_id_idx").on(columns.vehiclesID), index("structures_rels_resources_id_idx").on(columns.resourcesID), foreignKey({ columns: [columns["parent"]], foreignColumns: [structures.id], name: "structures_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["technologiesID"]], foreignColumns: [technologies.id], name: "structures_rels_technologies_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["assetsID"]], foreignColumns: [assets.id], name: "structures_rels_assets_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["vehiclesID"]], foreignColumns: [vehicles.id], name: "structures_rels_vehicles_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["resourcesID"]], foreignColumns: [resources.id], name: "structures_rels_resources_fk", }).onDelete("cascade"), ], ); export const maps = pgTable( "maps", { id: serial("id").primaryKey(), name: varchar("name").notNull(), fileName: varchar("file_name"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ uniqueIndex("maps_name_idx").on(columns.name), uniqueIndex("maps_file_name_idx").on(columns.fileName), index("maps_updated_at_idx").on(columns.updatedAt), index("maps_created_at_idx").on(columns.createdAt), ], ); export const narrative_events = pgTable( "narrative_events", { id: serial("id").primaryKey(), name: varchar("name").notNull(), summary: varchar("summary").notNull(), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("narrative_events_updated_at_idx").on(columns.updatedAt), index("narrative_events_created_at_idx").on(columns.createdAt), ], ); export const mission_files = pgTable( "mission_files", { id: serial("id").primaryKey(), missionFileName: varchar("mission_file_name").notNull(), author: integer("author_id") .notNull() .references(() => users.id, { onDelete: "set null", }), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), url: varchar("url"), thumbnailURL: varchar("thumbnail_u_r_l"), filename: varchar("filename"), mimeType: varchar("mime_type"), filesize: numeric("filesize"), width: numeric("width"), height: numeric("height"), focalX: numeric("focal_x"), focalY: numeric("focal_y"), }, (columns) => [ index("mission_files_author_idx").on(columns.author), index("mission_files_updated_at_idx").on(columns.updatedAt), index("mission_files_created_at_idx").on(columns.createdAt), uniqueIndex("mission_files_filename_idx").on(columns.filename), ], ); export const mod_lists = pgTable( "mod_lists", { id: serial("id").primaryKey(), modlistName: varchar("modlist_name").notNull(), author: integer("author_id") .notNull() .references(() => users.id, { onDelete: "set null", }), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), url: varchar("url"), thumbnailURL: varchar("thumbnail_u_r_l"), filename: varchar("filename"), mimeType: varchar("mime_type"), filesize: numeric("filesize"), width: numeric("width"), height: numeric("height"), focalX: numeric("focal_x"), focalY: numeric("focal_y"), }, (columns) => [ index("mod_lists_author_idx").on(columns.author), index("mod_lists_updated_at_idx").on(columns.updatedAt), index("mod_lists_created_at_idx").on(columns.createdAt), uniqueIndex("mod_lists_filename_idx").on(columns.filename), ], ); export const payload_locked_documents = pgTable( "payload_locked_documents", { id: serial("id").primaryKey(), globalSlug: varchar("global_slug"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("payload_locked_documents_global_slug_idx").on(columns.globalSlug), index("payload_locked_documents_updated_at_idx").on(columns.updatedAt), index("payload_locked_documents_created_at_idx").on(columns.createdAt), ], ); export const payload_locked_documents_rels = pgTable( "payload_locked_documents_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), mediaID: integer("media_id"), usersID: integer("users_id"), ranksID: integer("ranks_id"), profilesID: integer("profiles_id"), awardsID: integer("awards_id"), qualificationsID: integer("qualifications_id"), assignmentsID: integer("assignments_id"), missionsID: integer("missions_id"), campaignsID: integer("campaigns_id"), factionsID: integer("factions_id"), technologiesID: integer("technologies_id"), assetsID: integer("assets_id"), resourcesID: integer("resources_id"), vehiclesID: integer("vehicles_id"), structuresID: integer("structures_id"), mapsID: integer("maps_id"), "narrative-eventsID": integer("narrative_events_id"), "mission-filesID": integer("mission_files_id"), "mod-listsID": integer("mod_lists_id"), }, (columns) => [ index("payload_locked_documents_rels_order_idx").on(columns.order), index("payload_locked_documents_rels_parent_idx").on(columns.parent), index("payload_locked_documents_rels_path_idx").on(columns.path), index("payload_locked_documents_rels_media_id_idx").on(columns.mediaID), index("payload_locked_documents_rels_users_id_idx").on(columns.usersID), index("payload_locked_documents_rels_ranks_id_idx").on(columns.ranksID), index("payload_locked_documents_rels_profiles_id_idx").on(columns.profilesID), index("payload_locked_documents_rels_awards_id_idx").on(columns.awardsID), index("payload_locked_documents_rels_qualifications_id_idx").on(columns.qualificationsID), index("payload_locked_documents_rels_assignments_id_idx").on(columns.assignmentsID), index("payload_locked_documents_rels_missions_id_idx").on(columns.missionsID), index("payload_locked_documents_rels_campaigns_id_idx").on(columns.campaignsID), index("payload_locked_documents_rels_factions_id_idx").on(columns.factionsID), index("payload_locked_documents_rels_technologies_id_idx").on(columns.technologiesID), index("payload_locked_documents_rels_assets_id_idx").on(columns.assetsID), index("payload_locked_documents_rels_resources_id_idx").on(columns.resourcesID), index("payload_locked_documents_rels_vehicles_id_idx").on(columns.vehiclesID), index("payload_locked_documents_rels_structures_id_idx").on(columns.structuresID), index("payload_locked_documents_rels_maps_id_idx").on(columns.mapsID), index("payload_locked_documents_rels_narrative_events_id_idx").on( columns["narrative-eventsID"], ), index("payload_locked_documents_rels_mission_files_id_idx").on(columns["mission-filesID"]), index("payload_locked_documents_rels_mod_lists_id_idx").on(columns["mod-listsID"]), foreignKey({ columns: [columns["parent"]], foreignColumns: [payload_locked_documents.id], name: "payload_locked_documents_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["mediaID"]], foreignColumns: [media.id], name: "payload_locked_documents_rels_media_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["usersID"]], foreignColumns: [users.id], name: "payload_locked_documents_rels_users_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["ranksID"]], foreignColumns: [ranks.id], name: "payload_locked_documents_rels_ranks_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["profilesID"]], foreignColumns: [profiles.id], name: "payload_locked_documents_rels_profiles_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["awardsID"]], foreignColumns: [awards.id], name: "payload_locked_documents_rels_awards_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["qualificationsID"]], foreignColumns: [qualifications.id], name: "payload_locked_documents_rels_qualifications_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["assignmentsID"]], foreignColumns: [assignments.id], name: "payload_locked_documents_rels_assignments_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["missionsID"]], foreignColumns: [missions.id], name: "payload_locked_documents_rels_missions_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["campaignsID"]], foreignColumns: [campaigns.id], name: "payload_locked_documents_rels_campaigns_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["factionsID"]], foreignColumns: [factions.id], name: "payload_locked_documents_rels_factions_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["technologiesID"]], foreignColumns: [technologies.id], name: "payload_locked_documents_rels_technologies_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["assetsID"]], foreignColumns: [assets.id], name: "payload_locked_documents_rels_assets_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["resourcesID"]], foreignColumns: [resources.id], name: "payload_locked_documents_rels_resources_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["vehiclesID"]], foreignColumns: [vehicles.id], name: "payload_locked_documents_rels_vehicles_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["structuresID"]], foreignColumns: [structures.id], name: "payload_locked_documents_rels_structures_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["mapsID"]], foreignColumns: [maps.id], name: "payload_locked_documents_rels_maps_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["narrative-eventsID"]], foreignColumns: [narrative_events.id], name: "payload_locked_documents_rels_narrative_events_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["mission-filesID"]], foreignColumns: [mission_files.id], name: "payload_locked_documents_rels_mission_files_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["mod-listsID"]], foreignColumns: [mod_lists.id], name: "payload_locked_documents_rels_mod_lists_fk", }).onDelete("cascade"), ], ); export const payload_preferences = pgTable( "payload_preferences", { id: serial("id").primaryKey(), key: varchar("key"), value: jsonb("value"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("payload_preferences_key_idx").on(columns.key), index("payload_preferences_updated_at_idx").on(columns.updatedAt), index("payload_preferences_created_at_idx").on(columns.createdAt), ], ); export const payload_preferences_rels = pgTable( "payload_preferences_rels", { id: serial("id").primaryKey(), order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), usersID: integer("users_id"), }, (columns) => [ index("payload_preferences_rels_order_idx").on(columns.order), index("payload_preferences_rels_parent_idx").on(columns.parent), index("payload_preferences_rels_path_idx").on(columns.path), index("payload_preferences_rels_users_id_idx").on(columns.usersID), foreignKey({ columns: [columns["parent"]], foreignColumns: [payload_preferences.id], name: "payload_preferences_rels_parent_fk", }).onDelete("cascade"), foreignKey({ columns: [columns["usersID"]], foreignColumns: [users.id], name: "payload_preferences_rels_users_fk", }).onDelete("cascade"), ], ); export const payload_migrations = pgTable( "payload_migrations", { id: serial("id").primaryKey(), name: varchar("name"), batch: numeric("batch"), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), }, (columns) => [ index("payload_migrations_updated_at_idx").on(columns.updatedAt), index("payload_migrations_created_at_idx").on(columns.createdAt), ], ); export const game_rules = pgTable( "game_rules", { id: serial("id").primaryKey(), mainCurrency: integer("main_currency_id") .notNull() .references(() => resources.id, { onDelete: "set null", }), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }), createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }), }, (columns) => [index("game_rules_main_currency_idx").on(columns.mainCurrency)], ); export const relations_media = relations(media, () => ({})); export const relations_users_roles = relations(users_roles, ({ one }) => ({ parent: one(users, { fields: [users_roles.parent], references: [users.id], relationName: "roles", }), })); export const relations_users_sessions = relations(users_sessions, ({ one }) => ({ _parentID: one(users, { fields: [users_sessions._parentID], references: [users.id], relationName: "sessions", }), })); export const relations_users = relations(users, ({ many }) => ({ roles: many(users_roles, { relationName: "roles", }), sessions: many(users_sessions, { relationName: "sessions", }), })); export const relations_ranks = relations(ranks, ({ one }) => ({ insignia: one(media, { fields: [ranks.insignia], references: [media.id], relationName: "insignia", }), })); export const relations_profiles_rels = relations(profiles_rels, ({ one }) => ({ parent: one(profiles, { fields: [profiles_rels.parent], references: [profiles.id], relationName: "_rels", }), awardsID: one(awards, { fields: [profiles_rels.awardsID], references: [awards.id], relationName: "awards", }), })); export const relations_profiles = relations(profiles, ({ one, many }) => ({ user: one(users, { fields: [profiles.user], references: [users.id], relationName: "user", }), rank: one(ranks, { fields: [profiles.rank], references: [ranks.id], relationName: "rank", }), _rels: many(profiles_rels, { relationName: "_rels", }), })); export const relations_awards = relations(awards, ({ one }) => ({ image: one(media, { fields: [awards.image], references: [media.id], relationName: "image", }), })); export const relations_qualifications = relations(qualifications, () => ({})); export const relations_assignments_rels = relations(assignments_rels, ({ one }) => ({ parent: one(assignments, { fields: [assignments_rels.parent], references: [assignments.id], relationName: "_rels", }), assignmentsID: one(assignments, { fields: [assignments_rels.assignmentsID], references: [assignments.id], relationName: "assignments", }), usersID: one(users, { fields: [assignments_rels.usersID], references: [users.id], relationName: "users", }), })); export const relations_assignments = relations(assignments, ({ one, many }) => ({ leader: one(users, { fields: [assignments.leader], references: [users.id], relationName: "leader", }), _rels: many(assignments_rels, { relationName: "_rels", }), })); export const relations_missions_mission_roles_provided_roles = relations( missions_mission_roles_provided_roles, ({ one }) => ({ _parentID: one(missions, { fields: [missions_mission_roles_provided_roles._parentID], references: [missions.id], relationName: "missionRoles_providedRoles", }), minimumRank: one(ranks, { fields: [missions_mission_roles_provided_roles.minimumRank], references: [ranks.id], relationName: "minimumRank", }), }), ); export const relations_missions_briefing = relations(missions_briefing, ({ one }) => ({ _parentID: one(missions, { fields: [missions_briefing._parentID], references: [missions.id], relationName: "briefing", }), })); export const relations_missions_mission_objectives = relations( missions_mission_objectives, ({ one }) => ({ _parentID: one(missions, { fields: [missions_mission_objectives._parentID], references: [missions.id], relationName: "missionObjectives", }), }), ); export const relations_missions_factions_involved = relations( missions_factions_involved, ({ one }) => ({ _parentID: one(missions, { fields: [missions_factions_involved._parentID], references: [missions.id], relationName: "factionsInvolved", }), }), ); export const relations_missions_logistics_and_support_insertion = relations( missions_logistics_and_support_insertion, ({ one }) => ({ parent: one(missions, { fields: [missions_logistics_and_support_insertion.parent], references: [missions.id], relationName: "logisticsAndSupport_insertion", }), }), ); export const relations_missions_logistics_and_support_extraction = relations( missions_logistics_and_support_extraction, ({ one }) => ({ parent: one(missions, { fields: [missions_logistics_and_support_extraction.parent], references: [missions.id], relationName: "logisticsAndSupport_extraction", }), }), ); export const relations_missions_logistics_and_support_assets_available = relations( missions_logistics_and_support_assets_available, ({ one }) => ({ _parentID: one(missions, { fields: [missions_logistics_and_support_assets_available._parentID], references: [missions.id], relationName: "logisticsAndSupport_assetsAvailable", }), }), ); export const relations_missions_comms_and_docs_frequencies = relations( missions_comms_and_docs_frequencies, ({ one }) => ({ _parentID: one(missions, { fields: [missions_comms_and_docs_frequencies._parentID], references: [missions.id], relationName: "commsAndDocs_frequencies", }), }), ); export const relations_missions_rels = relations(missions_rels, ({ one }) => ({ parent: one(missions, { fields: [missions_rels.parent], references: [missions.id], relationName: "_rels", }), usersID: one(users, { fields: [missions_rels.usersID], references: [users.id], relationName: "users", }), qualificationsID: one(qualifications, { fields: [missions_rels.qualificationsID], references: [qualifications.id], relationName: "qualifications", }), })); export const relations_missions = relations(missions, ({ one, many }) => ({ classification_map: one(maps, { fields: [missions.classification_map], references: [maps.id], relationName: "classification_map", }), classification_campaign: one(campaigns, { fields: [missions.classification_campaign], references: [campaigns.id], relationName: "classification_campaign", }), missionRoles_providedRoles: many(missions_mission_roles_provided_roles, { relationName: "missionRoles_providedRoles", }), briefing: many(missions_briefing, { relationName: "briefing", }), missionObjectives: many(missions_mission_objectives, { relationName: "missionObjectives", }), factionsInvolved: many(missions_factions_involved, { relationName: "factionsInvolved", }), gameDetails_gameSetup_missionFile: one(mission_files, { fields: [missions.gameDetails_gameSetup_missionFile], references: [mission_files.id], relationName: "gameDetails_gameSetup_missionFile", }), gameDetails_gameSetup_requiredMods: one(mod_lists, { fields: [missions.gameDetails_gameSetup_requiredMods], references: [mod_lists.id], relationName: "gameDetails_gameSetup_requiredMods", }), logisticsAndSupport_insertion: many(missions_logistics_and_support_insertion, { relationName: "logisticsAndSupport_insertion", }), logisticsAndSupport_extraction: many(missions_logistics_and_support_extraction, { relationName: "logisticsAndSupport_extraction", }), logisticsAndSupport_assetsAvailable: many(missions_logistics_and_support_assets_available, { relationName: "logisticsAndSupport_assetsAvailable", }), commsAndDocs_frequencies: many(missions_comms_and_docs_frequencies, { relationName: "commsAndDocs_frequencies", }), _rels: many(missions_rels, { relationName: "_rels", }), })); export const relations_campaigns = relations(campaigns, () => ({})); export const relations_factions_rels = relations(factions_rels, ({ one }) => ({ parent: one(factions, { fields: [factions_rels.parent], references: [factions.id], relationName: "_rels", }), campaignsID: one(campaigns, { fields: [factions_rels.campaignsID], references: [campaigns.id], relationName: "campaigns", }), })); export const relations_factions = relations(factions, ({ many }) => ({ _rels: many(factions_rels, { relationName: "_rels", }), })); export const relations_technologies_requirements_prerequisite_technologies = relations( technologies_requirements_prerequisite_technologies, ({ one }) => ({ _parentID: one(technologies, { fields: [technologies_requirements_prerequisite_technologies._parentID], references: [technologies.id], relationName: "requirements_prerequisiteTechnologies", }), }), ); export const relations_technologies_rels = relations(technologies_rels, ({ one }) => ({ parent: one(technologies, { fields: [technologies_rels.parent], references: [technologies.id], relationName: "_rels", }), technologiesID: one(technologies, { fields: [technologies_rels.technologiesID], references: [technologies.id], relationName: "technologies", }), })); export const relations_technologies = relations(technologies, ({ many }) => ({ requirements_prerequisiteTechnologies: many(technologies_requirements_prerequisite_technologies, { relationName: "requirements_prerequisiteTechnologies", }), _rels: many(technologies_rels, { relationName: "_rels", }), })); export const relations_assets_crafting_crafting_data_inputs = relations( assets_crafting_crafting_data_inputs, ({ one }) => ({ _parentID: one(assets, { fields: [assets_crafting_crafting_data_inputs._parentID], references: [assets.id], relationName: "crafting_craftingData_inputs", }), }), ); export const relations_assets_crafting_crafting_data_byproducts = relations( assets_crafting_crafting_data_byproducts, ({ one }) => ({ _parentID: one(assets, { fields: [assets_crafting_crafting_data_byproducts._parentID], references: [assets.id], relationName: "crafting_craftingData_byproducts", }), }), ); export const relations_assets_rels = relations(assets_rels, ({ one }) => ({ parent: one(assets, { fields: [assets_rels.parent], references: [assets.id], relationName: "_rels", }), assetsID: one(assets, { fields: [assets_rels.assetsID], references: [assets.id], relationName: "assets", }), technologiesID: one(technologies, { fields: [assets_rels.technologiesID], references: [technologies.id], relationName: "technologies", }), resourcesID: one(resources, { fields: [assets_rels.resourcesID], references: [resources.id], relationName: "resources", }), structuresID: one(structures, { fields: [assets_rels.structuresID], references: [structures.id], relationName: "structures", }), })); export const relations_assets = relations(assets, ({ one, many }) => ({ "Asset Metadata_thumbnail": one(media, { fields: [assets["Asset Metadata_thumbnail"]], references: [media.id], relationName: "Asset Metadata_thumbnail", }), crafting_craftingData_inputs: many(assets_crafting_crafting_data_inputs, { relationName: "crafting_craftingData_inputs", }), crafting_craftingData_byproducts: many(assets_crafting_crafting_data_byproducts, { relationName: "crafting_craftingData_byproducts", }), _rels: many(assets_rels, { relationName: "_rels", }), })); export const relations_resources = relations(resources, ({ one }) => ({ icon: one(media, { fields: [resources.icon], references: [media.id], relationName: "icon", }), })); export const relations_vehicles_category = relations(vehicles_category, ({ one }) => ({ parent: one(vehicles, { fields: [vehicles_category.parent], references: [vehicles.id], relationName: "category", }), })); export const relations_vehicles_materials = relations(vehicles_materials, ({ one }) => ({ _parentID: one(vehicles, { fields: [vehicles_materials._parentID], references: [vehicles.id], relationName: "materials", }), resource: one(resources, { fields: [vehicles_materials.resource], references: [resources.id], relationName: "resource", }), })); export const relations_vehicles_scrap_returns = relations(vehicles_scrap_returns, ({ one }) => ({ _parentID: one(vehicles, { fields: [vehicles_scrap_returns._parentID], references: [vehicles.id], relationName: "scrapReturns", }), resource: one(resources, { fields: [vehicles_scrap_returns.resource], references: [resources.id], relationName: "resource", }), })); export const relations_vehicles_upkeep_costs = relations(vehicles_upkeep_costs, ({ one }) => ({ _parentID: one(vehicles, { fields: [vehicles_upkeep_costs._parentID], references: [vehicles.id], relationName: "upkeepCosts", }), resource: one(resources, { fields: [vehicles_upkeep_costs.resource], references: [resources.id], relationName: "resource", }), })); export const relations_vehicles_allowed_virtual_cargo = relations( vehicles_allowed_virtual_cargo, ({ one }) => ({ _parentID: one(vehicles, { fields: [vehicles_allowed_virtual_cargo._parentID], references: [vehicles.id], relationName: "allowedVirtualCargo", }), }), ); export const relations_vehicles_pylons = relations(vehicles_pylons, ({ one }) => ({ _parentID: one(vehicles, { fields: [vehicles_pylons._parentID], references: [vehicles.id], relationName: "pylons", }), ammoType: one(assets, { fields: [vehicles_pylons.ammoType], references: [assets.id], relationName: "ammoType", }), })); export const relations_vehicles_rels = relations(vehicles_rels, ({ one }) => ({ parent: one(vehicles, { fields: [vehicles_rels.parent], references: [vehicles.id], relationName: "_rels", }), technologiesID: one(technologies, { fields: [vehicles_rels.technologiesID], references: [technologies.id], relationName: "technologies", }), assetsID: one(assets, { fields: [vehicles_rels.assetsID], references: [assets.id], relationName: "assets", }), vehiclesID: one(vehicles, { fields: [vehicles_rels.vehiclesID], references: [vehicles.id], relationName: "vehicles", }), resourcesID: one(resources, { fields: [vehicles_rels.resourcesID], references: [resources.id], relationName: "resources", }), })); export const relations_vehicles = relations(vehicles, ({ one, many }) => ({ image: one(media, { fields: [vehicles.image], references: [media.id], relationName: "image", }), category: many(vehicles_category, { relationName: "category", }), materials: many(vehicles_materials, { relationName: "materials", }), scrapReturns: many(vehicles_scrap_returns, { relationName: "scrapReturns", }), upkeepCosts: many(vehicles_upkeep_costs, { relationName: "upkeepCosts", }), allowedVirtualCargo: many(vehicles_allowed_virtual_cargo, { relationName: "allowedVirtualCargo", }), pylons: many(vehicles_pylons, { relationName: "pylons", }), _rels: many(vehicles_rels, { relationName: "_rels", }), })); export const relations_structures_materials = relations(structures_materials, ({ one }) => ({ _parentID: one(structures, { fields: [structures_materials._parentID], references: [structures.id], relationName: "materials", }), resource: one(resources, { fields: [structures_materials.resource], references: [resources.id], relationName: "resource", }), })); export const relations_structures_resources_in_range = relations( structures_resources_in_range, ({ one }) => ({ _parentID: one(structures, { fields: [structures_resources_in_range._parentID], references: [structures.id], relationName: "resourcesInRange", }), resource: one(resources, { fields: [structures_resources_in_range.resource], references: [resources.id], relationName: "resource", }), }), ); export const relations_structures_structures_in_range = relations( structures_structures_in_range, ({ one }) => ({ _parentID: one(structures, { fields: [structures_structures_in_range._parentID], references: [structures.id], relationName: "structuresInRange", }), structure: one(structures, { fields: [structures_structures_in_range.structure], references: [structures.id], relationName: "structure", }), }), ); export const relations_structures_upkeep = relations(structures_upkeep, ({ one }) => ({ _parentID: one(structures, { fields: [structures_upkeep._parentID], references: [structures.id], relationName: "upkeep", }), resource: one(resources, { fields: [structures_upkeep.resource], references: [resources.id], relationName: "resource", }), })); export const relations_structures_auto_generated_resources = relations( structures_auto_generated_resources, ({ one }) => ({ _parentID: one(structures, { fields: [structures_auto_generated_resources._parentID], references: [structures.id], relationName: "autoGeneratedResources", }), resource: one(resources, { fields: [structures_auto_generated_resources.resource], references: [resources.id], relationName: "resource", }), }), ); export const relations_structures_allowed_storage = relations( structures_allowed_storage, ({ one }) => ({ _parentID: one(structures, { fields: [structures_allowed_storage._parentID], references: [structures.id], relationName: "allowedStorage", }), }), ); export const relations_structures_prohibited_storage = relations( structures_prohibited_storage, ({ one }) => ({ _parentID: one(structures, { fields: [structures_prohibited_storage._parentID], references: [structures.id], relationName: "prohibitedStorage", }), }), ); export const relations_structures_rels = relations(structures_rels, ({ one }) => ({ parent: one(structures, { fields: [structures_rels.parent], references: [structures.id], relationName: "_rels", }), technologiesID: one(technologies, { fields: [structures_rels.technologiesID], references: [technologies.id], relationName: "technologies", }), assetsID: one(assets, { fields: [structures_rels.assetsID], references: [assets.id], relationName: "assets", }), vehiclesID: one(vehicles, { fields: [structures_rels.vehiclesID], references: [vehicles.id], relationName: "vehicles", }), resourcesID: one(resources, { fields: [structures_rels.resourcesID], references: [resources.id], relationName: "resources", }), })); export const relations_structures = relations(structures, ({ one, many }) => ({ image: one(media, { fields: [structures.image], references: [media.id], relationName: "image", }), materials: many(structures_materials, { relationName: "materials", }), upgradesInto: one(structures, { fields: [structures.upgradesInto], references: [structures.id], relationName: "upgradesInto", }), resourcesInRange: many(structures_resources_in_range, { relationName: "resourcesInRange", }), structuresInRange: many(structures_structures_in_range, { relationName: "structuresInRange", }), upkeep: many(structures_upkeep, { relationName: "upkeep", }), autoGeneratedResources: many(structures_auto_generated_resources, { relationName: "autoGeneratedResources", }), allowedStorage: many(structures_allowed_storage, { relationName: "allowedStorage", }), prohibitedStorage: many(structures_prohibited_storage, { relationName: "prohibitedStorage", }), _rels: many(structures_rels, { relationName: "_rels", }), })); export const relations_maps = relations(maps, () => ({})); export const relations_narrative_events = relations(narrative_events, () => ({})); export const relations_mission_files = relations(mission_files, ({ one }) => ({ author: one(users, { fields: [mission_files.author], references: [users.id], relationName: "author", }), })); export const relations_mod_lists = relations(mod_lists, ({ one }) => ({ author: one(users, { fields: [mod_lists.author], references: [users.id], relationName: "author", }), })); export const relations_payload_locked_documents_rels = relations( payload_locked_documents_rels, ({ one }) => ({ parent: one(payload_locked_documents, { fields: [payload_locked_documents_rels.parent], references: [payload_locked_documents.id], relationName: "_rels", }), mediaID: one(media, { fields: [payload_locked_documents_rels.mediaID], references: [media.id], relationName: "media", }), usersID: one(users, { fields: [payload_locked_documents_rels.usersID], references: [users.id], relationName: "users", }), ranksID: one(ranks, { fields: [payload_locked_documents_rels.ranksID], references: [ranks.id], relationName: "ranks", }), profilesID: one(profiles, { fields: [payload_locked_documents_rels.profilesID], references: [profiles.id], relationName: "profiles", }), awardsID: one(awards, { fields: [payload_locked_documents_rels.awardsID], references: [awards.id], relationName: "awards", }), qualificationsID: one(qualifications, { fields: [payload_locked_documents_rels.qualificationsID], references: [qualifications.id], relationName: "qualifications", }), assignmentsID: one(assignments, { fields: [payload_locked_documents_rels.assignmentsID], references: [assignments.id], relationName: "assignments", }), missionsID: one(missions, { fields: [payload_locked_documents_rels.missionsID], references: [missions.id], relationName: "missions", }), campaignsID: one(campaigns, { fields: [payload_locked_documents_rels.campaignsID], references: [campaigns.id], relationName: "campaigns", }), factionsID: one(factions, { fields: [payload_locked_documents_rels.factionsID], references: [factions.id], relationName: "factions", }), technologiesID: one(technologies, { fields: [payload_locked_documents_rels.technologiesID], references: [technologies.id], relationName: "technologies", }), assetsID: one(assets, { fields: [payload_locked_documents_rels.assetsID], references: [assets.id], relationName: "assets", }), resourcesID: one(resources, { fields: [payload_locked_documents_rels.resourcesID], references: [resources.id], relationName: "resources", }), vehiclesID: one(vehicles, { fields: [payload_locked_documents_rels.vehiclesID], references: [vehicles.id], relationName: "vehicles", }), structuresID: one(structures, { fields: [payload_locked_documents_rels.structuresID], references: [structures.id], relationName: "structures", }), mapsID: one(maps, { fields: [payload_locked_documents_rels.mapsID], references: [maps.id], relationName: "maps", }), "narrative-eventsID": one(narrative_events, { fields: [payload_locked_documents_rels["narrative-eventsID"]], references: [narrative_events.id], relationName: "narrative-events", }), "mission-filesID": one(mission_files, { fields: [payload_locked_documents_rels["mission-filesID"]], references: [mission_files.id], relationName: "mission-files", }), "mod-listsID": one(mod_lists, { fields: [payload_locked_documents_rels["mod-listsID"]], references: [mod_lists.id], relationName: "mod-lists", }), }), ); export const relations_payload_locked_documents = relations( payload_locked_documents, ({ many }) => ({ _rels: many(payload_locked_documents_rels, { relationName: "_rels", }), }), ); export const relations_payload_preferences_rels = relations( payload_preferences_rels, ({ one }) => ({ parent: one(payload_preferences, { fields: [payload_preferences_rels.parent], references: [payload_preferences.id], relationName: "_rels", }), usersID: one(users, { fields: [payload_preferences_rels.usersID], references: [users.id], relationName: "users", }), }), ); export const relations_payload_preferences = relations(payload_preferences, ({ many }) => ({ _rels: many(payload_preferences_rels, { relationName: "_rels", }), })); export const relations_payload_migrations = relations(payload_migrations, () => ({})); export const relations_game_rules = relations(game_rules, ({ one }) => ({ mainCurrency: one(resources, { fields: [game_rules.mainCurrency], references: [resources.id], relationName: "mainCurrency", }), })); type DatabaseSchema = { enum_users_roles: typeof enum_users_roles; enum_awards_type: typeof enum_awards_type; enum_assignments_type: typeof enum_assignments_type; enum_missions_factions_involved_threat_level: typeof enum_missions_factions_involved_threat_level; enum_missions_logistics_and_support_insertion: typeof enum_missions_logistics_and_support_insertion; enum_missions_logistics_and_support_extraction: typeof enum_missions_logistics_and_support_extraction; enum_missions_operation_type: typeof enum_missions_operation_type; enum_missions_classification_mission_type: typeof enum_missions_classification_mission_type; enum_missions_ownership_and_status_status: typeof enum_missions_ownership_and_status_status; enum_missions_ownership_and_status_visibility: typeof enum_missions_ownership_and_status_visibility; enum_missions_civilian_presence: typeof enum_missions_civilian_presence; enum_campaigns_status: typeof enum_campaigns_status; enum_factions_type: typeof enum_factions_type; enum_technologies_type: typeof enum_technologies_type; enum_assets_asset_type: typeof enum_assets_asset_type; enum_assets_weapon_configuration_slot_type: typeof enum_assets_weapon_configuration_slot_type; enum_assets_nightvision_configuration_nvg_generation: typeof enum_assets_nightvision_configuration_nvg_generation; enum_assets_market_trading_rarity: typeof enum_assets_market_trading_rarity; enum_resources_type: typeof enum_resources_type; enum_resources_rarity: typeof enum_resources_rarity; enum_vehicles_category: typeof enum_vehicles_category; enum_vehicles_pylons_pylon_type: typeof enum_vehicles_pylons_pylon_type; enum_vehicles_armor_rating: typeof enum_vehicles_armor_rating; enum_structures_category: typeof enum_structures_category; enum_structures_terrain_type: typeof enum_structures_terrain_type; enum_structures_function_type: typeof enum_structures_function_type; media: typeof media; users_roles: typeof users_roles; users_sessions: typeof users_sessions; users: typeof users; ranks: typeof ranks; profiles: typeof profiles; profiles_rels: typeof profiles_rels; awards: typeof awards; qualifications: typeof qualifications; assignments: typeof assignments; assignments_rels: typeof assignments_rels; missions_mission_roles_provided_roles: typeof missions_mission_roles_provided_roles; missions_briefing: typeof missions_briefing; missions_mission_objectives: typeof missions_mission_objectives; missions_factions_involved: typeof missions_factions_involved; missions_logistics_and_support_insertion: typeof missions_logistics_and_support_insertion; missions_logistics_and_support_extraction: typeof missions_logistics_and_support_extraction; missions_logistics_and_support_assets_available: typeof missions_logistics_and_support_assets_available; missions_comms_and_docs_frequencies: typeof missions_comms_and_docs_frequencies; missions: typeof missions; missions_rels: typeof missions_rels; campaigns: typeof campaigns; factions: typeof factions; factions_rels: typeof factions_rels; technologies_requirements_prerequisite_technologies: typeof technologies_requirements_prerequisite_technologies; technologies: typeof technologies; technologies_rels: typeof technologies_rels; assets_crafting_crafting_data_inputs: typeof assets_crafting_crafting_data_inputs; assets_crafting_crafting_data_byproducts: typeof assets_crafting_crafting_data_byproducts; assets: typeof assets; assets_rels: typeof assets_rels; resources: typeof resources; vehicles_category: typeof vehicles_category; vehicles_materials: typeof vehicles_materials; vehicles_scrap_returns: typeof vehicles_scrap_returns; vehicles_upkeep_costs: typeof vehicles_upkeep_costs; vehicles_allowed_virtual_cargo: typeof vehicles_allowed_virtual_cargo; vehicles_pylons: typeof vehicles_pylons; vehicles: typeof vehicles; vehicles_rels: typeof vehicles_rels; structures_materials: typeof structures_materials; structures_resources_in_range: typeof structures_resources_in_range; structures_structures_in_range: typeof structures_structures_in_range; structures_upkeep: typeof structures_upkeep; structures_auto_generated_resources: typeof structures_auto_generated_resources; structures_allowed_storage: typeof structures_allowed_storage; structures_prohibited_storage: typeof structures_prohibited_storage; structures: typeof structures; structures_rels: typeof structures_rels; maps: typeof maps; narrative_events: typeof narrative_events; mission_files: typeof mission_files; mod_lists: typeof mod_lists; payload_locked_documents: typeof payload_locked_documents; payload_locked_documents_rels: typeof payload_locked_documents_rels; payload_preferences: typeof payload_preferences; payload_preferences_rels: typeof payload_preferences_rels; payload_migrations: typeof payload_migrations; game_rules: typeof game_rules; relations_media: typeof relations_media; relations_users_roles: typeof relations_users_roles; relations_users_sessions: typeof relations_users_sessions; relations_users: typeof relations_users; relations_ranks: typeof relations_ranks; relations_profiles_rels: typeof relations_profiles_rels; relations_profiles: typeof relations_profiles; relations_awards: typeof relations_awards; relations_qualifications: typeof relations_qualifications; relations_assignments_rels: typeof relations_assignments_rels; relations_assignments: typeof relations_assignments; relations_missions_mission_roles_provided_roles: typeof relations_missions_mission_roles_provided_roles; relations_missions_briefing: typeof relations_missions_briefing; relations_missions_mission_objectives: typeof relations_missions_mission_objectives; relations_missions_factions_involved: typeof relations_missions_factions_involved; relations_missions_logistics_and_support_insertion: typeof relations_missions_logistics_and_support_insertion; relations_missions_logistics_and_support_extraction: typeof relations_missions_logistics_and_support_extraction; relations_missions_logistics_and_support_assets_available: typeof relations_missions_logistics_and_support_assets_available; relations_missions_comms_and_docs_frequencies: typeof relations_missions_comms_and_docs_frequencies; relations_missions_rels: typeof relations_missions_rels; relations_missions: typeof relations_missions; relations_campaigns: typeof relations_campaigns; relations_factions_rels: typeof relations_factions_rels; relations_factions: typeof relations_factions; relations_technologies_requirements_prerequisite_technologies: typeof relations_technologies_requirements_prerequisite_technologies; relations_technologies_rels: typeof relations_technologies_rels; relations_technologies: typeof relations_technologies; relations_assets_crafting_crafting_data_inputs: typeof relations_assets_crafting_crafting_data_inputs; relations_assets_crafting_crafting_data_byproducts: typeof relations_assets_crafting_crafting_data_byproducts; relations_assets_rels: typeof relations_assets_rels; relations_assets: typeof relations_assets; relations_resources: typeof relations_resources; relations_vehicles_category: typeof relations_vehicles_category; relations_vehicles_materials: typeof relations_vehicles_materials; relations_vehicles_scrap_returns: typeof relations_vehicles_scrap_returns; relations_vehicles_upkeep_costs: typeof relations_vehicles_upkeep_costs; relations_vehicles_allowed_virtual_cargo: typeof relations_vehicles_allowed_virtual_cargo; relations_vehicles_pylons: typeof relations_vehicles_pylons; relations_vehicles_rels: typeof relations_vehicles_rels; relations_vehicles: typeof relations_vehicles; relations_structures_materials: typeof relations_structures_materials; relations_structures_resources_in_range: typeof relations_structures_resources_in_range; relations_structures_structures_in_range: typeof relations_structures_structures_in_range; relations_structures_upkeep: typeof relations_structures_upkeep; relations_structures_auto_generated_resources: typeof relations_structures_auto_generated_resources; relations_structures_allowed_storage: typeof relations_structures_allowed_storage; relations_structures_prohibited_storage: typeof relations_structures_prohibited_storage; relations_structures_rels: typeof relations_structures_rels; relations_structures: typeof relations_structures; relations_maps: typeof relations_maps; relations_narrative_events: typeof relations_narrative_events; relations_mission_files: typeof relations_mission_files; relations_mod_lists: typeof relations_mod_lists; relations_payload_locked_documents_rels: typeof relations_payload_locked_documents_rels; relations_payload_locked_documents: typeof relations_payload_locked_documents; relations_payload_preferences_rels: typeof relations_payload_preferences_rels; relations_payload_preferences: typeof relations_payload_preferences; relations_payload_migrations: typeof relations_payload_migrations; relations_game_rules: typeof relations_game_rules; }; declare module "@payloadcms/db-postgres" { export interface GeneratedDatabaseSchema { schema: DatabaseSchema; } }