diff --git a/src/payload-generated-schema.ts b/src/payload-generated-schema.ts index c24aa7a..b481622 100644 --- a/src/payload-generated-schema.ts +++ b/src/payload-generated-schema.ts @@ -6,24 +6,24 @@ * and re-run `payload generate:db-schema` to regenerate this file. */ -import { geometryColumn } from "@payloadcms/db-postgres"; +import type {} from "@payloadcms/db-postgres"; import { - type AnyPgColumn, - boolean, - foreignKey, - index, - integer, - jsonb, - numeric, - pgEnum, pgTable, - serial, - timestamp, + index, uniqueIndex, + foreignKey, + serial, varchar, + timestamp, + numeric, + jsonb, + integer, + boolean, + type AnyPgColumn, + pgEnum, } from "@payloadcms/db-postgres/drizzle/pg-core"; -import { relations } from "@payloadcms/db-postgres/drizzle"; - +import { sql, relations } from "@payloadcms/db-postgres/drizzle"; +import { geometryColumn } from "@payloadcms/db-postgres"; export const enum_game_vehicles_status = pgEnum("enum_game_vehicles_status", [ "idle", "assigned", @@ -33,9 +33,8 @@ export const enum_game_vehicles_status = pgEnum("enum_game_vehicles_status", [ ]); export const enum_game_event_logs_target_collection = pgEnum( "enum_game_event_logs_target_collection", - [ - "game-servers", - "game-structures", + [ + "game-structures", "game-vehicles", "game-npcs", "structures", @@ -56,9 +55,246 @@ export const enum_game_event_logs_target_collection = pgEnum( "loadouts", "market-listings", "market-negotiations", + "evaluations", + "tickets", + "game-servers", ], ); -export const enum_users_roles = pgEnum("enum_users_roles", ["guest", "user", "admin", "developer"]); +export const enum_users_roles = pgEnum("enum_users_roles", [ + "guest", + "user", + "trusted", + "admin", + "developer", +]); +export const enum_users_preferences_notifications_muted_types = pgEnum( + "enum_users_preferences_notifications_muted_types", + [ + "market:offer", + "market:counter", + "market:accept", + "market:reject", + "market:withdrawn", + "market:closed", + "market:sold", + "market:expired", + "award:granted", + "account:discord-request", + "finance:deposit", + "finance:withdraw", + "finance:transfer", + "shipment:completed", + "ticket:created", + "ticket:assigned", + "ticket:reply", + "ticket:status", + ], +); +export const enum_users_preferences_discord_muted_types = pgEnum( + "enum_users_preferences_discord_muted_types", + [ + "market:offer", + "market:counter", + "market:accept", + "market:reject", + "market:withdrawn", + "market:closed", + "market:sold", + "market:expired", + "award:granted", + "account:discord-request", + "finance:deposit", + "finance:withdraw", + "finance:transfer", + "shipment:completed", + "ticket:created", + "ticket:assigned", + "ticket:reply", + "ticket:status", + ], +); +export const enum_users_preferences_display_lead_or_actual = pgEnum( + "enum_users_preferences_display_lead_or_actual", + ["lead", "actual"], +); +export const enum_roles_permissions = pgEnum("enum_roles_permissions", [ + "system:admin-access", + "users:create", + "users:read", + "users:update", + "users:delete", + "users:unlock", + "users:assign-roles", + "ranks:create", + "ranks:read", + "ranks:update", + "ranks:delete", + "profiles:create", + "profiles:read", + "profiles:update", + "profiles:delete", + "awards:create", + "awards:read", + "awards:update", + "awards:delete", + "qualifications:create", + "qualifications:read", + "qualifications:update", + "qualifications:delete", + "assignments:create", + "assignments:read", + "assignments:update", + "assignments:delete", + "experience:create", + "experience:read", + "experience:update", + "experience:delete", + "user-notifications:create", + "user-notifications:read", + "user-notifications:update", + "user-notifications:delete", + "evaluations:create", + "evaluations:read", + "evaluations:update", + "evaluations:delete", + "missions:create", + "missions:read", + "missions:update", + "missions:delete", + "missions:read-sensitive", + "mission-attendances:create", + "mission-attendances:read", + "mission-attendances:update", + "mission-attendances:delete", + "campaigns:create", + "campaigns:read", + "campaigns:update", + "campaigns:delete", + "campaigns:manage", + "factions:create", + "factions:read", + "factions:update", + "factions:delete", + "technologies:create", + "technologies:read", + "technologies:update", + "technologies:delete", + "assets:create", + "assets:read", + "assets:update", + "assets:delete", + "resources:create", + "resources:read", + "resources:update", + "resources:delete", + "vehicles:create", + "vehicles:read", + "vehicles:update", + "vehicles:delete", + "structures:create", + "structures:read", + "structures:update", + "structures:delete", + "shipments:create", + "shipments:read", + "shipments:update", + "shipments:delete", + "bank-accounts:create", + "bank-accounts:read", + "bank-accounts:update", + "bank-accounts:delete", + "bank-transactions:create", + "bank-transactions:read", + "bank-transactions:update", + "bank-transactions:delete", + "ledger-entries:create", + "ledger-entries:read", + "ledger-entries:update", + "ledger-entries:delete", + "locker-storages:create", + "locker-storages:read", + "locker-storages:update", + "locker-storages:delete", + "loadouts:create", + "loadouts:read", + "loadouts:update", + "loadouts:delete", + "market-listings:create", + "market-listings:read", + "market-listings:update", + "market-listings:delete", + "market-negotiations:create", + "market-negotiations:read", + "market-negotiations:update", + "market-negotiations:delete", + "projects:create", + "projects:read", + "projects:update", + "projects:delete", + "labels:create", + "labels:read", + "labels:update", + "labels:delete", + "sprints:create", + "sprints:read", + "sprints:update", + "sprints:delete", + "releases:create", + "releases:read", + "releases:update", + "releases:delete", + "tickets:create", + "tickets:read", + "tickets:update", + "tickets:delete", + "game-structures:create", + "game-structures:read", + "game-structures:update", + "game-structures:delete", + "game-vehicles:create", + "game-vehicles:read", + "game-vehicles:update", + "game-vehicles:delete", + "game-npcs:create", + "game-npcs:read", + "game-npcs:update", + "game-npcs:delete", + "game-hard-resources:create", + "game-hard-resources:read", + "game-hard-resources:update", + "game-hard-resources:delete", + "game-event-logs:create", + "game-event-logs:read", + "game-event-logs:update", + "game-event-logs:delete", + "maps:create", + "maps:read", + "maps:update", + "maps:delete", + "narrative-events:create", + "narrative-events:read", + "narrative-events:update", + "narrative-events:delete", + "mission-files:create", + "mission-files:read", + "mission-files:update", + "mission-files:delete", + "mod-lists:create", + "mod-lists:read", + "mod-lists:update", + "mod-lists:delete", + "game-rules:read", + "game-rules:update", + "shims:read", + "shims:update", + "logistics:manage", + "intelligence:manage", + "profiles:intel_excerpt:update", + "banking:manage", + "tickets:staff", + "discord:staff", + "discord:announce", +]); export const enum_awards_type = pgEnum("enum_awards_type", ["commendation", "ribbon", "medal"]); export const enum_assignments_type = pgEnum("enum_assignments_type", [ "division", @@ -66,6 +302,19 @@ export const enum_assignments_type = pgEnum("enum_assignments_type", [ "team", "special", ]); +export const enum_evaluations_kind = pgEnum("enum_evaluations_kind", [ + "leader-direct", + "leader-indirect", + "subordinate", +]); +export const enum_evaluations_level = pgEnum("enum_evaluations_level", [ + "exceptional", + "excellent", + "proficient", + "adequate", + "moderate", + "under-review", +]); export const enum_missions_factions_involved_threat_level = pgEnum( "enum_missions_factions_involved_threat_level", ["ally", "friendly", "neutral", "hostile"], @@ -101,12 +350,18 @@ export const enum_missions_civilian_presence = pgEnum("enum_missions_civilian_pr "Medium", "High", ]); +export const enum_mission_attendances_response = pgEnum("enum_mission_attendances_response", [ + "yes", + "no", + "tentative", +]); export const enum_campaigns_status = pgEnum("enum_campaigns_status", [ "concept", "inProgress", "completed", ]); export const enum_factions_type = pgEnum("enum_factions_type", [ + "playerFaction", "majorFaction", "minorFaction", "corporation", @@ -303,12 +558,97 @@ export const enum_market_negotiations_proposed_by = pgEnum("enum_market_negotiat "buyer", "seller", ]); +export const enum_tickets_activity_type = pgEnum("enum_tickets_activity_type", [ + "system", + "agent_message", + "client_message", +]); +export const enum_tickets_category = pgEnum("enum_tickets_category", [ + "bug_report", + "feature_request", + "support_request", + "other", +]); +export const enum_tickets_priority = pgEnum("enum_tickets_priority", [ + "low", + "medium", + "high", + "critical", +]); +export const enum_tickets_status = pgEnum("enum_tickets_status", [ + "open", + "in_review", + "planning", + "in_progress", + "waiting_on_reporter", + "in_testing", + "resolved", + "canceled", + "closed", +]); +export const enum_tickets_type = pgEnum("enum_tickets_type", [ + "task", + "bug", + "story", + "epic", + "improvement", +]); +export const enum_tickets_resolution = pgEnum("enum_tickets_resolution", [ + "fixed", + "wontfix", + "duplicate", + "invalid", +]); +export const enum_projects_status = pgEnum("enum_projects_status", ["active", "archived"]); +export const enum_sprints_status = pgEnum("enum_sprints_status", [ + "planning", + "active", + "completed", +]); +export const enum_releases_status = pgEnum("enum_releases_status", [ + "draft", + "in_progress", + "released", +]); export const enum_narrative_events_triggers_type = pgEnum("enum_narrative_events_triggers_type", [ "manual", "mission_complete", "timer", "condition", ]); +export const enum_game_servers_status = pgEnum("enum_game_servers_status", ["online", "offline"]); +export const enum_arma_commands_status = pgEnum("enum_arma_commands_status", [ + "queued", + "delivered", + "succeeded", + "failed", +]); +export const enum_plugin_ai_instructions_field_type = pgEnum( + "enum_plugin_ai_instructions_field_type", + ["text", "textarea", "upload", "richText"], +); +export const enum_plugin_ai_instructions_model_id = pgEnum("enum_plugin_ai_instructions_model_id", [ + "unsloth-text", +]); +export const enum_shims_shims_targeting_roles = pgEnum("enum_shims_shims_targeting_roles", [ + "guest", + "user", + "trusted", + "admin", + "developer", +]); +export const enum_shims_shims_type = pgEnum("enum_shims_shims_type", ["css", "js"]); +export const enum_shims_shims_targeting_audience = pgEnum("enum_shims_shims_targeting_audience", [ + "all", + "percentage", + "users", + "roles", +]); +export const enum_shims_shims_paths_match_type = pgEnum("enum_shims_shims_paths_match_type", [ + "all", + "include", + "exclude", +]); export const media = pgTable( "media", @@ -650,6 +990,44 @@ export const users_roles = pgTable( ], ); +export const users_preferences_notifications_muted_types = pgTable( + "users_preferences_notifications_muted_types", + { + order: integer("order").notNull(), + parent: integer("parent_id").notNull(), + value: enum_users_preferences_notifications_muted_types("value"), + id: serial("id").primaryKey(), + }, + (columns) => [ + index("users_preferences_notifications_muted_types_order_idx").on(columns.order), + index("users_preferences_notifications_muted_types_parent_idx").on(columns.parent), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [users.id], + name: "users_preferences_notifications_muted_types_parent_fk", + }).onDelete("cascade"), + ], +); + +export const users_preferences_discord_muted_types = pgTable( + "users_preferences_discord_muted_types", + { + order: integer("order").notNull(), + parent: integer("parent_id").notNull(), + value: enum_users_preferences_discord_muted_types("value"), + id: serial("id").primaryKey(), + }, + (columns) => [ + index("users_preferences_discord_muted_types_order_idx").on(columns.order), + index("users_preferences_discord_muted_types_parent_idx").on(columns.parent), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [users.id], + name: "users_preferences_discord_muted_types_parent_fk", + }).onDelete("cascade"), + ], +); + export const users_sessions = pgTable( "users_sessions", { @@ -679,9 +1057,24 @@ export const users = pgTable( { id: serial("id").primaryKey(), discordUsername: varchar("discord_username").notNull(), + discordId: varchar("discord_id"), displayName: varchar("display_name").notNull(), payloadDisplayName: varchar("payload_display_name"), steamId: varchar("steam_id").notNull(), + preferences_notifications_mutedAll: boolean("preferences_notifications_muted_all").default( + false, + ), + preferences_display_showCallsign: boolean("preferences_display_show_callsign").default(false), + preferences_display_leadOrActual: enum_users_preferences_display_lead_or_actual( + "preferences_display_lead_or_actual", + ).default("lead"), + preferences_display_showVersionOverlay: boolean( + "preferences_display_show_version_overlay", + ).default(true), + preferences_display_xpDisplayMini: boolean("preferences_display_xp_display_mini").default( + false, + ), + preferences_discord_enabled: boolean("preferences_discord_enabled").default(false), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), @@ -703,12 +1096,110 @@ export const users = pgTable( }, (columns) => [ uniqueIndex("users_discord_username_idx").on(columns.discordUsername), + uniqueIndex("users_discord_id_idx").on(columns.discordId), 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 users_rels = pgTable( + "users_rels", + { + id: serial("id").primaryKey(), + order: integer("order"), + parent: integer("parent_id").notNull(), + path: varchar("path").notNull(), + rolesID: integer("roles_id"), + }, + (columns) => [ + index("users_rels_order_idx").on(columns.order), + index("users_rels_parent_idx").on(columns.parent), + index("users_rels_path_idx").on(columns.path), + index("users_rels_roles_id_idx").on(columns.rolesID), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [users.id], + name: "users_rels_parent_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["rolesID"]], + foreignColumns: [roles.id], + name: "users_rels_roles_fk", + }).onDelete("cascade"), + ], +); + +export const roles_permissions = pgTable( + "roles_permissions", + { + order: integer("order").notNull(), + parent: integer("parent_id").notNull(), + value: enum_roles_permissions("value"), + id: serial("id").primaryKey(), + }, + (columns) => [ + index("roles_permissions_order_idx").on(columns.order), + index("roles_permissions_parent_idx").on(columns.parent), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [roles.id], + name: "roles_permissions_parent_fk", + }).onDelete("cascade"), + ], +); + +export const roles = pgTable( + "roles", + { + id: serial("id").primaryKey(), + name: varchar("name").notNull(), + slug: varchar("slug").notNull(), + description: varchar("description"), + isSystem: boolean("is_system").default(false), + isSuperuser: boolean("is_superuser").default(false), + 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("roles_name_idx").on(columns.name), + uniqueIndex("roles_slug_idx").on(columns.slug), + index("roles_updated_at_idx").on(columns.updatedAt), + index("roles_created_at_idx").on(columns.createdAt), + ], +); + +export const roles_rels = pgTable( + "roles_rels", + { + id: serial("id").primaryKey(), + order: integer("order"), + parent: integer("parent_id").notNull(), + path: varchar("path").notNull(), + rolesID: integer("roles_id"), + }, + (columns) => [ + index("roles_rels_order_idx").on(columns.order), + index("roles_rels_parent_idx").on(columns.parent), + index("roles_rels_path_idx").on(columns.path), + index("roles_rels_roles_id_idx").on(columns.rolesID), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [roles.id], + name: "roles_rels_parent_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["rolesID"]], + foreignColumns: [roles.id], + name: "roles_rels_roles_fk", + }).onDelete("cascade"), + ], +); + export const ranks = pgTable( "ranks", { @@ -737,6 +1228,40 @@ export const ranks = pgTable( ], ); +export const profiles_progression_awards = pgTable( + "profiles_progression_awards", + { + _order: integer("_order").notNull(), + _parentID: integer("_parent_id").notNull(), + id: varchar("id").primaryKey(), + award: integer("award_id") + .notNull() + .references(() => awards.id, { + onDelete: "set null", + }), + awardedBy: integer("awarded_by_id").references(() => profiles.id, { + onDelete: "set null", + }), + awardedAt: timestamp("awarded_at", { + mode: "string", + withTimezone: true, + precision: 3, + }).notNull(), + awardReason: varchar("award_reason"), + }, + (columns) => [ + index("profiles_progression_awards_order_idx").on(columns._order), + index("profiles_progression_awards_parent_id_idx").on(columns._parentID), + index("profiles_progression_awards_award_idx").on(columns.award), + index("profiles_progression_awards_awarded_by_idx").on(columns.awardedBy), + foreignKey({ + columns: [columns["_parentID"]], + foreignColumns: [profiles.id], + name: "profiles_progression_awards_parent_id_fk", + }).onDelete("cascade"), + ], +); + export const profiles = pgTable( "profiles", { @@ -751,6 +1276,11 @@ export const profiles = pgTable( .references(() => ranks.id, { onDelete: "set null", }), + dossier_enlistmentDate: timestamp("dossier_enlistment_date", { + mode: "string", + withTimezone: true, + precision: 3, + }).notNull(), dossier_personalExcerpt: varchar("dossier_personal_excerpt"), dossier_intelExcerpt: jsonb("dossier_intel_excerpt"), progression_scoreboard_infantryKills: numeric("progression_scoreboard_infantry_kills", { @@ -784,6 +1314,50 @@ export const profiles = pgTable( "progression_minigames_flappy_bird_xp_earned", { mode: "number" }, ).default(0), + progression_minigames_eodMinesweeper_gamesPlayed: numeric( + "progression_minigames_eod_minesweeper_games_played", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_wins: numeric( + "progression_minigames_eod_minesweeper_wins", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_losses: numeric( + "progression_minigames_eod_minesweeper_losses", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_bestScore: numeric( + "progression_minigames_eod_minesweeper_best_score", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_xpEarned: numeric( + "progression_minigames_eod_minesweeper_xp_earned", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_bestTrainingTime: numeric( + "progression_minigames_eod_minesweeper_best_training_time", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_bestPerimeterTime: numeric( + "progression_minigames_eod_minesweeper_best_perimeter_time", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_bestSupplyRoadTime: numeric( + "progression_minigames_eod_minesweeper_best_supply_road_time", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_bestTrainingFlags: numeric( + "progression_minigames_eod_minesweeper_best_training_flags", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_bestPerimeterFlags: numeric( + "progression_minigames_eod_minesweeper_best_perimeter_flags", + { mode: "number" }, + ).default(0), + progression_minigames_eodMinesweeper_bestSupplyRoadFlags: numeric( + "progression_minigames_eod_minesweeper_best_supply_road_flags", + { mode: "number" }, + ).default(0), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), @@ -806,25 +1380,18 @@ export const profiles_rels = pgTable( order: integer("order"), parent: integer("parent_id").notNull(), path: varchar("path").notNull(), - awardsID: integer("awards_id"), qualificationsID: integer("qualifications_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), index("profiles_rels_qualifications_id_idx").on(columns.qualificationsID), 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"), foreignKey({ columns: [columns["qualificationsID"]], foreignColumns: [qualifications.id], @@ -989,6 +1556,44 @@ export const user_notifications = pgTable( ], ); +export const evaluations = pgTable( + "evaluations", + { + id: serial("id").primaryKey(), + rater: integer("rater_id") + .notNull() + .references(() => users.id, { + onDelete: "set null", + }), + ratee: integer("ratee_id") + .notNull() + .references(() => users.id, { + onDelete: "set null", + }), + mission: integer("mission_id") + .notNull() + .references(() => missions.id, { + onDelete: "set null", + }), + kind: enum_evaluations_kind("kind").notNull(), + level: enum_evaluations_level("level").notNull(), + comment: varchar("comment"), + 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("evaluations_rater_idx").on(columns.rater), + index("evaluations_ratee_idx").on(columns.ratee), + index("evaluations_mission_idx").on(columns.mission), + index("evaluations_updated_at_idx").on(columns.updatedAt), + index("evaluations_created_at_idx").on(columns.createdAt), + ], +); + export const missions_mission_roles_provided_roles = pgTable( "missions_mission_roles_provided_roles", { @@ -1043,6 +1648,7 @@ export const missions_mission_objectives = pgTable( description: varchar("description"), missionCritical: boolean("mission_critical").default(true), successOrFailConditions: varchar("success_or_fail_conditions"), + redacted: boolean("redacted").default(false), }, (columns) => [ index("missions_mission_objectives_order_idx").on(columns._order), @@ -1172,6 +1778,16 @@ export const missions = pgTable( codeName: varchar("code_name").notNull(), summary: varchar("summary").notNull(), operationType: enum_missions_operation_type("operation_type").notNull(), + discordMessageId: varchar("discord_message_id"), + discordAttendanceHash: varchar("discord_attendance_hash"), + discordAttendanceSentAt: timestamp("discord_attendance_sent_at", { + mode: "string", + withTimezone: true, + precision: 3, + }), + coverImage: integer("cover_image_id").references(() => media.id, { + onDelete: "set null", + }), classification_map: integer("classification_map_id") .notNull() .references(() => maps.id, { @@ -1208,6 +1824,11 @@ export const missions = pgTable( ) .notNull() .default("leadership"), + ownershipAndStatus_completedAt: timestamp("ownership_and_status_completed_at", { + mode: "string", + withTimezone: true, + precision: 3, + }), missionRoles_maxPlayers: numeric("mission_roles_max_players", { mode: "number" }) .notNull() .default(32), @@ -1244,6 +1865,7 @@ export const missions = pgTable( }, (columns) => [ uniqueIndex("missions_code_name_idx").on(columns.codeName), + index("missions_cover_image_idx").on(columns.coverImage), index("missions_classification_classification_map_idx").on(columns.classification_map), index("missions_classification_classification_campaign_idx").on( columns.classification_campaign, @@ -1293,6 +1915,36 @@ export const missions_rels = pgTable( ], ); +export const mission_attendances = pgTable( + "mission_attendances", + { + id: serial("id").primaryKey(), + mission: integer("mission_id") + .notNull() + .references(() => missions.id, { + onDelete: "set null", + }), + user: integer("user_id") + .notNull() + .references(() => users.id, { + onDelete: "set null", + }), + response: enum_mission_attendances_response("response").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("mission_attendances_mission_idx").on(columns.mission), + index("mission_attendances_user_idx").on(columns.user), + index("mission_attendances_updated_at_idx").on(columns.updatedAt), + index("mission_attendances_created_at_idx").on(columns.createdAt), + ], +); + export const campaigns = pgTable( "campaigns", { @@ -1303,6 +1955,12 @@ export const campaigns = pgTable( description: jsonb("description"), startDate: timestamp("start_date", { mode: "string", withTimezone: true, precision: 3 }), endDate: timestamp("end_date", { mode: "string", withTimezone: true, precision: 3 }), + coverImage: integer("cover_image_id").references(() => media.id, { + onDelete: "set null", + }), + owner: integer("owner_id").references(() => users.id, { + onDelete: "set null", + }), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), @@ -1312,11 +1970,39 @@ export const campaigns = pgTable( }, (columns) => [ uniqueIndex("campaigns_name_idx").on(columns.name), + index("campaigns_cover_image_idx").on(columns.coverImage), + index("campaigns_owner_idx").on(columns.owner), index("campaigns_updated_at_idx").on(columns.updatedAt), index("campaigns_created_at_idx").on(columns.createdAt), ], ); +export const factions_relationships = pgTable( + "factions_relationships", + { + _order: integer("_order").notNull(), + _parentID: integer("_parent_id").notNull(), + id: varchar("id").primaryKey(), + targetFaction: integer("target_faction_id") + .notNull() + .references(() => factions.id, { + onDelete: "set null", + }), + value: numeric("value", { mode: "number" }).notNull().default(0), + notes: varchar("notes"), + }, + (columns) => [ + index("factions_relationships_order_idx").on(columns._order), + index("factions_relationships_parent_id_idx").on(columns._parentID), + index("factions_relationships_target_faction_idx").on(columns.targetFaction), + foreignKey({ + columns: [columns["_parentID"]], + foreignColumns: [factions.id], + name: "factions_relationships_parent_id_fk", + }).onDelete("cascade"), + ], +); + export const factions = pgTable( "factions", { @@ -1324,8 +2010,12 @@ export const factions = pgTable( name: varchar("name").notNull(), type: enum_factions_type("type").notNull().default("minorFaction"), description: jsonb("description"), + reputation: numeric("reputation", { mode: "number" }).default(0), playableFaction: boolean("playable_faction"), startingFaction: boolean("starting_faction"), + coverImage: integer("cover_image_id").references(() => media.id, { + onDelete: "set null", + }), updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) .defaultNow() .notNull(), @@ -1335,6 +2025,7 @@ export const factions = pgTable( }, (columns) => [ uniqueIndex("factions_name_idx").on(columns.name), + index("factions_cover_image_idx").on(columns.coverImage), index("factions_updated_at_idx").on(columns.updatedAt), index("factions_created_at_idx").on(columns.createdAt), ], @@ -2673,6 +3364,7 @@ export const market_negotiations = pgTable( }), status: enum_market_negotiations_status("status").notNull().default("open"), patience: numeric("patience", { mode: "number" }).default(0), + quantity: numeric("quantity", { mode: "number" }).default(1), amount: numeric("amount", { mode: "number" }).notNull(), proposedBy: enum_market_negotiations_proposed_by("proposed_by").notNull().default("buyer"), acceptedPrice: numeric("accepted_price", { mode: "number" }), @@ -2692,6 +3384,226 @@ export const market_negotiations = pgTable( ], ); +export const tickets_activity = pgTable( + "tickets_activity", + { + _order: integer("_order").notNull(), + _parentID: integer("_parent_id").notNull(), + id: varchar("id").primaryKey(), + type: enum_tickets_activity_type("type").notNull().default("system"), + content: jsonb("content").notNull(), + author: integer("author_id").references(() => users.id, { + onDelete: "set null", + }), + created_at: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }), + }, + (columns) => [ + index("tickets_activity_order_idx").on(columns._order), + index("tickets_activity_parent_id_idx").on(columns._parentID), + index("tickets_activity_author_idx").on(columns.author), + foreignKey({ + columns: [columns["_parentID"]], + foreignColumns: [tickets.id], + name: "tickets_activity_parent_id_fk", + }).onDelete("cascade"), + ], +); + +export const tickets = pgTable( + "tickets", + { + id: serial("id").primaryKey(), + title: varchar("title").notNull(), + description: jsonb("description").notNull(), + category: enum_tickets_category("category").notNull().default("support_request"), + priority: enum_tickets_priority("priority").notNull().default("medium"), + status: enum_tickets_status("status").notNull().default("open"), + reporter: integer("reporter_id") + .notNull() + .references(() => users.id, { + onDelete: "set null", + }), + assignee: integer("assignee_id").references(() => users.id, { + onDelete: "set null", + }), + closedAt: timestamp("closed_at", { mode: "string", withTimezone: true, precision: 3 }), + project: integer("project_id").references(() => projects.id, { + onDelete: "set null", + }), + sprint: integer("sprint_id").references(() => sprints.id, { + onDelete: "set null", + }), + release: integer("release_id").references(() => releases.id, { + onDelete: "set null", + }), + parentTicket: integer("parent_ticket_id").references((): AnyPgColumn => tickets.id, { + onDelete: "set null", + }), + type: enum_tickets_type("type").default("task"), + storyPoints: numeric("story_points", { mode: "number" }), + estimate: numeric("estimate", { mode: "number" }), + startDate: timestamp("start_date", { mode: "string", withTimezone: true, precision: 3 }), + dueDate: timestamp("due_date", { mode: "string", withTimezone: true, precision: 3 }), + resolution: enum_tickets_resolution("resolution"), + 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("tickets_category_idx").on(columns.category), + index("tickets_priority_idx").on(columns.priority), + index("tickets_status_idx").on(columns.status), + index("tickets_reporter_idx").on(columns.reporter), + index("tickets_assignee_idx").on(columns.assignee), + index("tickets_project_idx").on(columns.project), + index("tickets_sprint_idx").on(columns.sprint), + index("tickets_release_idx").on(columns.release), + index("tickets_parent_ticket_idx").on(columns.parentTicket), + index("tickets_updated_at_idx").on(columns.updatedAt), + index("tickets_created_at_idx").on(columns.createdAt), + ], +); + +export const tickets_rels = pgTable( + "tickets_rels", + { + id: serial("id").primaryKey(), + order: integer("order"), + parent: integer("parent_id").notNull(), + path: varchar("path").notNull(), + labelsID: integer("labels_id"), + }, + (columns) => [ + index("tickets_rels_order_idx").on(columns.order), + index("tickets_rels_parent_idx").on(columns.parent), + index("tickets_rels_path_idx").on(columns.path), + index("tickets_rels_labels_id_idx").on(columns.labelsID), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [tickets.id], + name: "tickets_rels_parent_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["labelsID"]], + foreignColumns: [labels.id], + name: "tickets_rels_labels_fk", + }).onDelete("cascade"), + ], +); + +export const projects = pgTable( + "projects", + { + id: serial("id").primaryKey(), + name: varchar("name").notNull(), + key: varchar("key").notNull(), + description: jsonb("description"), + lead: integer("lead_id").references(() => users.id, { + onDelete: "set null", + }), + status: enum_projects_status("status").default("active"), + defaultAssignee: integer("default_assignee_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) => [ + uniqueIndex("projects_key_idx").on(columns.key), + index("projects_lead_idx").on(columns.lead), + index("projects_default_assignee_idx").on(columns.defaultAssignee), + index("projects_updated_at_idx").on(columns.updatedAt), + index("projects_created_at_idx").on(columns.createdAt), + ], +); + +export const sprints = pgTable( + "sprints", + { + id: serial("id").primaryKey(), + name: varchar("name").notNull(), + project: integer("project_id") + .notNull() + .references(() => projects.id, { + onDelete: "set null", + }), + goal: varchar("goal"), + startDate: timestamp("start_date", { mode: "string", withTimezone: true, precision: 3 }), + endDate: timestamp("end_date", { mode: "string", withTimezone: true, precision: 3 }), + status: enum_sprints_status("status").default("planning"), + capacity: numeric("capacity", { mode: "number" }), + 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("sprints_project_idx").on(columns.project), + index("sprints_updated_at_idx").on(columns.updatedAt), + index("sprints_created_at_idx").on(columns.createdAt), + ], +); + +export const releases = pgTable( + "releases", + { + id: serial("id").primaryKey(), + name: varchar("name").notNull(), + project: integer("project_id") + .notNull() + .references(() => projects.id, { + onDelete: "set null", + }), + description: jsonb("description"), + status: enum_releases_status("status").default("draft"), + releaseDate: timestamp("release_date", { mode: "string", withTimezone: true, precision: 3 }), + targetVersion: varchar("target_version"), + 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("releases_project_idx").on(columns.project), + index("releases_updated_at_idx").on(columns.updatedAt), + index("releases_created_at_idx").on(columns.createdAt), + ], +); + +export const labels = pgTable( + "labels", + { + id: serial("id").primaryKey(), + name: varchar("name").notNull(), + color: varchar("color").default("#6366f1"), + project: integer("project_id").references(() => projects.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("labels_project_idx").on(columns.project), + index("labels_updated_at_idx").on(columns.updatedAt), + index("labels_created_at_idx").on(columns.createdAt), + ], +); + export const maps = pgTable( "maps", { @@ -2803,6 +3715,177 @@ export const mod_lists = pgTable( ], ); +export const game_servers = pgTable( + "game_servers", + { + id: serial("id").primaryKey(), + serverId: varchar("server_id").notNull(), + name: varchar("name").notNull(), + status: enum_game_servers_status("status").notNull().default("offline"), + lastSeenAt: timestamp("last_seen_at", { mode: "string", withTimezone: true, precision: 3 }), + metadata: jsonb("metadata"), + 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("game_servers_server_id_idx").on(columns.serverId), + index("game_servers_updated_at_idx").on(columns.updatedAt), + index("game_servers_created_at_idx").on(columns.createdAt), + ], +); + +export const arma_sync_events = pgTable( + "arma_sync_events", + { + id: serial("id").primaryKey(), + eventId: varchar("event_id").notNull(), + server: integer("server_id") + .notNull() + .references(() => game_servers.id, { + onDelete: "set null", + }), + type: varchar("type").notNull(), + occurredAt: timestamp("occurred_at", { + mode: "string", + withTimezone: true, + precision: 3, + }).notNull(), + payload: jsonb("payload").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("arma_sync_events_event_id_idx").on(columns.eventId), + index("arma_sync_events_server_idx").on(columns.server), + index("arma_sync_events_type_idx").on(columns.type), + index("arma_sync_events_updated_at_idx").on(columns.updatedAt), + index("arma_sync_events_created_at_idx").on(columns.createdAt), + ], +); + +export const arma_commands = pgTable( + "arma_commands", + { + id: serial("id").primaryKey(), + commandId: varchar("command_id").notNull(), + server: integer("server_id") + .notNull() + .references(() => game_servers.id, { + onDelete: "set null", + }), + type: varchar("type").notNull(), + payload: jsonb("payload").notNull(), + status: enum_arma_commands_status("status").notNull().default("queued"), + result: jsonb("result"), + error: varchar("error"), + deliveredAt: timestamp("delivered_at", { mode: "string", withTimezone: true, precision: 3 }), + completedAt: timestamp("completed_at", { 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("arma_commands_command_id_idx").on(columns.commandId), + index("arma_commands_server_idx").on(columns.server), + index("arma_commands_updated_at_idx").on(columns.updatedAt), + index("arma_commands_created_at_idx").on(columns.createdAt), + ], +); + +export const plugin_ai_instructions_images = pgTable( + "plugin_ai_instructions_images", + { + _order: integer("_order").notNull(), + _parentID: integer("_parent_id").notNull(), + id: varchar("id").primaryKey(), + image: integer("image_id").references(() => media.id, { + onDelete: "set null", + }), + }, + (columns) => [ + index("plugin_ai_instructions_images_order_idx").on(columns._order), + index("plugin_ai_instructions_images_parent_id_idx").on(columns._parentID), + index("plugin_ai_instructions_images_image_idx").on(columns.image), + foreignKey({ + columns: [columns["_parentID"]], + foreignColumns: [plugin_ai_instructions.id], + name: "plugin_ai_instructions_images_parent_id_fk", + }).onDelete("cascade"), + ], +); + +export const plugin_ai_instructions = pgTable( + "plugin_ai_instructions", + { + id: serial("id").primaryKey(), + "schema-path": varchar("schema_path"), + "field-type": enum_plugin_ai_instructions_field_type("field_type").default("text"), + "relation-to": varchar("relation_to"), + "model-id": enum_plugin_ai_instructions_model_id("model_id"), + disabled: boolean("disabled").default(false), + prompt: varchar("prompt"), + system: varchar("system").default( + "INSTRUCTIONS:\nYou are a highly skilled and professional blog writer,\nrenowned for crafting engaging and well-organized articles.\nWhen given a title, you meticulously create blogs that are not only\ninformative and accurate but also captivating and beautifully structured.", + ), + layout: varchar("layout").default( + '[paragraph] - Write a concise introduction (2-3 sentences) that outlines the main topic.\n[horizontalrule] - Insert a horizontal rule to separate the introduction from the main content.\n[list] - Create a list with 3-5 items. Each list item should contain:\n a. [heading] - A brief, descriptive heading (up to 5 words)\n b. [paragraph] - A short explanation or elaboration (1-2 sentences)\n[horizontalrule] - Insert another horizontal rule to separate the main content from the conclusion.\n[paragraph] - Compose a brief conclusion (2-3 sentences) summarizing the key points.\n[quote] - Include a relevant quote from a famous person, directly related to the topic. Format: "Quote text." - Author Name', + ), + "unsloth-text-settings_model": varchar("unsloth_text_settings_model").default( + "unsloth/gemma-4-E4B-it-qat-GGUF", + ), + 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("plugin_ai_instructions_schema_path_idx").on(columns["schema-path"]), + index("plugin_ai_instructions_updated_at_idx").on(columns.updatedAt), + index("plugin_ai_instructions_created_at_idx").on(columns.createdAt), + ], +); + +export const payload_mcp_api_keys = pgTable( + "payload_mcp_api_keys", + { + id: serial("id").primaryKey(), + user: integer("user_id") + .notNull() + .references(() => users.id, { + onDelete: "set null", + }), + label: varchar("label"), + description: varchar("description"), + updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }) + .defaultNow() + .notNull(), + createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }) + .defaultNow() + .notNull(), + enableAPIKey: boolean("enable_a_p_i_key"), + apiKey: varchar("api_key"), + apiKeyIndex: varchar("api_key_index"), + }, + (columns) => [ + index("payload_mcp_api_keys_user_idx").on(columns.user), + index("payload_mcp_api_keys_updated_at_idx").on(columns.updatedAt), + index("payload_mcp_api_keys_created_at_idx").on(columns.createdAt), + ], +); + export const payload_kv = pgTable( "payload_kv", { @@ -2846,6 +3929,7 @@ export const payload_locked_documents_rels = pgTable( "game-npcsID": integer("game_npcs_id"), "game-event-logsID": integer("game_event_logs_id"), usersID: integer("users_id"), + rolesID: integer("roles_id"), ranksID: integer("ranks_id"), profilesID: integer("profiles_id"), awardsID: integer("awards_id"), @@ -2853,7 +3937,9 @@ export const payload_locked_documents_rels = pgTable( assignmentsID: integer("assignments_id"), experienceID: integer("experience_id"), "user-notificationsID": integer("user_notifications_id"), + evaluationsID: integer("evaluations_id"), missionsID: integer("missions_id"), + "mission-attendancesID": integer("mission_attendances_id"), campaignsID: integer("campaigns_id"), factionsID: integer("factions_id"), technologiesID: integer("technologies_id"), @@ -2869,10 +3955,20 @@ export const payload_locked_documents_rels = pgTable( loadoutsID: integer("loadouts_id"), "market-listingsID": integer("market_listings_id"), "market-negotiationsID": integer("market_negotiations_id"), + ticketsID: integer("tickets_id"), + projectsID: integer("projects_id"), + sprintsID: integer("sprints_id"), + releasesID: integer("releases_id"), + labelsID: integer("labels_id"), mapsID: integer("maps_id"), "narrative-eventsID": integer("narrative_events_id"), "mission-filesID": integer("mission_files_id"), "mod-listsID": integer("mod_lists_id"), + "game-serversID": integer("game_servers_id"), + "arma-sync-eventsID": integer("arma_sync_events_id"), + "arma-commandsID": integer("arma_commands_id"), + "plugin-ai-instructionsID": integer("plugin_ai_instructions_id"), + "payload-mcp-api-keysID": integer("payload_mcp_api_keys_id"), }, (columns) => [ index("payload_locked_documents_rels_order_idx").on(columns.order), @@ -2887,6 +3983,7 @@ export const payload_locked_documents_rels = pgTable( index("payload_locked_documents_rels_game_npcs_id_idx").on(columns["game-npcsID"]), index("payload_locked_documents_rels_game_event_logs_id_idx").on(columns["game-event-logsID"]), index("payload_locked_documents_rels_users_id_idx").on(columns.usersID), + index("payload_locked_documents_rels_roles_id_idx").on(columns.rolesID), 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), @@ -2896,7 +3993,11 @@ export const payload_locked_documents_rels = pgTable( index("payload_locked_documents_rels_user_notifications_id_idx").on( columns["user-notificationsID"], ), + index("payload_locked_documents_rels_evaluations_id_idx").on(columns.evaluationsID), index("payload_locked_documents_rels_missions_id_idx").on(columns.missionsID), + index("payload_locked_documents_rels_mission_attendances_id_idx").on( + columns["mission-attendancesID"], + ), 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), @@ -2916,12 +4017,28 @@ export const payload_locked_documents_rels = pgTable( index("payload_locked_documents_rels_market_negotiations_id_idx").on( columns["market-negotiationsID"], ), + index("payload_locked_documents_rels_tickets_id_idx").on(columns.ticketsID), + index("payload_locked_documents_rels_projects_id_idx").on(columns.projectsID), + index("payload_locked_documents_rels_sprints_id_idx").on(columns.sprintsID), + index("payload_locked_documents_rels_releases_id_idx").on(columns.releasesID), + index("payload_locked_documents_rels_labels_id_idx").on(columns.labelsID), 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"]), + index("payload_locked_documents_rels_game_servers_id_idx").on(columns["game-serversID"]), + index("payload_locked_documents_rels_arma_sync_events_id_idx").on( + columns["arma-sync-eventsID"], + ), + index("payload_locked_documents_rels_arma_commands_id_idx").on(columns["arma-commandsID"]), + index("payload_locked_documents_rels_plugin_ai_instructions_id_idx").on( + columns["plugin-ai-instructionsID"], + ), + index("payload_locked_documents_rels_payload_mcp_api_keys_id_idx").on( + columns["payload-mcp-api-keysID"], + ), foreignKey({ columns: [columns["parent"]], foreignColumns: [payload_locked_documents.id], @@ -2962,6 +4079,11 @@ export const payload_locked_documents_rels = pgTable( foreignColumns: [users.id], name: "payload_locked_documents_rels_users_fk", }).onDelete("cascade"), + foreignKey({ + columns: [columns["rolesID"]], + foreignColumns: [roles.id], + name: "payload_locked_documents_rels_roles_fk", + }).onDelete("cascade"), foreignKey({ columns: [columns["ranksID"]], foreignColumns: [ranks.id], @@ -2997,11 +4119,21 @@ export const payload_locked_documents_rels = pgTable( foreignColumns: [user_notifications.id], name: "payload_locked_documents_rels_user_notifications_fk", }).onDelete("cascade"), + foreignKey({ + columns: [columns["evaluationsID"]], + foreignColumns: [evaluations.id], + name: "payload_locked_documents_rels_evaluations_fk", + }).onDelete("cascade"), foreignKey({ columns: [columns["missionsID"]], foreignColumns: [missions.id], name: "payload_locked_documents_rels_missions_fk", }).onDelete("cascade"), + foreignKey({ + columns: [columns["mission-attendancesID"]], + foreignColumns: [mission_attendances.id], + name: "payload_locked_documents_rels_mission_attendances_fk", + }).onDelete("cascade"), foreignKey({ columns: [columns["campaignsID"]], foreignColumns: [campaigns.id], @@ -3077,6 +4209,31 @@ export const payload_locked_documents_rels = pgTable( foreignColumns: [market_negotiations.id], name: "payload_locked_documents_rels_market_negotiations_fk", }).onDelete("cascade"), + foreignKey({ + columns: [columns["ticketsID"]], + foreignColumns: [tickets.id], + name: "payload_locked_documents_rels_tickets_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["projectsID"]], + foreignColumns: [projects.id], + name: "payload_locked_documents_rels_projects_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["sprintsID"]], + foreignColumns: [sprints.id], + name: "payload_locked_documents_rels_sprints_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["releasesID"]], + foreignColumns: [releases.id], + name: "payload_locked_documents_rels_releases_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["labelsID"]], + foreignColumns: [labels.id], + name: "payload_locked_documents_rels_labels_fk", + }).onDelete("cascade"), foreignKey({ columns: [columns["mapsID"]], foreignColumns: [maps.id], @@ -3097,6 +4254,31 @@ export const payload_locked_documents_rels = pgTable( foreignColumns: [mod_lists.id], name: "payload_locked_documents_rels_mod_lists_fk", }).onDelete("cascade"), + foreignKey({ + columns: [columns["game-serversID"]], + foreignColumns: [game_servers.id], + name: "payload_locked_documents_rels_game_servers_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["arma-sync-eventsID"]], + foreignColumns: [arma_sync_events.id], + name: "payload_locked_documents_rels_arma_sync_events_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["arma-commandsID"]], + foreignColumns: [arma_commands.id], + name: "payload_locked_documents_rels_arma_commands_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["plugin-ai-instructionsID"]], + foreignColumns: [plugin_ai_instructions.id], + name: "payload_locked_documents_rels_plugin_ai_instructions_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["payload-mcp-api-keysID"]], + foreignColumns: [payload_mcp_api_keys.id], + name: "payload_locked_documents_rels_payload_mcp_api_keys_fk", + }).onDelete("cascade"), ], ); @@ -3128,12 +4310,16 @@ export const payload_preferences_rels = pgTable( parent: integer("parent_id").notNull(), path: varchar("path").notNull(), usersID: integer("users_id"), + "payload-mcp-api-keysID": integer("payload_mcp_api_keys_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), + index("payload_preferences_rels_payload_mcp_api_keys_id_idx").on( + columns["payload-mcp-api-keysID"], + ), foreignKey({ columns: [columns["parent"]], foreignColumns: [payload_preferences.id], @@ -3144,6 +4330,11 @@ export const payload_preferences_rels = pgTable( foreignColumns: [users.id], name: "payload_preferences_rels_users_fk", }).onDelete("cascade"), + foreignKey({ + columns: [columns["payload-mcp-api-keysID"]], + foreignColumns: [payload_mcp_api_keys.id], + name: "payload_preferences_rels_payload_mcp_api_keys_fk", + }).onDelete("cascade"), ], ); @@ -3212,6 +4403,106 @@ export const game_rules_rels = pgTable( ], ); +export const shims_shims_targeting_roles = pgTable( + "shims_shims_targeting_roles", + { + order: integer("order").notNull(), + parent: varchar("parent_id").notNull(), + value: enum_shims_shims_targeting_roles("value"), + id: serial("id").primaryKey(), + }, + (columns) => [ + index("shims_shims_targeting_roles_order_idx").on(columns.order), + index("shims_shims_targeting_roles_parent_idx").on(columns.parent), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [shims_shims.id], + name: "shims_shims_targeting_roles_parent_fk", + }).onDelete("cascade"), + ], +); + +export const shims_shims = pgTable( + "shims_shims", + { + _order: integer("_order").notNull(), + _parentID: integer("_parent_id").notNull(), + id: varchar("id").primaryKey(), + name: varchar("name").notNull(), + summary: varchar("summary"), + enabled: boolean("enabled").default(false), + type: enum_shims_shims_type("type").notNull().default("css"), + content: varchar("content").notNull(), + targeting_audience: enum_shims_shims_targeting_audience("targeting_audience") + .notNull() + .default("all"), + targeting_percentage: numeric("targeting_percentage", { mode: "number" }).default(50), + paths_matchType: enum_shims_shims_paths_match_type("paths_match_type").notNull().default("all"), + }, + (columns) => [ + index("shims_shims_order_idx").on(columns._order), + index("shims_shims_parent_id_idx").on(columns._parentID), + uniqueIndex("shims_shims_name_idx").on(columns.name), + foreignKey({ + columns: [columns["_parentID"]], + foreignColumns: [shims.id], + name: "shims_shims_parent_id_fk", + }).onDelete("cascade"), + ], +); + +export const shims = pgTable("shims", { + id: serial("id").primaryKey(), + updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 }), + createdAt: timestamp("created_at", { mode: "string", withTimezone: true, precision: 3 }), +}); + +export const shims_texts = pgTable( + "shims_texts", + { + id: serial("id").primaryKey(), + order: integer("order").notNull(), + parent: integer("parent_id").notNull(), + path: varchar("path").notNull(), + text: varchar("text"), + }, + (columns) => [ + index("shims_texts_order_parent").on(columns.order, columns.parent), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [shims.id], + name: "shims_texts_parent_fk", + }).onDelete("cascade"), + ], +); + +export const shims_rels = pgTable( + "shims_rels", + { + id: serial("id").primaryKey(), + order: integer("order"), + parent: integer("parent_id").notNull(), + path: varchar("path").notNull(), + usersID: integer("users_id"), + }, + (columns) => [ + index("shims_rels_order_idx").on(columns.order), + index("shims_rels_parent_idx").on(columns.parent), + index("shims_rels_path_idx").on(columns.path), + index("shims_rels_users_id_idx").on(columns.usersID), + foreignKey({ + columns: [columns["parent"]], + foreignColumns: [shims.id], + name: "shims_rels_parent_fk", + }).onDelete("cascade"), + foreignKey({ + columns: [columns["usersID"]], + foreignColumns: [users.id], + name: "shims_rels_users_fk", + }).onDelete("cascade"), + ], +); + export const relations_media = relations(media, () => ({})); export const relations_game_hard_resources = relations(game_hard_resources, () => ({})); export const relations_game_structures_stored_resources = relations( @@ -3361,6 +4652,26 @@ export const relations_users_roles = relations(users_roles, ({ one }) => ({ relationName: "roles", }), })); +export const relations_users_preferences_notifications_muted_types = relations( + users_preferences_notifications_muted_types, + ({ one }) => ({ + parent: one(users, { + fields: [users_preferences_notifications_muted_types.parent], + references: [users.id], + relationName: "preferences_notifications_mutedTypes", + }), + }), +); +export const relations_users_preferences_discord_muted_types = relations( + users_preferences_discord_muted_types, + ({ one }) => ({ + parent: one(users, { + fields: [users_preferences_discord_muted_types.parent], + references: [users.id], + relationName: "preferences_discord_mutedTypes", + }), + }), +); export const relations_users_sessions = relations(users_sessions, ({ one }) => ({ _parentID: one(users, { fields: [users_sessions._parentID], @@ -3368,13 +4679,61 @@ export const relations_users_sessions = relations(users_sessions, ({ one }) => ( relationName: "sessions", }), })); +export const relations_users_rels = relations(users_rels, ({ one }) => ({ + parent: one(users, { + fields: [users_rels.parent], + references: [users.id], + relationName: "_rels", + }), + rolesID: one(roles, { + fields: [users_rels.rolesID], + references: [roles.id], + relationName: "roles", + }), +})); export const relations_users = relations(users, ({ many }) => ({ roles: many(users_roles, { relationName: "roles", }), + preferences_notifications_mutedTypes: many(users_preferences_notifications_muted_types, { + relationName: "preferences_notifications_mutedTypes", + }), + preferences_discord_mutedTypes: many(users_preferences_discord_muted_types, { + relationName: "preferences_discord_mutedTypes", + }), sessions: many(users_sessions, { relationName: "sessions", }), + _rels: many(users_rels, { + relationName: "_rels", + }), +})); +export const relations_roles_permissions = relations(roles_permissions, ({ one }) => ({ + parent: one(roles, { + fields: [roles_permissions.parent], + references: [roles.id], + relationName: "permissions", + }), +})); +export const relations_roles_rels = relations(roles_rels, ({ one }) => ({ + parent: one(roles, { + fields: [roles_rels.parent], + references: [roles.id], + relationName: "_rels", + }), + rolesID: one(roles, { + fields: [roles_rels.rolesID], + references: [roles.id], + relationName: "roles", + }), +})); +export const relations_roles = relations(roles, ({ many }) => ({ + permissions: many(roles_permissions, { + relationName: "permissions", + }), + _rels: many(roles_rels, { + relationName: "_rels", + }), })); export const relations_ranks = relations(ranks, ({ one }) => ({ insignia: one(media, { @@ -3383,17 +4742,32 @@ export const relations_ranks = relations(ranks, ({ one }) => ({ relationName: "insignia", }), })); +export const relations_profiles_progression_awards = relations( + profiles_progression_awards, + ({ one }) => ({ + _parentID: one(profiles, { + fields: [profiles_progression_awards._parentID], + references: [profiles.id], + relationName: "progression_awards", + }), + award: one(awards, { + fields: [profiles_progression_awards.award], + references: [awards.id], + relationName: "award", + }), + awardedBy: one(profiles, { + fields: [profiles_progression_awards.awardedBy], + references: [profiles.id], + relationName: "awardedBy", + }), + }), +); 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", - }), qualificationsID: one(qualifications, { fields: [profiles_rels.qualificationsID], references: [qualifications.id], @@ -3411,6 +4785,9 @@ export const relations_profiles = relations(profiles, ({ one, many }) => ({ references: [ranks.id], relationName: "rank", }), + progression_awards: many(profiles_progression_awards, { + relationName: "progression_awards", + }), _rels: many(profiles_rels, { relationName: "_rels", }), @@ -3458,6 +4835,23 @@ export const relations_user_notifications = relations(user_notifications, ({ one relationName: "user", }), })); +export const relations_evaluations = relations(evaluations, ({ one }) => ({ + rater: one(users, { + fields: [evaluations.rater], + references: [users.id], + relationName: "rater", + }), + ratee: one(users, { + fields: [evaluations.ratee], + references: [users.id], + relationName: "ratee", + }), + mission: one(missions, { + fields: [evaluations.mission], + references: [missions.id], + relationName: "mission", + }), +})); export const relations_missions_mission_roles_provided_roles = relations( missions_mission_roles_provided_roles, ({ one }) => ({ @@ -3563,6 +4957,11 @@ export const relations_missions_rels = relations(missions_rels, ({ one }) => ({ }), })); export const relations_missions = relations(missions, ({ one, many }) => ({ + coverImage: one(media, { + fields: [missions.coverImage], + references: [media.id], + relationName: "coverImage", + }), classification_map: one(maps, { fields: [missions.classification_map], references: [maps.id], @@ -3611,7 +5010,42 @@ export const relations_missions = relations(missions, ({ one, many }) => ({ relationName: "_rels", }), })); -export const relations_campaigns = relations(campaigns, () => ({})); +export const relations_mission_attendances = relations(mission_attendances, ({ one }) => ({ + mission: one(missions, { + fields: [mission_attendances.mission], + references: [missions.id], + relationName: "mission", + }), + user: one(users, { + fields: [mission_attendances.user], + references: [users.id], + relationName: "user", + }), +})); +export const relations_campaigns = relations(campaigns, ({ one }) => ({ + coverImage: one(media, { + fields: [campaigns.coverImage], + references: [media.id], + relationName: "coverImage", + }), + owner: one(users, { + fields: [campaigns.owner], + references: [users.id], + relationName: "owner", + }), +})); +export const relations_factions_relationships = relations(factions_relationships, ({ one }) => ({ + _parentID: one(factions, { + fields: [factions_relationships._parentID], + references: [factions.id], + relationName: "relationships", + }), + targetFaction: one(factions, { + fields: [factions_relationships.targetFaction], + references: [factions.id], + relationName: "targetFaction", + }), +})); export const relations_factions_rels = relations(factions_rels, ({ one }) => ({ parent: one(factions, { fields: [factions_rels.parent], @@ -3624,7 +5058,15 @@ export const relations_factions_rels = relations(factions_rels, ({ one }) => ({ relationName: "campaigns", }), })); -export const relations_factions = relations(factions, ({ many }) => ({ +export const relations_factions = relations(factions, ({ one, many }) => ({ + relationships: many(factions_relationships, { + relationName: "relationships", + }), + coverImage: one(media, { + fields: [factions.coverImage], + references: [media.id], + relationName: "coverImage", + }), _rels: many(factions_rels, { relationName: "_rels", }), @@ -4317,6 +5759,101 @@ export const relations_market_negotiations = relations(market_negotiations, ({ o relationName: "history", }), })); +export const relations_tickets_activity = relations(tickets_activity, ({ one }) => ({ + _parentID: one(tickets, { + fields: [tickets_activity._parentID], + references: [tickets.id], + relationName: "activity", + }), + author: one(users, { + fields: [tickets_activity.author], + references: [users.id], + relationName: "author", + }), +})); +export const relations_tickets_rels = relations(tickets_rels, ({ one }) => ({ + parent: one(tickets, { + fields: [tickets_rels.parent], + references: [tickets.id], + relationName: "_rels", + }), + labelsID: one(labels, { + fields: [tickets_rels.labelsID], + references: [labels.id], + relationName: "labels", + }), +})); +export const relations_tickets = relations(tickets, ({ one, many }) => ({ + reporter: one(users, { + fields: [tickets.reporter], + references: [users.id], + relationName: "reporter", + }), + assignee: one(users, { + fields: [tickets.assignee], + references: [users.id], + relationName: "assignee", + }), + activity: many(tickets_activity, { + relationName: "activity", + }), + project: one(projects, { + fields: [tickets.project], + references: [projects.id], + relationName: "project", + }), + sprint: one(sprints, { + fields: [tickets.sprint], + references: [sprints.id], + relationName: "sprint", + }), + release: one(releases, { + fields: [tickets.release], + references: [releases.id], + relationName: "release", + }), + parentTicket: one(tickets, { + fields: [tickets.parentTicket], + references: [tickets.id], + relationName: "parentTicket", + }), + _rels: many(tickets_rels, { + relationName: "_rels", + }), +})); +export const relations_projects = relations(projects, ({ one }) => ({ + lead: one(users, { + fields: [projects.lead], + references: [users.id], + relationName: "lead", + }), + defaultAssignee: one(users, { + fields: [projects.defaultAssignee], + references: [users.id], + relationName: "defaultAssignee", + }), +})); +export const relations_sprints = relations(sprints, ({ one }) => ({ + project: one(projects, { + fields: [sprints.project], + references: [projects.id], + relationName: "project", + }), +})); +export const relations_releases = relations(releases, ({ one }) => ({ + project: one(projects, { + fields: [releases.project], + references: [projects.id], + relationName: "project", + }), +})); +export const relations_labels = relations(labels, ({ one }) => ({ + project: one(projects, { + fields: [labels.project], + references: [projects.id], + relationName: "project", + }), +})); export const relations_maps = relations(maps, () => ({})); export const relations_narrative_events = relations(narrative_events, () => ({})); export const relations_mission_files = relations(mission_files, ({ one }) => ({ @@ -4333,6 +5870,48 @@ export const relations_mod_lists = relations(mod_lists, ({ one }) => ({ relationName: "author", }), })); +export const relations_game_servers = relations(game_servers, () => ({})); +export const relations_arma_sync_events = relations(arma_sync_events, ({ one }) => ({ + server: one(game_servers, { + fields: [arma_sync_events.server], + references: [game_servers.id], + relationName: "server", + }), +})); +export const relations_arma_commands = relations(arma_commands, ({ one }) => ({ + server: one(game_servers, { + fields: [arma_commands.server], + references: [game_servers.id], + relationName: "server", + }), +})); +export const relations_plugin_ai_instructions_images = relations( + plugin_ai_instructions_images, + ({ one }) => ({ + _parentID: one(plugin_ai_instructions, { + fields: [plugin_ai_instructions_images._parentID], + references: [plugin_ai_instructions.id], + relationName: "images", + }), + image: one(media, { + fields: [plugin_ai_instructions_images.image], + references: [media.id], + relationName: "image", + }), + }), +); +export const relations_plugin_ai_instructions = relations(plugin_ai_instructions, ({ many }) => ({ + images: many(plugin_ai_instructions_images, { + relationName: "images", + }), +})); +export const relations_payload_mcp_api_keys = relations(payload_mcp_api_keys, ({ one }) => ({ + user: one(users, { + fields: [payload_mcp_api_keys.user], + references: [users.id], + relationName: "user", + }), +})); export const relations_payload_kv = relations(payload_kv, () => ({})); export const relations_payload_locked_documents_rels = relations( payload_locked_documents_rels, @@ -4377,6 +5956,11 @@ export const relations_payload_locked_documents_rels = relations( references: [users.id], relationName: "users", }), + rolesID: one(roles, { + fields: [payload_locked_documents_rels.rolesID], + references: [roles.id], + relationName: "roles", + }), ranksID: one(ranks, { fields: [payload_locked_documents_rels.ranksID], references: [ranks.id], @@ -4412,11 +5996,21 @@ export const relations_payload_locked_documents_rels = relations( references: [user_notifications.id], relationName: "user-notifications", }), + evaluationsID: one(evaluations, { + fields: [payload_locked_documents_rels.evaluationsID], + references: [evaluations.id], + relationName: "evaluations", + }), missionsID: one(missions, { fields: [payload_locked_documents_rels.missionsID], references: [missions.id], relationName: "missions", }), + "mission-attendancesID": one(mission_attendances, { + fields: [payload_locked_documents_rels["mission-attendancesID"]], + references: [mission_attendances.id], + relationName: "mission-attendances", + }), campaignsID: one(campaigns, { fields: [payload_locked_documents_rels.campaignsID], references: [campaigns.id], @@ -4492,6 +6086,31 @@ export const relations_payload_locked_documents_rels = relations( references: [market_negotiations.id], relationName: "market-negotiations", }), + ticketsID: one(tickets, { + fields: [payload_locked_documents_rels.ticketsID], + references: [tickets.id], + relationName: "tickets", + }), + projectsID: one(projects, { + fields: [payload_locked_documents_rels.projectsID], + references: [projects.id], + relationName: "projects", + }), + sprintsID: one(sprints, { + fields: [payload_locked_documents_rels.sprintsID], + references: [sprints.id], + relationName: "sprints", + }), + releasesID: one(releases, { + fields: [payload_locked_documents_rels.releasesID], + references: [releases.id], + relationName: "releases", + }), + labelsID: one(labels, { + fields: [payload_locked_documents_rels.labelsID], + references: [labels.id], + relationName: "labels", + }), mapsID: one(maps, { fields: [payload_locked_documents_rels.mapsID], references: [maps.id], @@ -4512,6 +6131,31 @@ export const relations_payload_locked_documents_rels = relations( references: [mod_lists.id], relationName: "mod-lists", }), + "game-serversID": one(game_servers, { + fields: [payload_locked_documents_rels["game-serversID"]], + references: [game_servers.id], + relationName: "game-servers", + }), + "arma-sync-eventsID": one(arma_sync_events, { + fields: [payload_locked_documents_rels["arma-sync-eventsID"]], + references: [arma_sync_events.id], + relationName: "arma-sync-events", + }), + "arma-commandsID": one(arma_commands, { + fields: [payload_locked_documents_rels["arma-commandsID"]], + references: [arma_commands.id], + relationName: "arma-commands", + }), + "plugin-ai-instructionsID": one(plugin_ai_instructions, { + fields: [payload_locked_documents_rels["plugin-ai-instructionsID"]], + references: [plugin_ai_instructions.id], + relationName: "plugin-ai-instructions", + }), + "payload-mcp-api-keysID": one(payload_mcp_api_keys, { + fields: [payload_locked_documents_rels["payload-mcp-api-keysID"]], + references: [payload_mcp_api_keys.id], + relationName: "payload-mcp-api-keys", + }), }), ); export const relations_payload_locked_documents = relations( @@ -4535,6 +6179,11 @@ export const relations_payload_preferences_rels = relations( references: [users.id], relationName: "users", }), + "payload-mcp-api-keysID": one(payload_mcp_api_keys, { + fields: [payload_preferences_rels["payload-mcp-api-keysID"]], + references: [payload_mcp_api_keys.id], + relationName: "payload-mcp-api-keys", + }), }), ); export const relations_payload_preferences = relations(payload_preferences, ({ many }) => ({ @@ -4565,13 +6214,69 @@ export const relations_game_rules = relations(game_rules, ({ one, many }) => ({ relationName: "_rels", }), })); +export const relations_shims_shims_targeting_roles = relations( + shims_shims_targeting_roles, + ({ one }) => ({ + parent: one(shims_shims, { + fields: [shims_shims_targeting_roles.parent], + references: [shims_shims.id], + relationName: "targeting_roles", + }), + }), +); +export const relations_shims_shims = relations(shims_shims, ({ one, many }) => ({ + _parentID: one(shims, { + fields: [shims_shims._parentID], + references: [shims.id], + relationName: "shims", + }), + targeting_roles: many(shims_shims_targeting_roles, { + relationName: "targeting_roles", + }), +})); +export const relations_shims_texts = relations(shims_texts, ({ one }) => ({ + parent: one(shims, { + fields: [shims_texts.parent], + references: [shims.id], + relationName: "_texts", + }), +})); +export const relations_shims_rels = relations(shims_rels, ({ one }) => ({ + parent: one(shims, { + fields: [shims_rels.parent], + references: [shims.id], + relationName: "_rels", + }), + usersID: one(users, { + fields: [shims_rels.usersID], + references: [users.id], + relationName: "users", + }), +})); +export const relations_shims = relations(shims, ({ many }) => ({ + shims: many(shims_shims, { + relationName: "shims", + }), + _texts: many(shims_texts, { + relationName: "_texts", + }), + _rels: many(shims_rels, { + relationName: "_rels", + }), +})); type DatabaseSchema = { enum_game_vehicles_status: typeof enum_game_vehicles_status; enum_game_event_logs_target_collection: typeof enum_game_event_logs_target_collection; enum_users_roles: typeof enum_users_roles; + enum_users_preferences_notifications_muted_types: typeof enum_users_preferences_notifications_muted_types; + enum_users_preferences_discord_muted_types: typeof enum_users_preferences_discord_muted_types; + enum_users_preferences_display_lead_or_actual: typeof enum_users_preferences_display_lead_or_actual; + enum_roles_permissions: typeof enum_roles_permissions; enum_awards_type: typeof enum_awards_type; enum_assignments_type: typeof enum_assignments_type; + enum_evaluations_kind: typeof enum_evaluations_kind; + enum_evaluations_level: typeof enum_evaluations_level; 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; @@ -4580,6 +6285,7 @@ type DatabaseSchema = { 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_mission_attendances_response: typeof enum_mission_attendances_response; enum_campaigns_status: typeof enum_campaigns_status; enum_factions_type: typeof enum_factions_type; enum_technologies_approval_status: typeof enum_technologies_approval_status; @@ -4611,7 +6317,24 @@ type DatabaseSchema = { enum_market_negotiations_history_from: typeof enum_market_negotiations_history_from; enum_market_negotiations_status: typeof enum_market_negotiations_status; enum_market_negotiations_proposed_by: typeof enum_market_negotiations_proposed_by; + enum_tickets_activity_type: typeof enum_tickets_activity_type; + enum_tickets_category: typeof enum_tickets_category; + enum_tickets_priority: typeof enum_tickets_priority; + enum_tickets_status: typeof enum_tickets_status; + enum_tickets_type: typeof enum_tickets_type; + enum_tickets_resolution: typeof enum_tickets_resolution; + enum_projects_status: typeof enum_projects_status; + enum_sprints_status: typeof enum_sprints_status; + enum_releases_status: typeof enum_releases_status; enum_narrative_events_triggers_type: typeof enum_narrative_events_triggers_type; + enum_game_servers_status: typeof enum_game_servers_status; + enum_arma_commands_status: typeof enum_arma_commands_status; + enum_plugin_ai_instructions_field_type: typeof enum_plugin_ai_instructions_field_type; + enum_plugin_ai_instructions_model_id: typeof enum_plugin_ai_instructions_model_id; + enum_shims_shims_targeting_roles: typeof enum_shims_shims_targeting_roles; + enum_shims_shims_type: typeof enum_shims_shims_type; + enum_shims_shims_targeting_audience: typeof enum_shims_shims_targeting_audience; + enum_shims_shims_paths_match_type: typeof enum_shims_shims_paths_match_type; media: typeof media; game_hard_resources: typeof game_hard_resources; game_structures_stored_resources: typeof game_structures_stored_resources; @@ -4624,9 +6347,16 @@ type DatabaseSchema = { game_npcs_rels: typeof game_npcs_rels; game_event_logs: typeof game_event_logs; users_roles: typeof users_roles; + users_preferences_notifications_muted_types: typeof users_preferences_notifications_muted_types; + users_preferences_discord_muted_types: typeof users_preferences_discord_muted_types; users_sessions: typeof users_sessions; users: typeof users; + users_rels: typeof users_rels; + roles_permissions: typeof roles_permissions; + roles: typeof roles; + roles_rels: typeof roles_rels; ranks: typeof ranks; + profiles_progression_awards: typeof profiles_progression_awards; profiles: typeof profiles; profiles_rels: typeof profiles_rels; awards: typeof awards; @@ -4635,6 +6365,7 @@ type DatabaseSchema = { assignments_rels: typeof assignments_rels; experience: typeof experience; user_notifications: typeof user_notifications; + evaluations: typeof evaluations; missions_mission_roles_provided_roles: typeof missions_mission_roles_provided_roles; missions_briefing: typeof missions_briefing; missions_mission_objectives: typeof missions_mission_objectives; @@ -4645,7 +6376,9 @@ type DatabaseSchema = { missions_comms_and_docs_frequencies: typeof missions_comms_and_docs_frequencies; missions: typeof missions; missions_rels: typeof missions_rels; + mission_attendances: typeof mission_attendances; campaigns: typeof campaigns; + factions_relationships: typeof factions_relationships; factions: typeof factions; factions_rels: typeof factions_rels; technologies_requirements_prerequisite_technologies: typeof technologies_requirements_prerequisite_technologies; @@ -4688,10 +6421,23 @@ type DatabaseSchema = { market_listings: typeof market_listings; market_negotiations_history: typeof market_negotiations_history; market_negotiations: typeof market_negotiations; + tickets_activity: typeof tickets_activity; + tickets: typeof tickets; + tickets_rels: typeof tickets_rels; + projects: typeof projects; + sprints: typeof sprints; + releases: typeof releases; + labels: typeof labels; maps: typeof maps; narrative_events: typeof narrative_events; mission_files: typeof mission_files; mod_lists: typeof mod_lists; + game_servers: typeof game_servers; + arma_sync_events: typeof arma_sync_events; + arma_commands: typeof arma_commands; + plugin_ai_instructions_images: typeof plugin_ai_instructions_images; + plugin_ai_instructions: typeof plugin_ai_instructions; + payload_mcp_api_keys: typeof payload_mcp_api_keys; payload_kv: typeof payload_kv; payload_locked_documents: typeof payload_locked_documents; payload_locked_documents_rels: typeof payload_locked_documents_rels; @@ -4700,6 +6446,11 @@ type DatabaseSchema = { payload_migrations: typeof payload_migrations; game_rules: typeof game_rules; game_rules_rels: typeof game_rules_rels; + shims_shims_targeting_roles: typeof shims_shims_targeting_roles; + shims_shims: typeof shims_shims; + shims: typeof shims; + shims_texts: typeof shims_texts; + shims_rels: typeof shims_rels; relations_media: typeof relations_media; relations_game_hard_resources: typeof relations_game_hard_resources; relations_game_structures_stored_resources: typeof relations_game_structures_stored_resources; @@ -4712,9 +6463,16 @@ type DatabaseSchema = { relations_game_npcs: typeof relations_game_npcs; relations_game_event_logs: typeof relations_game_event_logs; relations_users_roles: typeof relations_users_roles; + relations_users_preferences_notifications_muted_types: typeof relations_users_preferences_notifications_muted_types; + relations_users_preferences_discord_muted_types: typeof relations_users_preferences_discord_muted_types; relations_users_sessions: typeof relations_users_sessions; + relations_users_rels: typeof relations_users_rels; relations_users: typeof relations_users; + relations_roles_permissions: typeof relations_roles_permissions; + relations_roles_rels: typeof relations_roles_rels; + relations_roles: typeof relations_roles; relations_ranks: typeof relations_ranks; + relations_profiles_progression_awards: typeof relations_profiles_progression_awards; relations_profiles_rels: typeof relations_profiles_rels; relations_profiles: typeof relations_profiles; relations_awards: typeof relations_awards; @@ -4723,6 +6481,7 @@ type DatabaseSchema = { relations_assignments: typeof relations_assignments; relations_experience: typeof relations_experience; relations_user_notifications: typeof relations_user_notifications; + relations_evaluations: typeof relations_evaluations; 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; @@ -4733,7 +6492,9 @@ type DatabaseSchema = { 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_mission_attendances: typeof relations_mission_attendances; relations_campaigns: typeof relations_campaigns; + relations_factions_relationships: typeof relations_factions_relationships; relations_factions_rels: typeof relations_factions_rels; relations_factions: typeof relations_factions; relations_technologies_requirements_prerequisite_technologies: typeof relations_technologies_requirements_prerequisite_technologies; @@ -4776,10 +6537,23 @@ type DatabaseSchema = { relations_market_listings: typeof relations_market_listings; relations_market_negotiations_history: typeof relations_market_negotiations_history; relations_market_negotiations: typeof relations_market_negotiations; + relations_tickets_activity: typeof relations_tickets_activity; + relations_tickets_rels: typeof relations_tickets_rels; + relations_tickets: typeof relations_tickets; + relations_projects: typeof relations_projects; + relations_sprints: typeof relations_sprints; + relations_releases: typeof relations_releases; + relations_labels: typeof relations_labels; 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_game_servers: typeof relations_game_servers; + relations_arma_sync_events: typeof relations_arma_sync_events; + relations_arma_commands: typeof relations_arma_commands; + relations_plugin_ai_instructions_images: typeof relations_plugin_ai_instructions_images; + relations_plugin_ai_instructions: typeof relations_plugin_ai_instructions; + relations_payload_mcp_api_keys: typeof relations_payload_mcp_api_keys; relations_payload_kv: typeof relations_payload_kv; relations_payload_locked_documents_rels: typeof relations_payload_locked_documents_rels; relations_payload_locked_documents: typeof relations_payload_locked_documents; @@ -4788,6 +6562,11 @@ type DatabaseSchema = { relations_payload_migrations: typeof relations_payload_migrations; relations_game_rules_rels: typeof relations_game_rules_rels; relations_game_rules: typeof relations_game_rules; + relations_shims_shims_targeting_roles: typeof relations_shims_shims_targeting_roles; + relations_shims_shims: typeof relations_shims_shims; + relations_shims_texts: typeof relations_shims_texts; + relations_shims_rels: typeof relations_shims_rels; + relations_shims: typeof relations_shims; }; declare module "@payloadcms/db-postgres" {