2864 lines
99 KiB
TypeScript
2864 lines
99 KiB
TypeScript
/* 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;
|
|
}
|
|
}
|