chore(generated): regenerate types and schema, register operation migrations
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
parent
37d28893de
commit
c0563dae30
3 changed files with 1375 additions and 139 deletions
|
|
@ -1,411 +1,471 @@
|
|||
import * as migration_20260820_004157 from "./20260820_004157";
|
||||
import * as migration_20260825_220000 from "./20260825_220000";
|
||||
import * as migration_20260826_050000_repair_shims_auxiliary_tables from "./20260826_050000_repair_shims_auxiliary_tables";
|
||||
import * as migration_20260826_060000_add_game_servers_event_target from "./20260826_060000_add_game_servers_event_target";
|
||||
import * as migration_20260827_005757 from "./20260827_005757";
|
||||
import * as migration_20260827_022334_add_eod_minesweeper_best_flags from "./20260827_022334_add_eod_minesweeper_best_flags";
|
||||
import * as migration_20260827_213857_add_evaluations_collection from "./20260827_213857_add_evaluations_collection";
|
||||
import * as migration_20260827_233224_add_mission_completed_at from "./20260827_233224_add_mission_completed_at";
|
||||
import * as migration_20260828_011500_add_background_texture_preference from "./20260828_011500_add_background_texture_preference";
|
||||
import * as migration_20260828_041615_add_campaign_mode from "./20260828_041615_add_campaign_mode";
|
||||
import * as migration_20260828_044506 from "./20260828_044506";
|
||||
import * as migration_20260831_142503 from "./20260831_142503";
|
||||
import * as migration_20260831_180233_assignment_transfers from "./20260831_180233_assignment_transfers";
|
||||
import * as migration_20260901_014006_add_assignment_transfer_event_target from "./20260901_014006_add_assignment_transfer_event_target";
|
||||
import * as migration_20260901_213108_add_ticket_votes_and_edit_history from "./20260901_213108_add_ticket_votes_and_edit_history";
|
||||
import * as migration_20260901_222200_add_admin_page_permissions from "./20260901_222200_add_admin_page_permissions";
|
||||
import * as migration_20260902_195336_add_medal_backgrounds from "./20260902_195336_add_medal_backgrounds";
|
||||
import * as migration_20260903_035544 from "./20260903_035544";
|
||||
import * as migration_20260903_044047 from "./20260903_044047";
|
||||
import * as migration_20260903_053419 from "./20260903_053419";
|
||||
import * as migration_20260903_060000_add_radio_mode_stats from "./20260903_060000_add_radio_mode_stats";
|
||||
import * as migration_20260903_061000_add_radio_incorrect_counts from "./20260903_061000_add_radio_incorrect_counts";
|
||||
import * as migration_20260903_062000_add_aim_trainer_stats from "./20260903_062000_add_aim_trainer_stats";
|
||||
import * as migration_20260904_230838_add_wiki_collections from "./20260904_230838_add_wiki_collections";
|
||||
import * as migration_20260905_183940_base_management from "./20260905_183940_base_management";
|
||||
import * as migration_20260905_195456_labor_headcount from "./20260905_195456_labor_headcount";
|
||||
import * as migration_20260905_210310_labor_classifications from "./20260905_210310_labor_classifications";
|
||||
import * as migration_20260905_213824 from "./20260905_213824";
|
||||
import * as migration_20260905_215658 from "./20260905_215658";
|
||||
import * as migration_20260906_045502 from "./20260906_045502";
|
||||
import * as migration_20260906_050900_add_evaluation_reminders_field from "./20260906_050900_add_evaluation_reminders_field";
|
||||
import * as migration_20260906_061451_add_wiki_template_css from "./20260906_061451_add_wiki_template_css";
|
||||
import * as migration_20260906_063753_add_personal_excerpt_richtext from "./20260906_063753_add_personal_excerpt_richtext";
|
||||
import * as migration_20260906_065405_add_wiki_template_html from "./20260906_065405_add_wiki_template_html";
|
||||
import * as migration_20260906_100908_add_market_economy_state from "./20260906_100908_add_market_economy_state";
|
||||
import * as migration_20260906_165837_add_market_state_event_target from "./20260906_165837_add_market_state_event_target";
|
||||
import * as migration_20260906_202925_add_voice_submissions from "./20260906_202925_add_voice_submissions";
|
||||
import * as migration_20260907_012326_add_missions_created_by from "./20260907_012326_add_missions_created_by";
|
||||
import * as migration_20260907_013724_make_missions_campaign_optional from "./20260907_013724_make_missions_campaign_optional";
|
||||
import * as migration_20260907_041051_add_voice_script_spoiler from "./20260907_041051_add_voice_script_spoiler";
|
||||
import * as migration_20260907_043339_add_voice_script_description from "./20260907_043339_add_voice_script_description";
|
||||
import * as migration_20260907_044934_add_missions_discord_modlist_hash from "./20260907_044934_add_missions_discord_modlist_hash";
|
||||
import * as migration_20260907_083010_add_voice_submission_description from "./20260907_083010_add_voice_submission_description";
|
||||
import * as migration_20260907_090245_add_mission_ready_reminder_fields from "./20260907_090245_add_mission_ready_reminder_fields";
|
||||
import * as migration_20260907_120754_add_story_beats from "./20260907_120754_add_story_beats";
|
||||
import * as migration_20260907_124024_convert_story_beats_body_to_lexical from "./20260907_124024_convert_story_beats_body_to_lexical";
|
||||
import * as migration_20260908_152021_add_opord_recall_minigame_stats from "./20260908_152021_add_opord_recall_minigame_stats";
|
||||
import * as migration_20260908_172241_add_custom_minigame_collections from "./20260908_172241_add_custom_minigame_collections";
|
||||
import * as migration_20260908_193107_add_creator_xp_bank_field from "./20260908_193107_add_creator_xp_bank_field";
|
||||
import * as migration_20260908_194435_add_expose_edge_mines_field from "./20260908_194435_add_expose_edge_mines_field";
|
||||
import * as migration_20260909_153427_add_opord_recall_best_times from "./20260909_153427_add_opord_recall_best_times";
|
||||
import * as migration_20260909_223955_add_voice_script_draft_status from "./20260909_223955_add_voice_script_draft_status";
|
||||
import * as migration_20260910_221018_make_missions_codename_optional from "./20260910_221018_make_missions_codename_optional";
|
||||
import * as migration_20260910_222518_add_dashboard_layout_preference from "./20260910_222518_add_dashboard_layout_preference";
|
||||
import * as migration_20260911_044754_add_poker_minigame_stats from "./20260911_044754_add_poker_minigame_stats";
|
||||
import * as migration_20260911_052147_add_ribbon_submissions from "./20260911_052147_add_ribbon_submissions";
|
||||
import * as migration_20260911_201559_add_award_advancement_series from "./20260911_201559_add_award_advancement_series";
|
||||
import * as migration_20260912_051752_add_rank_promotion_ceiling from "./20260912_051752_add_rank_promotion_ceiling";
|
||||
import * as migration_20260912_071740_add_blackjack_minigame_stats from "./20260912_071740_add_blackjack_minigame_stats";
|
||||
import * as migration_20260912_231219_add_discord_cancelled_at from "./20260912_231219_add_discord_cancelled_at";
|
||||
import * as migration_20260914_153046_add_chip_bank from "./20260914_153046_add_chip_bank";
|
||||
import * as migration_20260914_171412_add_respawn_tickets from "./20260914_171412_add_respawn_tickets";
|
||||
import * as migration_20260916_083158_add_game_map_system from "./20260916_083158_add_game_map_system";
|
||||
import * as migration_20260916_185544_construction_timestamp_model from "./20260916_185544_construction_timestamp_model";
|
||||
import * as migration_20260916_220224_add_map_labels_and_styling from "./20260916_220224_add_map_labels_and_styling";
|
||||
import * as migration_20260917_023028_add_node_and_zone_resources from "./20260917_023028_add_node_and_zone_resources";
|
||||
import * as migration_20260917_112258_add_zone_political_types from "./20260917_112258_add_zone_political_types";
|
||||
import * as migration_20260918_170318_add_imminent_reminder_marker from "./20260918_170318_add_imminent_reminder_marker";
|
||||
import * as migration_20260820_004157 from './20260820_004157';
|
||||
import * as migration_20260825_220000 from './20260825_220000';
|
||||
import * as migration_20260826_050000_repair_shims_auxiliary_tables from './20260826_050000_repair_shims_auxiliary_tables';
|
||||
import * as migration_20260826_060000_add_game_servers_event_target from './20260826_060000_add_game_servers_event_target';
|
||||
import * as migration_20260827_005757 from './20260827_005757';
|
||||
import * as migration_20260827_022334_add_eod_minesweeper_best_flags from './20260827_022334_add_eod_minesweeper_best_flags';
|
||||
import * as migration_20260827_213857_add_evaluations_collection from './20260827_213857_add_evaluations_collection';
|
||||
import * as migration_20260827_233224_add_mission_completed_at from './20260827_233224_add_mission_completed_at';
|
||||
import * as migration_20260828_011500_add_background_texture_preference from './20260828_011500_add_background_texture_preference';
|
||||
import * as migration_20260828_041615_add_campaign_mode from './20260828_041615_add_campaign_mode';
|
||||
import * as migration_20260828_044506 from './20260828_044506';
|
||||
import * as migration_20260831_142503 from './20260831_142503';
|
||||
import * as migration_20260831_180233_assignment_transfers from './20260831_180233_assignment_transfers';
|
||||
import * as migration_20260901_014006_add_assignment_transfer_event_target from './20260901_014006_add_assignment_transfer_event_target';
|
||||
import * as migration_20260901_213108_add_ticket_votes_and_edit_history from './20260901_213108_add_ticket_votes_and_edit_history';
|
||||
import * as migration_20260901_222200_add_admin_page_permissions from './20260901_222200_add_admin_page_permissions';
|
||||
import * as migration_20260902_195336_add_medal_backgrounds from './20260902_195336_add_medal_backgrounds';
|
||||
import * as migration_20260903_035544 from './20260903_035544';
|
||||
import * as migration_20260903_044047 from './20260903_044047';
|
||||
import * as migration_20260903_053419 from './20260903_053419';
|
||||
import * as migration_20260903_060000_add_radio_mode_stats from './20260903_060000_add_radio_mode_stats';
|
||||
import * as migration_20260903_061000_add_radio_incorrect_counts from './20260903_061000_add_radio_incorrect_counts';
|
||||
import * as migration_20260903_062000_add_aim_trainer_stats from './20260903_062000_add_aim_trainer_stats';
|
||||
import * as migration_20260904_230838_add_wiki_collections from './20260904_230838_add_wiki_collections';
|
||||
import * as migration_20260905_183940_base_management from './20260905_183940_base_management';
|
||||
import * as migration_20260905_195456_labor_headcount from './20260905_195456_labor_headcount';
|
||||
import * as migration_20260905_210310_labor_classifications from './20260905_210310_labor_classifications';
|
||||
import * as migration_20260905_213824 from './20260905_213824';
|
||||
import * as migration_20260905_215658 from './20260905_215658';
|
||||
import * as migration_20260906_045502 from './20260906_045502';
|
||||
import * as migration_20260906_050900_add_evaluation_reminders_field from './20260906_050900_add_evaluation_reminders_field';
|
||||
import * as migration_20260906_061451_add_wiki_template_css from './20260906_061451_add_wiki_template_css';
|
||||
import * as migration_20260906_063753_add_personal_excerpt_richtext from './20260906_063753_add_personal_excerpt_richtext';
|
||||
import * as migration_20260906_065405_add_wiki_template_html from './20260906_065405_add_wiki_template_html';
|
||||
import * as migration_20260906_100908_add_market_economy_state from './20260906_100908_add_market_economy_state';
|
||||
import * as migration_20260906_165837_add_market_state_event_target from './20260906_165837_add_market_state_event_target';
|
||||
import * as migration_20260906_202925_add_voice_submissions from './20260906_202925_add_voice_submissions';
|
||||
import * as migration_20260907_012326_add_missions_created_by from './20260907_012326_add_missions_created_by';
|
||||
import * as migration_20260907_013724_make_missions_campaign_optional from './20260907_013724_make_missions_campaign_optional';
|
||||
import * as migration_20260907_041051_add_voice_script_spoiler from './20260907_041051_add_voice_script_spoiler';
|
||||
import * as migration_20260907_043339_add_voice_script_description from './20260907_043339_add_voice_script_description';
|
||||
import * as migration_20260907_044934_add_missions_discord_modlist_hash from './20260907_044934_add_missions_discord_modlist_hash';
|
||||
import * as migration_20260907_083010_add_voice_submission_description from './20260907_083010_add_voice_submission_description';
|
||||
import * as migration_20260907_090245_add_mission_ready_reminder_fields from './20260907_090245_add_mission_ready_reminder_fields';
|
||||
import * as migration_20260907_120754_add_story_beats from './20260907_120754_add_story_beats';
|
||||
import * as migration_20260907_124024_convert_story_beats_body_to_lexical from './20260907_124024_convert_story_beats_body_to_lexical';
|
||||
import * as migration_20260908_152021_add_opord_recall_minigame_stats from './20260908_152021_add_opord_recall_minigame_stats';
|
||||
import * as migration_20260908_172241_add_custom_minigame_collections from './20260908_172241_add_custom_minigame_collections';
|
||||
import * as migration_20260908_193107_add_creator_xp_bank_field from './20260908_193107_add_creator_xp_bank_field';
|
||||
import * as migration_20260908_194435_add_expose_edge_mines_field from './20260908_194435_add_expose_edge_mines_field';
|
||||
import * as migration_20260909_153427_add_opord_recall_best_times from './20260909_153427_add_opord_recall_best_times';
|
||||
import * as migration_20260909_223955_add_voice_script_draft_status from './20260909_223955_add_voice_script_draft_status';
|
||||
import * as migration_20260910_221018_make_missions_codename_optional from './20260910_221018_make_missions_codename_optional';
|
||||
import * as migration_20260910_222518_add_dashboard_layout_preference from './20260910_222518_add_dashboard_layout_preference';
|
||||
import * as migration_20260911_044754_add_poker_minigame_stats from './20260911_044754_add_poker_minigame_stats';
|
||||
import * as migration_20260911_052147_add_ribbon_submissions from './20260911_052147_add_ribbon_submissions';
|
||||
import * as migration_20260911_201559_add_award_advancement_series from './20260911_201559_add_award_advancement_series';
|
||||
import * as migration_20260912_051752_add_rank_promotion_ceiling from './20260912_051752_add_rank_promotion_ceiling';
|
||||
import * as migration_20260912_071740_add_blackjack_minigame_stats from './20260912_071740_add_blackjack_minigame_stats';
|
||||
import * as migration_20260912_231219_add_discord_cancelled_at from './20260912_231219_add_discord_cancelled_at';
|
||||
import * as migration_20260914_153046_add_chip_bank from './20260914_153046_add_chip_bank';
|
||||
import * as migration_20260914_171412_add_respawn_tickets from './20260914_171412_add_respawn_tickets';
|
||||
import * as migration_20260916_083158_add_game_map_system from './20260916_083158_add_game_map_system';
|
||||
import * as migration_20260916_185544_construction_timestamp_model from './20260916_185544_construction_timestamp_model';
|
||||
import * as migration_20260916_220224_add_map_labels_and_styling from './20260916_220224_add_map_labels_and_styling';
|
||||
import * as migration_20260917_023028_add_node_and_zone_resources from './20260917_023028_add_node_and_zone_resources';
|
||||
import * as migration_20260917_112258_add_zone_political_types from './20260917_112258_add_zone_political_types';
|
||||
import * as migration_20260917_225116_add_zone_other_type from './20260917_225116_add_zone_other_type';
|
||||
import * as migration_20260918_052751_add_production_system from './20260918_052751_add_production_system';
|
||||
import * as migration_20260918_054722_add_labor_construction_speed from './20260918_054722_add_labor_construction_speed';
|
||||
import * as migration_20260918_061857_add_module_slots from './20260918_061857_add_module_slots';
|
||||
import * as migration_20260918_064326_add_compound_parent from './20260918_064326_add_compound_parent';
|
||||
import * as migration_20260918_070328_add_blueprint_aura from './20260918_070328_add_blueprint_aura';
|
||||
import * as migration_20260918_170318_add_imminent_reminder_marker from './20260918_170318_add_imminent_reminder_marker';
|
||||
import * as migration_20260918_180851_add_operation_ledger from './20260918_180851_add_operation_ledger';
|
||||
import * as migration_20260918_194842_add_operation_allocation from './20260918_194842_add_operation_allocation';
|
||||
import * as migration_20260918_222549_add_operation_readiness from './20260918_222549_add_operation_readiness';
|
||||
import * as migration_20260920_044743_add_zone_pressure from './20260920_044743_add_zone_pressure';
|
||||
|
||||
export const migrations = [
|
||||
{
|
||||
up: migration_20260820_004157.up,
|
||||
down: migration_20260820_004157.down,
|
||||
name: "20260820_004157",
|
||||
name: '20260820_004157',
|
||||
},
|
||||
{
|
||||
up: migration_20260825_220000.up,
|
||||
down: migration_20260825_220000.down,
|
||||
name: "20260825_220000",
|
||||
name: '20260825_220000',
|
||||
},
|
||||
{
|
||||
up: migration_20260826_050000_repair_shims_auxiliary_tables.up,
|
||||
down: migration_20260826_050000_repair_shims_auxiliary_tables.down,
|
||||
name: "20260826_050000_repair_shims_auxiliary_tables",
|
||||
name: '20260826_050000_repair_shims_auxiliary_tables',
|
||||
},
|
||||
{
|
||||
up: migration_20260826_060000_add_game_servers_event_target.up,
|
||||
down: migration_20260826_060000_add_game_servers_event_target.down,
|
||||
name: "20260826_060000_add_game_servers_event_target",
|
||||
name: '20260826_060000_add_game_servers_event_target',
|
||||
},
|
||||
{
|
||||
up: migration_20260827_005757.up,
|
||||
down: migration_20260827_005757.down,
|
||||
name: "20260827_005757",
|
||||
name: '20260827_005757',
|
||||
},
|
||||
{
|
||||
up: migration_20260827_022334_add_eod_minesweeper_best_flags.up,
|
||||
down: migration_20260827_022334_add_eod_minesweeper_best_flags.down,
|
||||
name: "20260827_022334_add_eod_minesweeper_best_flags",
|
||||
name: '20260827_022334_add_eod_minesweeper_best_flags',
|
||||
},
|
||||
{
|
||||
up: migration_20260827_213857_add_evaluations_collection.up,
|
||||
down: migration_20260827_213857_add_evaluations_collection.down,
|
||||
name: "20260827_213857_add_evaluations_collection",
|
||||
name: '20260827_213857_add_evaluations_collection',
|
||||
},
|
||||
{
|
||||
up: migration_20260827_233224_add_mission_completed_at.up,
|
||||
down: migration_20260827_233224_add_mission_completed_at.down,
|
||||
name: "20260827_233224_add_mission_completed_at",
|
||||
name: '20260827_233224_add_mission_completed_at',
|
||||
},
|
||||
{
|
||||
up: migration_20260828_011500_add_background_texture_preference.up,
|
||||
down: migration_20260828_011500_add_background_texture_preference.down,
|
||||
name: "20260828_011500_add_background_texture_preference",
|
||||
name: '20260828_011500_add_background_texture_preference',
|
||||
},
|
||||
{
|
||||
up: migration_20260828_041615_add_campaign_mode.up,
|
||||
down: migration_20260828_041615_add_campaign_mode.down,
|
||||
name: "20260828_041615_add_campaign_mode",
|
||||
name: '20260828_041615_add_campaign_mode',
|
||||
},
|
||||
{
|
||||
up: migration_20260828_044506.up,
|
||||
down: migration_20260828_044506.down,
|
||||
name: "20260828_044506",
|
||||
name: '20260828_044506',
|
||||
},
|
||||
{
|
||||
up: migration_20260831_142503.up,
|
||||
down: migration_20260831_142503.down,
|
||||
name: "20260831_142503",
|
||||
name: '20260831_142503',
|
||||
},
|
||||
{
|
||||
up: migration_20260831_180233_assignment_transfers.up,
|
||||
down: migration_20260831_180233_assignment_transfers.down,
|
||||
name: "20260831_180233_assignment_transfers",
|
||||
name: '20260831_180233_assignment_transfers',
|
||||
},
|
||||
{
|
||||
up: migration_20260901_014006_add_assignment_transfer_event_target.up,
|
||||
down: migration_20260901_014006_add_assignment_transfer_event_target.down,
|
||||
name: "20260901_014006_add_assignment_transfer_event_target",
|
||||
name: '20260901_014006_add_assignment_transfer_event_target',
|
||||
},
|
||||
{
|
||||
up: migration_20260901_213108_add_ticket_votes_and_edit_history.up,
|
||||
down: migration_20260901_213108_add_ticket_votes_and_edit_history.down,
|
||||
name: "20260901_213108_add_ticket_votes_and_edit_history",
|
||||
name: '20260901_213108_add_ticket_votes_and_edit_history',
|
||||
},
|
||||
{
|
||||
up: migration_20260901_222200_add_admin_page_permissions.up,
|
||||
down: migration_20260901_222200_add_admin_page_permissions.down,
|
||||
name: "20260901_222200_add_admin_page_permissions",
|
||||
name: '20260901_222200_add_admin_page_permissions',
|
||||
},
|
||||
{
|
||||
up: migration_20260902_195336_add_medal_backgrounds.up,
|
||||
down: migration_20260902_195336_add_medal_backgrounds.down,
|
||||
name: "20260902_195336_add_medal_backgrounds",
|
||||
name: '20260902_195336_add_medal_backgrounds',
|
||||
},
|
||||
{
|
||||
up: migration_20260903_035544.up,
|
||||
down: migration_20260903_035544.down,
|
||||
name: "20260903_035544",
|
||||
name: '20260903_035544',
|
||||
},
|
||||
{
|
||||
up: migration_20260903_044047.up,
|
||||
down: migration_20260903_044047.down,
|
||||
name: "20260903_044047",
|
||||
name: '20260903_044047',
|
||||
},
|
||||
{
|
||||
up: migration_20260903_053419.up,
|
||||
down: migration_20260903_053419.down,
|
||||
name: "20260903_053419",
|
||||
name: '20260903_053419',
|
||||
},
|
||||
{
|
||||
up: migration_20260903_060000_add_radio_mode_stats.up,
|
||||
down: migration_20260903_060000_add_radio_mode_stats.down,
|
||||
name: "20260903_060000_add_radio_mode_stats",
|
||||
name: '20260903_060000_add_radio_mode_stats',
|
||||
},
|
||||
{
|
||||
up: migration_20260903_061000_add_radio_incorrect_counts.up,
|
||||
down: migration_20260903_061000_add_radio_incorrect_counts.down,
|
||||
name: "20260903_061000_add_radio_incorrect_counts",
|
||||
name: '20260903_061000_add_radio_incorrect_counts',
|
||||
},
|
||||
{
|
||||
up: migration_20260903_062000_add_aim_trainer_stats.up,
|
||||
down: migration_20260903_062000_add_aim_trainer_stats.down,
|
||||
name: "20260903_062000_add_aim_trainer_stats",
|
||||
name: '20260903_062000_add_aim_trainer_stats',
|
||||
},
|
||||
{
|
||||
up: migration_20260904_230838_add_wiki_collections.up,
|
||||
down: migration_20260904_230838_add_wiki_collections.down,
|
||||
name: "20260904_230838_add_wiki_collections",
|
||||
name: '20260904_230838_add_wiki_collections',
|
||||
},
|
||||
{
|
||||
up: migration_20260905_183940_base_management.up,
|
||||
down: migration_20260905_183940_base_management.down,
|
||||
name: "20260905_183940_base_management",
|
||||
name: '20260905_183940_base_management',
|
||||
},
|
||||
{
|
||||
up: migration_20260905_195456_labor_headcount.up,
|
||||
down: migration_20260905_195456_labor_headcount.down,
|
||||
name: "20260905_195456_labor_headcount",
|
||||
name: '20260905_195456_labor_headcount',
|
||||
},
|
||||
{
|
||||
up: migration_20260905_210310_labor_classifications.up,
|
||||
down: migration_20260905_210310_labor_classifications.down,
|
||||
name: "20260905_210310_labor_classifications",
|
||||
name: '20260905_210310_labor_classifications',
|
||||
},
|
||||
{
|
||||
up: migration_20260905_213824.up,
|
||||
down: migration_20260905_213824.down,
|
||||
name: "20260905_213824",
|
||||
name: '20260905_213824',
|
||||
},
|
||||
{
|
||||
up: migration_20260905_215658.up,
|
||||
down: migration_20260905_215658.down,
|
||||
name: "20260905_215658",
|
||||
name: '20260905_215658',
|
||||
},
|
||||
{
|
||||
up: migration_20260906_045502.up,
|
||||
down: migration_20260906_045502.down,
|
||||
name: "20260906_045502",
|
||||
name: '20260906_045502',
|
||||
},
|
||||
{
|
||||
up: migration_20260906_050900_add_evaluation_reminders_field.up,
|
||||
down: migration_20260906_050900_add_evaluation_reminders_field.down,
|
||||
name: "20260906_050900_add_evaluation_reminders_field",
|
||||
name: '20260906_050900_add_evaluation_reminders_field',
|
||||
},
|
||||
{
|
||||
up: migration_20260906_061451_add_wiki_template_css.up,
|
||||
down: migration_20260906_061451_add_wiki_template_css.down,
|
||||
name: "20260906_061451_add_wiki_template_css",
|
||||
name: '20260906_061451_add_wiki_template_css',
|
||||
},
|
||||
{
|
||||
up: migration_20260906_063753_add_personal_excerpt_richtext.up,
|
||||
down: migration_20260906_063753_add_personal_excerpt_richtext.down,
|
||||
name: "20260906_063753_add_personal_excerpt_richtext",
|
||||
name: '20260906_063753_add_personal_excerpt_richtext',
|
||||
},
|
||||
{
|
||||
up: migration_20260906_065405_add_wiki_template_html.up,
|
||||
down: migration_20260906_065405_add_wiki_template_html.down,
|
||||
name: "20260906_065405_add_wiki_template_html",
|
||||
name: '20260906_065405_add_wiki_template_html',
|
||||
},
|
||||
{
|
||||
up: migration_20260906_100908_add_market_economy_state.up,
|
||||
down: migration_20260906_100908_add_market_economy_state.down,
|
||||
name: "20260906_100908_add_market_economy_state",
|
||||
name: '20260906_100908_add_market_economy_state',
|
||||
},
|
||||
{
|
||||
up: migration_20260906_165837_add_market_state_event_target.up,
|
||||
down: migration_20260906_165837_add_market_state_event_target.down,
|
||||
name: "20260906_165837_add_market_state_event_target",
|
||||
name: '20260906_165837_add_market_state_event_target',
|
||||
},
|
||||
{
|
||||
up: migration_20260906_202925_add_voice_submissions.up,
|
||||
down: migration_20260906_202925_add_voice_submissions.down,
|
||||
name: "20260906_202925_add_voice_submissions",
|
||||
name: '20260906_202925_add_voice_submissions',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_012326_add_missions_created_by.up,
|
||||
down: migration_20260907_012326_add_missions_created_by.down,
|
||||
name: "20260907_012326_add_missions_created_by",
|
||||
name: '20260907_012326_add_missions_created_by',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_013724_make_missions_campaign_optional.up,
|
||||
down: migration_20260907_013724_make_missions_campaign_optional.down,
|
||||
name: "20260907_013724_make_missions_campaign_optional",
|
||||
name: '20260907_013724_make_missions_campaign_optional',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_041051_add_voice_script_spoiler.up,
|
||||
down: migration_20260907_041051_add_voice_script_spoiler.down,
|
||||
name: "20260907_041051_add_voice_script_spoiler",
|
||||
name: '20260907_041051_add_voice_script_spoiler',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_043339_add_voice_script_description.up,
|
||||
down: migration_20260907_043339_add_voice_script_description.down,
|
||||
name: "20260907_043339_add_voice_script_description",
|
||||
name: '20260907_043339_add_voice_script_description',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_044934_add_missions_discord_modlist_hash.up,
|
||||
down: migration_20260907_044934_add_missions_discord_modlist_hash.down,
|
||||
name: "20260907_044934_add_missions_discord_modlist_hash",
|
||||
name: '20260907_044934_add_missions_discord_modlist_hash',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_083010_add_voice_submission_description.up,
|
||||
down: migration_20260907_083010_add_voice_submission_description.down,
|
||||
name: "20260907_083010_add_voice_submission_description",
|
||||
name: '20260907_083010_add_voice_submission_description',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_090245_add_mission_ready_reminder_fields.up,
|
||||
down: migration_20260907_090245_add_mission_ready_reminder_fields.down,
|
||||
name: "20260907_090245_add_mission_ready_reminder_fields",
|
||||
name: '20260907_090245_add_mission_ready_reminder_fields',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_120754_add_story_beats.up,
|
||||
down: migration_20260907_120754_add_story_beats.down,
|
||||
name: "20260907_120754_add_story_beats",
|
||||
name: '20260907_120754_add_story_beats',
|
||||
},
|
||||
{
|
||||
up: migration_20260907_124024_convert_story_beats_body_to_lexical.up,
|
||||
down: migration_20260907_124024_convert_story_beats_body_to_lexical.down,
|
||||
name: "20260907_124024_convert_story_beats_body_to_lexical",
|
||||
name: '20260907_124024_convert_story_beats_body_to_lexical',
|
||||
},
|
||||
{
|
||||
up: migration_20260908_152021_add_opord_recall_minigame_stats.up,
|
||||
down: migration_20260908_152021_add_opord_recall_minigame_stats.down,
|
||||
name: "20260908_152021_add_opord_recall_minigame_stats",
|
||||
name: '20260908_152021_add_opord_recall_minigame_stats',
|
||||
},
|
||||
{
|
||||
up: migration_20260908_172241_add_custom_minigame_collections.up,
|
||||
down: migration_20260908_172241_add_custom_minigame_collections.down,
|
||||
name: "20260908_172241_add_custom_minigame_collections",
|
||||
name: '20260908_172241_add_custom_minigame_collections',
|
||||
},
|
||||
{
|
||||
up: migration_20260908_193107_add_creator_xp_bank_field.up,
|
||||
down: migration_20260908_193107_add_creator_xp_bank_field.down,
|
||||
name: "20260908_193107_add_creator_xp_bank_field",
|
||||
name: '20260908_193107_add_creator_xp_bank_field',
|
||||
},
|
||||
{
|
||||
up: migration_20260908_194435_add_expose_edge_mines_field.up,
|
||||
down: migration_20260908_194435_add_expose_edge_mines_field.down,
|
||||
name: "20260908_194435_add_expose_edge_mines_field",
|
||||
name: '20260908_194435_add_expose_edge_mines_field',
|
||||
},
|
||||
{
|
||||
up: migration_20260909_153427_add_opord_recall_best_times.up,
|
||||
down: migration_20260909_153427_add_opord_recall_best_times.down,
|
||||
name: "20260909_153427_add_opord_recall_best_times",
|
||||
name: '20260909_153427_add_opord_recall_best_times',
|
||||
},
|
||||
{
|
||||
up: migration_20260909_223955_add_voice_script_draft_status.up,
|
||||
down: migration_20260909_223955_add_voice_script_draft_status.down,
|
||||
name: "20260909_223955_add_voice_script_draft_status",
|
||||
name: '20260909_223955_add_voice_script_draft_status',
|
||||
},
|
||||
{
|
||||
up: migration_20260910_221018_make_missions_codename_optional.up,
|
||||
down: migration_20260910_221018_make_missions_codename_optional.down,
|
||||
name: "20260910_221018_make_missions_codename_optional",
|
||||
name: '20260910_221018_make_missions_codename_optional',
|
||||
},
|
||||
{
|
||||
up: migration_20260910_222518_add_dashboard_layout_preference.up,
|
||||
down: migration_20260910_222518_add_dashboard_layout_preference.down,
|
||||
name: "20260910_222518_add_dashboard_layout_preference",
|
||||
name: '20260910_222518_add_dashboard_layout_preference',
|
||||
},
|
||||
{
|
||||
up: migration_20260911_044754_add_poker_minigame_stats.up,
|
||||
down: migration_20260911_044754_add_poker_minigame_stats.down,
|
||||
name: "20260911_044754_add_poker_minigame_stats",
|
||||
name: '20260911_044754_add_poker_minigame_stats',
|
||||
},
|
||||
{
|
||||
up: migration_20260911_052147_add_ribbon_submissions.up,
|
||||
down: migration_20260911_052147_add_ribbon_submissions.down,
|
||||
name: "20260911_052147_add_ribbon_submissions",
|
||||
name: '20260911_052147_add_ribbon_submissions',
|
||||
},
|
||||
{
|
||||
up: migration_20260911_201559_add_award_advancement_series.up,
|
||||
down: migration_20260911_201559_add_award_advancement_series.down,
|
||||
name: "20260911_201559_add_award_advancement_series",
|
||||
name: '20260911_201559_add_award_advancement_series',
|
||||
},
|
||||
{
|
||||
up: migration_20260912_051752_add_rank_promotion_ceiling.up,
|
||||
down: migration_20260912_051752_add_rank_promotion_ceiling.down,
|
||||
name: "20260912_051752_add_rank_promotion_ceiling",
|
||||
name: '20260912_051752_add_rank_promotion_ceiling',
|
||||
},
|
||||
{
|
||||
up: migration_20260912_071740_add_blackjack_minigame_stats.up,
|
||||
down: migration_20260912_071740_add_blackjack_minigame_stats.down,
|
||||
name: "20260912_071740_add_blackjack_minigame_stats",
|
||||
name: '20260912_071740_add_blackjack_minigame_stats',
|
||||
},
|
||||
{
|
||||
up: migration_20260912_231219_add_discord_cancelled_at.up,
|
||||
down: migration_20260912_231219_add_discord_cancelled_at.down,
|
||||
name: "20260912_231219_add_discord_cancelled_at",
|
||||
name: '20260912_231219_add_discord_cancelled_at',
|
||||
},
|
||||
{
|
||||
up: migration_20260914_153046_add_chip_bank.up,
|
||||
down: migration_20260914_153046_add_chip_bank.down,
|
||||
name: "20260914_153046_add_chip_bank",
|
||||
name: '20260914_153046_add_chip_bank',
|
||||
},
|
||||
{
|
||||
up: migration_20260914_171412_add_respawn_tickets.up,
|
||||
down: migration_20260914_171412_add_respawn_tickets.down,
|
||||
name: "20260914_171412_add_respawn_tickets",
|
||||
name: '20260914_171412_add_respawn_tickets',
|
||||
},
|
||||
{
|
||||
up: migration_20260916_083158_add_game_map_system.up,
|
||||
down: migration_20260916_083158_add_game_map_system.down,
|
||||
name: "20260916_083158_add_game_map_system",
|
||||
name: '20260916_083158_add_game_map_system',
|
||||
},
|
||||
{
|
||||
up: migration_20260916_185544_construction_timestamp_model.up,
|
||||
down: migration_20260916_185544_construction_timestamp_model.down,
|
||||
name: "20260916_185544_construction_timestamp_model",
|
||||
name: '20260916_185544_construction_timestamp_model',
|
||||
},
|
||||
{
|
||||
up: migration_20260916_220224_add_map_labels_and_styling.up,
|
||||
down: migration_20260916_220224_add_map_labels_and_styling.down,
|
||||
name: "20260916_220224_add_map_labels_and_styling",
|
||||
name: '20260916_220224_add_map_labels_and_styling',
|
||||
},
|
||||
{
|
||||
up: migration_20260917_023028_add_node_and_zone_resources.up,
|
||||
down: migration_20260917_023028_add_node_and_zone_resources.down,
|
||||
name: "20260917_023028_add_node_and_zone_resources",
|
||||
name: '20260917_023028_add_node_and_zone_resources',
|
||||
},
|
||||
{
|
||||
up: migration_20260917_112258_add_zone_political_types.up,
|
||||
down: migration_20260917_112258_add_zone_political_types.down,
|
||||
name: "20260917_112258_add_zone_political_types",
|
||||
name: '20260917_112258_add_zone_political_types',
|
||||
},
|
||||
{
|
||||
up: migration_20260917_225116_add_zone_other_type.up,
|
||||
down: migration_20260917_225116_add_zone_other_type.down,
|
||||
name: '20260917_225116_add_zone_other_type',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_052751_add_production_system.up,
|
||||
down: migration_20260918_052751_add_production_system.down,
|
||||
name: '20260918_052751_add_production_system',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_054722_add_labor_construction_speed.up,
|
||||
down: migration_20260918_054722_add_labor_construction_speed.down,
|
||||
name: '20260918_054722_add_labor_construction_speed',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_061857_add_module_slots.up,
|
||||
down: migration_20260918_061857_add_module_slots.down,
|
||||
name: '20260918_061857_add_module_slots',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_064326_add_compound_parent.up,
|
||||
down: migration_20260918_064326_add_compound_parent.down,
|
||||
name: '20260918_064326_add_compound_parent',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_070328_add_blueprint_aura.up,
|
||||
down: migration_20260918_070328_add_blueprint_aura.down,
|
||||
name: '20260918_070328_add_blueprint_aura',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_170318_add_imminent_reminder_marker.up,
|
||||
down: migration_20260918_170318_add_imminent_reminder_marker.down,
|
||||
name: "20260918_170318_add_imminent_reminder_marker",
|
||||
name: '20260918_170318_add_imminent_reminder_marker',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_180851_add_operation_ledger.up,
|
||||
down: migration_20260918_180851_add_operation_ledger.down,
|
||||
name: '20260918_180851_add_operation_ledger',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_194842_add_operation_allocation.up,
|
||||
down: migration_20260918_194842_add_operation_allocation.down,
|
||||
name: '20260918_194842_add_operation_allocation',
|
||||
},
|
||||
{
|
||||
up: migration_20260918_222549_add_operation_readiness.up,
|
||||
down: migration_20260918_222549_add_operation_readiness.down,
|
||||
name: '20260918_222549_add_operation_readiness',
|
||||
},
|
||||
{
|
||||
up: migration_20260920_044743_add_zone_pressure.up,
|
||||
down: migration_20260920_044743_add_zone_pressure.down,
|
||||
name: '20260920_044743_add_zone_pressure'
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -657,6 +657,14 @@ export const enum_structures_staff_positions_position_type = pgEnum(
|
|||
"enum_structures_staff_positions_position_type",
|
||||
["administrative", "technical", "other"],
|
||||
);
|
||||
export const enum_structures_module_options_effects_type = pgEnum(
|
||||
"enum_structures_module_options_effects_type",
|
||||
["capacity_mass", "production_multiplier", "storage_slots"],
|
||||
);
|
||||
export const enum_structures_module_options_category = pgEnum(
|
||||
"enum_structures_module_options_category",
|
||||
["production", "logistics", "defense", "utility"],
|
||||
);
|
||||
export const enum_structures_approval_status = pgEnum("enum_structures_approval_status", [
|
||||
"in_progress",
|
||||
"ready_for_review",
|
||||
|
|
@ -673,6 +681,10 @@ export const enum_structures_terrain_type = pgEnum("enum_structures_terrain_type
|
|||
"land",
|
||||
"water",
|
||||
]);
|
||||
export const enum_structures_aura_effect_type = pgEnum("enum_structures_aura_effect_type", [
|
||||
"production_multiplier",
|
||||
"capacity_mass",
|
||||
]);
|
||||
export const enum_structures_function_type = pgEnum("enum_structures_function_type", [
|
||||
"producer",
|
||||
"storage",
|
||||
|
|
@ -838,6 +850,7 @@ export const enum_map_zones_type = pgEnum("enum_map_zones_type", [
|
|||
"land",
|
||||
"territory",
|
||||
"border",
|
||||
"other",
|
||||
]);
|
||||
export const enum_narrative_events_triggers_type = pgEnum("enum_narrative_events_triggers_type", [
|
||||
"manual",
|
||||
|
|
@ -990,6 +1003,76 @@ export const game_structures_staff_positions = pgTable(
|
|||
],
|
||||
);
|
||||
|
||||
export const game_structures_production_inputs = pgTable(
|
||||
"game_structures_production_inputs",
|
||||
{
|
||||
_order: integer("_order").notNull(),
|
||||
_parentID: integer("_parent_id").notNull(),
|
||||
id: varchar("id").primaryKey(),
|
||||
resource: integer("resource_id")
|
||||
.notNull()
|
||||
.references(() => resources.id, {
|
||||
onDelete: "set null",
|
||||
}),
|
||||
amountPerHour: numeric("amount_per_hour", { mode: "number" }).notNull().default(0),
|
||||
},
|
||||
(columns) => [
|
||||
index("game_structures_production_inputs_order_idx").on(columns._order),
|
||||
index("game_structures_production_inputs_parent_id_idx").on(columns._parentID),
|
||||
index("game_structures_production_inputs_resource_idx").on(columns.resource),
|
||||
foreignKey({
|
||||
columns: [columns["_parentID"]],
|
||||
foreignColumns: [game_structures.id],
|
||||
name: "game_structures_production_inputs_parent_id_fk",
|
||||
}).onDelete("cascade"),
|
||||
],
|
||||
);
|
||||
|
||||
export const game_structures_production_outputs = pgTable(
|
||||
"game_structures_production_outputs",
|
||||
{
|
||||
_order: integer("_order").notNull(),
|
||||
_parentID: integer("_parent_id").notNull(),
|
||||
id: varchar("id").primaryKey(),
|
||||
resource: integer("resource_id")
|
||||
.notNull()
|
||||
.references(() => resources.id, {
|
||||
onDelete: "set null",
|
||||
}),
|
||||
amountPerHour: numeric("amount_per_hour", { mode: "number" }).notNull().default(0),
|
||||
},
|
||||
(columns) => [
|
||||
index("game_structures_production_outputs_order_idx").on(columns._order),
|
||||
index("game_structures_production_outputs_parent_id_idx").on(columns._parentID),
|
||||
index("game_structures_production_outputs_resource_idx").on(columns.resource),
|
||||
foreignKey({
|
||||
columns: [columns["_parentID"]],
|
||||
foreignColumns: [game_structures.id],
|
||||
name: "game_structures_production_outputs_parent_id_fk",
|
||||
}).onDelete("cascade"),
|
||||
],
|
||||
);
|
||||
|
||||
export const game_structures_installed_modules = pgTable(
|
||||
"game_structures_installed_modules",
|
||||
{
|
||||
_order: integer("_order").notNull(),
|
||||
_parentID: integer("_parent_id").notNull(),
|
||||
id: varchar("id").primaryKey(),
|
||||
name: varchar("name").notNull(),
|
||||
installedAt: timestamp("installed_at", { mode: "string", withTimezone: true, precision: 3 }),
|
||||
},
|
||||
(columns) => [
|
||||
index("game_structures_installed_modules_order_idx").on(columns._order),
|
||||
index("game_structures_installed_modules_parent_id_idx").on(columns._parentID),
|
||||
foreignKey({
|
||||
columns: [columns["_parentID"]],
|
||||
foreignColumns: [game_structures.id],
|
||||
name: "game_structures_installed_modules_parent_id_fk",
|
||||
}).onDelete("cascade"),
|
||||
],
|
||||
);
|
||||
|
||||
export const game_structures_stored_resources = pgTable(
|
||||
"game_structures_stored_resources",
|
||||
{
|
||||
|
|
@ -1075,9 +1158,22 @@ export const game_structures = pgTable(
|
|||
precision: 3,
|
||||
}),
|
||||
maintenanceCost: numeric("maintenance_cost", { mode: "number" }).default(0),
|
||||
productionPaused: boolean("production_paused").default(false),
|
||||
lastProductionAt: timestamp("last_production_at", {
|
||||
mode: "string",
|
||||
withTimezone: true,
|
||||
precision: 3,
|
||||
}),
|
||||
productionStallReason: varchar("production_stall_reason"),
|
||||
coordinates: geometryColumn("coordinates"),
|
||||
labelVisible: boolean("label_visible").default(true),
|
||||
labelPriority: numeric("label_priority", { mode: "number" }).default(0),
|
||||
parentStructure: integer("parent_structure_id").references(
|
||||
(): AnyPgColumn => game_structures.id,
|
||||
{
|
||||
onDelete: "set null",
|
||||
},
|
||||
),
|
||||
updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 })
|
||||
.defaultNow()
|
||||
.notNull(),
|
||||
|
|
@ -1089,6 +1185,7 @@ export const game_structures = pgTable(
|
|||
index("game_structures_type_idx").on(columns.type),
|
||||
index("game_structures_faction_idx").on(columns.faction),
|
||||
index("game_structures_map_idx").on(columns.map),
|
||||
index("game_structures_parent_structure_idx").on(columns.parentStructure),
|
||||
index("game_structures_updated_at_idx").on(columns.updatedAt),
|
||||
index("game_structures_created_at_idx").on(columns.createdAt),
|
||||
],
|
||||
|
|
@ -1294,6 +1391,7 @@ export const labor_classifications = pgTable(
|
|||
key: varchar("key").notNull(),
|
||||
defaultUnitSalary: numeric("default_unit_salary", { mode: "number" }),
|
||||
description: varchar("description"),
|
||||
buildEfficiency: numeric("build_efficiency", { mode: "number" }).default(1),
|
||||
availableHeadcount: numeric("available_headcount", { mode: "number" }).default(0),
|
||||
updatedAt: timestamp("updated_at", { mode: "string", withTimezone: true, precision: 3 })
|
||||
.defaultNow()
|
||||
|
|
@ -3612,6 +3710,122 @@ export const structures_staff_positions = pgTable(
|
|||
],
|
||||
);
|
||||
|
||||
export const structures_production_inputs = pgTable(
|
||||
"structures_production_inputs",
|
||||
{
|
||||
_order: integer("_order").notNull(),
|
||||
_parentID: integer("_parent_id").notNull(),
|
||||
id: varchar("id").primaryKey(),
|
||||
resource: integer("resource_id")
|
||||
.notNull()
|
||||
.references(() => resources.id, {
|
||||
onDelete: "set null",
|
||||
}),
|
||||
amountPerHour: numeric("amount_per_hour", { mode: "number" }).notNull().default(0),
|
||||
},
|
||||
(columns) => [
|
||||
index("structures_production_inputs_order_idx").on(columns._order),
|
||||
index("structures_production_inputs_parent_id_idx").on(columns._parentID),
|
||||
index("structures_production_inputs_resource_idx").on(columns.resource),
|
||||
foreignKey({
|
||||
columns: [columns["_parentID"]],
|
||||
foreignColumns: [structures.id],
|
||||
name: "structures_production_inputs_parent_id_fk",
|
||||
}).onDelete("cascade"),
|
||||
],
|
||||
);
|
||||
|
||||
export const structures_production_outputs = pgTable(
|
||||
"structures_production_outputs",
|
||||
{
|
||||
_order: integer("_order").notNull(),
|
||||
_parentID: integer("_parent_id").notNull(),
|
||||
id: varchar("id").primaryKey(),
|
||||
resource: integer("resource_id")
|
||||
.notNull()
|
||||
.references(() => resources.id, {
|
||||
onDelete: "set null",
|
||||
}),
|
||||
amountPerHour: numeric("amount_per_hour", { mode: "number" }).notNull().default(0),
|
||||
},
|
||||
(columns) => [
|
||||
index("structures_production_outputs_order_idx").on(columns._order),
|
||||
index("structures_production_outputs_parent_id_idx").on(columns._parentID),
|
||||
index("structures_production_outputs_resource_idx").on(columns.resource),
|
||||
foreignKey({
|
||||
columns: [columns["_parentID"]],
|
||||
foreignColumns: [structures.id],
|
||||
name: "structures_production_outputs_parent_id_fk",
|
||||
}).onDelete("cascade"),
|
||||
],
|
||||
);
|
||||
|
||||
export const structures_module_options_effects = pgTable(
|
||||
"structures_module_options_effects",
|
||||
{
|
||||
_order: integer("_order").notNull(),
|
||||
_parentID: varchar("_parent_id").notNull(),
|
||||
id: varchar("id").primaryKey(),
|
||||
type: enum_structures_module_options_effects_type("type").notNull(),
|
||||
value: numeric("value", { mode: "number" }).notNull(),
|
||||
},
|
||||
(columns) => [
|
||||
index("structures_module_options_effects_order_idx").on(columns._order),
|
||||
index("structures_module_options_effects_parent_id_idx").on(columns._parentID),
|
||||
foreignKey({
|
||||
columns: [columns["_parentID"]],
|
||||
foreignColumns: [structures_module_options.id],
|
||||
name: "structures_module_options_effects_parent_id_fk",
|
||||
}).onDelete("cascade"),
|
||||
],
|
||||
);
|
||||
|
||||
export const structures_module_options_materials = pgTable(
|
||||
"structures_module_options_materials",
|
||||
{
|
||||
_order: integer("_order").notNull(),
|
||||
_parentID: varchar("_parent_id").notNull(),
|
||||
id: varchar("id").primaryKey(),
|
||||
resource: integer("resource_id")
|
||||
.notNull()
|
||||
.references(() => resources.id, {
|
||||
onDelete: "set null",
|
||||
}),
|
||||
amount: numeric("amount", { mode: "number" }).notNull(),
|
||||
},
|
||||
(columns) => [
|
||||
index("structures_module_options_materials_order_idx").on(columns._order),
|
||||
index("structures_module_options_materials_parent_id_idx").on(columns._parentID),
|
||||
index("structures_module_options_materials_resource_idx").on(columns.resource),
|
||||
foreignKey({
|
||||
columns: [columns["_parentID"]],
|
||||
foreignColumns: [structures_module_options.id],
|
||||
name: "structures_module_options_materials_parent_id_fk",
|
||||
}).onDelete("cascade"),
|
||||
],
|
||||
);
|
||||
|
||||
export const structures_module_options = pgTable(
|
||||
"structures_module_options",
|
||||
{
|
||||
_order: integer("_order").notNull(),
|
||||
_parentID: integer("_parent_id").notNull(),
|
||||
id: varchar("id").primaryKey(),
|
||||
name: varchar("name").notNull(),
|
||||
category: enum_structures_module_options_category("category").notNull().default("utility"),
|
||||
description: varchar("description"),
|
||||
},
|
||||
(columns) => [
|
||||
index("structures_module_options_order_idx").on(columns._order),
|
||||
index("structures_module_options_parent_id_idx").on(columns._parentID),
|
||||
foreignKey({
|
||||
columns: [columns["_parentID"]],
|
||||
foreignColumns: [structures.id],
|
||||
name: "structures_module_options_parent_id_fk",
|
||||
}).onDelete("cascade"),
|
||||
],
|
||||
);
|
||||
|
||||
export const structures_auto_generated_resources = pgTable(
|
||||
"structures_auto_generated_resources",
|
||||
{
|
||||
|
|
@ -3695,6 +3909,7 @@ export const structures = pgTable(
|
|||
constructionDurationMinutes: numeric("construction_duration_minutes", {
|
||||
mode: "number",
|
||||
}).notNull(),
|
||||
constructionCrewRequired: numeric("construction_crew_required", { mode: "number" }).default(0),
|
||||
requiresUpgrade: boolean("requires_upgrade"),
|
||||
upgradesInto: integer("upgrades_into_id").references((): AnyPgColumn => structures.id, {
|
||||
onDelete: "set null",
|
||||
|
|
@ -3703,6 +3918,10 @@ export const structures = pgTable(
|
|||
terrainType: enum_structures_terrain_type("terrain_type").notNull(),
|
||||
sellPrice: numeric("sell_price", { mode: "number" }),
|
||||
maintenanceCost: numeric("maintenance_cost", { mode: "number" }).default(0),
|
||||
moduleSlots: numeric("module_slots", { mode: "number" }).default(0),
|
||||
aura_effectType: enum_structures_aura_effect_type("aura_effect_type"),
|
||||
aura_value: numeric("aura_value", { mode: "number" }),
|
||||
aura_rangeMeters: numeric("aura_range_meters", { mode: "number" }).default(0),
|
||||
functionType: enum_structures_function_type("function_type"),
|
||||
maxCapacityMass: numeric("max_capacity_mass", { mode: "number" }),
|
||||
restrictToAllowed: boolean("restrict_to_allowed").default(false),
|
||||
|
|
@ -6512,6 +6731,46 @@ export const relations_game_structures_staff_positions = relations(
|
|||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_game_structures_production_inputs = relations(
|
||||
game_structures_production_inputs,
|
||||
({ one }) => ({
|
||||
_parentID: one(game_structures, {
|
||||
fields: [game_structures_production_inputs._parentID],
|
||||
references: [game_structures.id],
|
||||
relationName: "productionInputs",
|
||||
}),
|
||||
resource: one(resources, {
|
||||
fields: [game_structures_production_inputs.resource],
|
||||
references: [resources.id],
|
||||
relationName: "resource",
|
||||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_game_structures_production_outputs = relations(
|
||||
game_structures_production_outputs,
|
||||
({ one }) => ({
|
||||
_parentID: one(game_structures, {
|
||||
fields: [game_structures_production_outputs._parentID],
|
||||
references: [game_structures.id],
|
||||
relationName: "productionOutputs",
|
||||
}),
|
||||
resource: one(resources, {
|
||||
fields: [game_structures_production_outputs.resource],
|
||||
references: [resources.id],
|
||||
relationName: "resource",
|
||||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_game_structures_installed_modules = relations(
|
||||
game_structures_installed_modules,
|
||||
({ one }) => ({
|
||||
_parentID: one(game_structures, {
|
||||
fields: [game_structures_installed_modules._parentID],
|
||||
references: [game_structures.id],
|
||||
relationName: "installedModules",
|
||||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_game_structures_stored_resources = relations(
|
||||
game_structures_stored_resources,
|
||||
({ one }) => ({
|
||||
|
|
@ -6564,6 +6823,20 @@ export const relations_game_structures = relations(game_structures, ({ one, many
|
|||
staffPositions: many(game_structures_staff_positions, {
|
||||
relationName: "staffPositions",
|
||||
}),
|
||||
productionInputs: many(game_structures_production_inputs, {
|
||||
relationName: "productionInputs",
|
||||
}),
|
||||
productionOutputs: many(game_structures_production_outputs, {
|
||||
relationName: "productionOutputs",
|
||||
}),
|
||||
installedModules: many(game_structures_installed_modules, {
|
||||
relationName: "installedModules",
|
||||
}),
|
||||
parentStructure: one(game_structures, {
|
||||
fields: [game_structures.parentStructure],
|
||||
references: [game_structures.id],
|
||||
relationName: "parentStructure",
|
||||
}),
|
||||
storedResources: many(game_structures_stored_resources, {
|
||||
relationName: "storedResources",
|
||||
}),
|
||||
|
|
@ -7575,6 +7848,77 @@ export const relations_structures_staff_positions = relations(
|
|||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_structures_production_inputs = relations(
|
||||
structures_production_inputs,
|
||||
({ one }) => ({
|
||||
_parentID: one(structures, {
|
||||
fields: [structures_production_inputs._parentID],
|
||||
references: [structures.id],
|
||||
relationName: "productionInputs",
|
||||
}),
|
||||
resource: one(resources, {
|
||||
fields: [structures_production_inputs.resource],
|
||||
references: [resources.id],
|
||||
relationName: "resource",
|
||||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_structures_production_outputs = relations(
|
||||
structures_production_outputs,
|
||||
({ one }) => ({
|
||||
_parentID: one(structures, {
|
||||
fields: [structures_production_outputs._parentID],
|
||||
references: [structures.id],
|
||||
relationName: "productionOutputs",
|
||||
}),
|
||||
resource: one(resources, {
|
||||
fields: [structures_production_outputs.resource],
|
||||
references: [resources.id],
|
||||
relationName: "resource",
|
||||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_structures_module_options_effects = relations(
|
||||
structures_module_options_effects,
|
||||
({ one }) => ({
|
||||
_parentID: one(structures_module_options, {
|
||||
fields: [structures_module_options_effects._parentID],
|
||||
references: [structures_module_options.id],
|
||||
relationName: "effects",
|
||||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_structures_module_options_materials = relations(
|
||||
structures_module_options_materials,
|
||||
({ one }) => ({
|
||||
_parentID: one(structures_module_options, {
|
||||
fields: [structures_module_options_materials._parentID],
|
||||
references: [structures_module_options.id],
|
||||
relationName: "materials",
|
||||
}),
|
||||
resource: one(resources, {
|
||||
fields: [structures_module_options_materials.resource],
|
||||
references: [resources.id],
|
||||
relationName: "resource",
|
||||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_structures_module_options = relations(
|
||||
structures_module_options,
|
||||
({ one, many }) => ({
|
||||
_parentID: one(structures, {
|
||||
fields: [structures_module_options._parentID],
|
||||
references: [structures.id],
|
||||
relationName: "moduleOptions",
|
||||
}),
|
||||
effects: many(structures_module_options_effects, {
|
||||
relationName: "effects",
|
||||
}),
|
||||
materials: many(structures_module_options_materials, {
|
||||
relationName: "materials",
|
||||
}),
|
||||
}),
|
||||
);
|
||||
export const relations_structures_auto_generated_resources = relations(
|
||||
structures_auto_generated_resources,
|
||||
({ one }) => ({
|
||||
|
|
@ -7666,6 +8010,15 @@ export const relations_structures = relations(structures, ({ one, many }) => ({
|
|||
staffPositions: many(structures_staff_positions, {
|
||||
relationName: "staffPositions",
|
||||
}),
|
||||
productionInputs: many(structures_production_inputs, {
|
||||
relationName: "productionInputs",
|
||||
}),
|
||||
productionOutputs: many(structures_production_outputs, {
|
||||
relationName: "productionOutputs",
|
||||
}),
|
||||
moduleOptions: many(structures_module_options, {
|
||||
relationName: "moduleOptions",
|
||||
}),
|
||||
autoGeneratedResources: many(structures_auto_generated_resources, {
|
||||
relationName: "autoGeneratedResources",
|
||||
}),
|
||||
|
|
@ -8829,9 +9182,12 @@ type DatabaseSchema = {
|
|||
enum_vehicles_transport_mode: typeof enum_vehicles_transport_mode;
|
||||
enum_vehicles_armor_rating: typeof enum_vehicles_armor_rating;
|
||||
enum_structures_staff_positions_position_type: typeof enum_structures_staff_positions_position_type;
|
||||
enum_structures_module_options_effects_type: typeof enum_structures_module_options_effects_type;
|
||||
enum_structures_module_options_category: typeof enum_structures_module_options_category;
|
||||
enum_structures_approval_status: typeof enum_structures_approval_status;
|
||||
enum_structures_category: typeof enum_structures_category;
|
||||
enum_structures_terrain_type: typeof enum_structures_terrain_type;
|
||||
enum_structures_aura_effect_type: typeof enum_structures_aura_effect_type;
|
||||
enum_structures_function_type: typeof enum_structures_function_type;
|
||||
enum_shipments_status: typeof enum_shipments_status;
|
||||
enum_bank_accounts_account_type: typeof enum_bank_accounts_account_type;
|
||||
|
|
@ -8878,6 +9234,9 @@ type DatabaseSchema = {
|
|||
game_hard_resources: typeof game_hard_resources;
|
||||
game_structures_labor_requirements: typeof game_structures_labor_requirements;
|
||||
game_structures_staff_positions: typeof game_structures_staff_positions;
|
||||
game_structures_production_inputs: typeof game_structures_production_inputs;
|
||||
game_structures_production_outputs: typeof game_structures_production_outputs;
|
||||
game_structures_installed_modules: typeof game_structures_installed_modules;
|
||||
game_structures_stored_resources: typeof game_structures_stored_resources;
|
||||
game_structures_void_storage: typeof game_structures_void_storage;
|
||||
game_structures: typeof game_structures;
|
||||
|
|
@ -8953,6 +9312,11 @@ type DatabaseSchema = {
|
|||
structures_upkeep: typeof structures_upkeep;
|
||||
structures_labor_requirements: typeof structures_labor_requirements;
|
||||
structures_staff_positions: typeof structures_staff_positions;
|
||||
structures_production_inputs: typeof structures_production_inputs;
|
||||
structures_production_outputs: typeof structures_production_outputs;
|
||||
structures_module_options_effects: typeof structures_module_options_effects;
|
||||
structures_module_options_materials: typeof structures_module_options_materials;
|
||||
structures_module_options: typeof structures_module_options;
|
||||
structures_auto_generated_resources: typeof structures_auto_generated_resources;
|
||||
structures_allowed_storage: typeof structures_allowed_storage;
|
||||
structures_prohibited_storage: typeof structures_prohibited_storage;
|
||||
|
|
@ -9026,6 +9390,9 @@ type DatabaseSchema = {
|
|||
relations_game_hard_resources: typeof relations_game_hard_resources;
|
||||
relations_game_structures_labor_requirements: typeof relations_game_structures_labor_requirements;
|
||||
relations_game_structures_staff_positions: typeof relations_game_structures_staff_positions;
|
||||
relations_game_structures_production_inputs: typeof relations_game_structures_production_inputs;
|
||||
relations_game_structures_production_outputs: typeof relations_game_structures_production_outputs;
|
||||
relations_game_structures_installed_modules: typeof relations_game_structures_installed_modules;
|
||||
relations_game_structures_stored_resources: typeof relations_game_structures_stored_resources;
|
||||
relations_game_structures_void_storage: typeof relations_game_structures_void_storage;
|
||||
relations_game_structures: typeof relations_game_structures;
|
||||
|
|
@ -9101,6 +9468,11 @@ type DatabaseSchema = {
|
|||
relations_structures_upkeep: typeof relations_structures_upkeep;
|
||||
relations_structures_labor_requirements: typeof relations_structures_labor_requirements;
|
||||
relations_structures_staff_positions: typeof relations_structures_staff_positions;
|
||||
relations_structures_production_inputs: typeof relations_structures_production_inputs;
|
||||
relations_structures_production_outputs: typeof relations_structures_production_outputs;
|
||||
relations_structures_module_options_effects: typeof relations_structures_module_options_effects;
|
||||
relations_structures_module_options_materials: typeof relations_structures_module_options_materials;
|
||||
relations_structures_module_options: typeof relations_structures_module_options;
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -130,6 +130,11 @@ export interface Config {
|
|||
'arma-sync-events': ArmaSyncEvent;
|
||||
'arma-commands': ArmaCommand;
|
||||
'respawn-tickets': RespawnTicket;
|
||||
'operation-events': OperationEvent;
|
||||
'operation-effects': OperationEffect;
|
||||
'operation-reservations': OperationReservation;
|
||||
'operation-readiness': OperationReadiness;
|
||||
'zone-pressure': ZonePressure;
|
||||
'custom-minefields': CustomMinefield;
|
||||
'custom-minefield-scores': CustomMinefieldScore;
|
||||
'custom-radio-tests': CustomRadioTest;
|
||||
|
|
@ -212,6 +217,11 @@ export interface Config {
|
|||
'arma-sync-events': ArmaSyncEventsSelect<false> | ArmaSyncEventsSelect<true>;
|
||||
'arma-commands': ArmaCommandsSelect<false> | ArmaCommandsSelect<true>;
|
||||
'respawn-tickets': RespawnTicketsSelect<false> | RespawnTicketsSelect<true>;
|
||||
'operation-events': OperationEventsSelect<false> | OperationEventsSelect<true>;
|
||||
'operation-effects': OperationEffectsSelect<false> | OperationEffectsSelect<true>;
|
||||
'operation-reservations': OperationReservationsSelect<false> | OperationReservationsSelect<true>;
|
||||
'operation-readiness': OperationReadinessSelect<false> | OperationReadinessSelect<true>;
|
||||
'zone-pressure': ZonePressureSelect<false> | ZonePressureSelect<true>;
|
||||
'custom-minefields': CustomMinefieldsSelect<false> | CustomMinefieldsSelect<true>;
|
||||
'custom-minefield-scores': CustomMinefieldScoresSelect<false> | CustomMinefieldScoresSelect<true>;
|
||||
'custom-radio-tests': CustomRadioTestsSelect<false> | CustomRadioTestsSelect<true>;
|
||||
|
|
@ -402,6 +412,48 @@ export interface GameStructure {
|
|||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
productionInputs?:
|
||||
| {
|
||||
resource: number | Resource;
|
||||
/**
|
||||
* Units processed per real hour while running and staffed.
|
||||
*/
|
||||
amountPerHour: number;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
productionOutputs?:
|
||||
| {
|
||||
resource: number | Resource;
|
||||
/**
|
||||
* Units processed per real hour while running and staffed.
|
||||
*/
|
||||
amountPerHour: number;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* Managed by the install/uninstall module actions.
|
||||
*/
|
||||
installedModules?:
|
||||
| {
|
||||
name: string;
|
||||
installedAt?: string | null;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* When checked the structure stops producing until unchecked.
|
||||
*/
|
||||
productionPaused?: boolean | null;
|
||||
/**
|
||||
* Last game tick that ran this structure's recipe.
|
||||
*/
|
||||
lastProductionAt?: string | null;
|
||||
/**
|
||||
* Why production is not running: no_labor, missing_inputs, storage_full. Empty = running.
|
||||
*/
|
||||
productionStallReason?: string | null;
|
||||
/**
|
||||
* Map meters [x, y] on the structure's game map (not geographic degrees).
|
||||
*
|
||||
|
|
@ -417,6 +469,10 @@ export interface GameStructure {
|
|||
* Label priority for clustering (0-100). Higher wins when structures overlap at low zoom; ties break by stored mass.
|
||||
*/
|
||||
labelPriority?: number | null;
|
||||
/**
|
||||
* Set when this building is part of a compound: its storage pools into the hub, which carries the compound's map label and ribbon.
|
||||
*/
|
||||
parentStructure?: (number | null) | GameStructure;
|
||||
storedResources?:
|
||||
| {
|
||||
resource: number | Resource;
|
||||
|
|
@ -502,6 +558,10 @@ export interface Structure {
|
|||
* How many real minutes it takes to complete construction of this structure after materials are delivered and building starts.
|
||||
*/
|
||||
constructionDurationMinutes: number;
|
||||
/**
|
||||
* Effective crew needed for the listed build time. 0 builds at full speed with no labor. Understaffed sites build proportionally slower.
|
||||
*/
|
||||
constructionCrewRequired?: number | null;
|
||||
/**
|
||||
* What research must be done before this can be built.
|
||||
*/
|
||||
|
|
@ -598,6 +658,71 @@ export interface Structure {
|
|||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* Default recipe copied into newly created game-structures of this type. Empty = no recipe.
|
||||
*/
|
||||
productionInputs?:
|
||||
| {
|
||||
resource: number | Resource;
|
||||
/**
|
||||
* Units processed per real hour while running and staffed.
|
||||
*/
|
||||
amountPerHour: number;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* Default recipe copied into newly created game-structures of this type. Empty = no recipe.
|
||||
*/
|
||||
productionOutputs?:
|
||||
| {
|
||||
resource: number | Resource;
|
||||
/**
|
||||
* Units processed per real hour while running and staffed.
|
||||
*/
|
||||
amountPerHour: number;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* How many modules can be installed in structures of this type. 0 = no module support.
|
||||
*/
|
||||
moduleSlots?: number | null;
|
||||
/**
|
||||
* Modules that can be installed into structures of this type.
|
||||
*/
|
||||
moduleOptions?:
|
||||
| {
|
||||
name: string;
|
||||
category: 'production' | 'logistics' | 'defense' | 'utility';
|
||||
description?: string | null;
|
||||
effects: {
|
||||
type: 'capacity_mass' | 'production_multiplier' | 'storage_slots';
|
||||
/**
|
||||
* capacity_mass: extra kg of storage. storage_slots: extra grid slots. production_multiplier: output boost as a fraction (0.25 = +25%).
|
||||
*/
|
||||
value: number;
|
||||
id?: string | null;
|
||||
}[];
|
||||
materials: {
|
||||
resource: number | Resource;
|
||||
amount: number;
|
||||
id?: string | null;
|
||||
}[];
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* Projected onto nearby operational structures (neighbors only, not itself).
|
||||
*/
|
||||
aura?: {
|
||||
/**
|
||||
* production_multiplier: boosts the neighbor's production output (value 0.25 = +25%). capacity_mass: raises the neighbor's storage capacity (value in kg).
|
||||
*/
|
||||
effectType?: ('production_multiplier' | 'capacity_mass') | null;
|
||||
value?: number | null;
|
||||
rangeMeters?: number | null;
|
||||
};
|
||||
/**
|
||||
* The app will use this type to determine what processes should run for this structure type.
|
||||
*/
|
||||
|
|
@ -899,6 +1024,10 @@ export interface LaborClassification {
|
|||
*/
|
||||
defaultUnitSalary?: number | null;
|
||||
description?: string | null;
|
||||
/**
|
||||
* Construction speed this trade contributes per worker while building structures (1 = a full worker).
|
||||
*/
|
||||
buildEfficiency?: number | null;
|
||||
/**
|
||||
* How many workers of this classification are currently available to hire across the unit. Hiring consumes from this pool; releasing staff returns them.
|
||||
*/
|
||||
|
|
@ -1751,6 +1880,31 @@ export interface Role {
|
|||
| 'arma-commands:update'
|
||||
| 'arma-commands:delete'
|
||||
| 'admin:arma-commands:manage'
|
||||
| 'operation-events:create'
|
||||
| 'operation-events:read'
|
||||
| 'operation-events:update'
|
||||
| 'operation-events:delete'
|
||||
| 'admin:operation-events:manage'
|
||||
| 'operation-effects:create'
|
||||
| 'operation-effects:read'
|
||||
| 'operation-effects:update'
|
||||
| 'operation-effects:delete'
|
||||
| 'admin:operation-effects:manage'
|
||||
| 'operation-reservations:create'
|
||||
| 'operation-reservations:read'
|
||||
| 'operation-reservations:update'
|
||||
| 'operation-reservations:delete'
|
||||
| 'admin:operation-reservations:manage'
|
||||
| 'operation-readiness:create'
|
||||
| 'operation-readiness:read'
|
||||
| 'operation-readiness:update'
|
||||
| 'operation-readiness:delete'
|
||||
| 'admin:operation-readiness:manage'
|
||||
| 'zone-pressure:create'
|
||||
| 'zone-pressure:read'
|
||||
| 'zone-pressure:update'
|
||||
| 'zone-pressure:delete'
|
||||
| 'admin:zone-pressure:manage'
|
||||
| 'game-rules:read'
|
||||
| 'game-rules:update'
|
||||
| 'shims:read'
|
||||
|
|
@ -3829,9 +3983,9 @@ export interface MapZone {
|
|||
description?: string | null;
|
||||
map: number | Map;
|
||||
/**
|
||||
* Water zones block land-blueprint placement. Land zones are informational; default terrain is buildable land. Territory and Country Border are political boundaries (informational).
|
||||
* Water zones block land-blueprint placement. Land zones are informational; default terrain is buildable land. Territory and Country Border are political boundaries (informational). Other is for generic areas such as named compounds.
|
||||
*/
|
||||
type: 'water' | 'land' | 'territory' | 'border';
|
||||
type: 'water' | 'land' | 'territory' | 'border' | 'other';
|
||||
/**
|
||||
* Polygon fill as hex (e.g. #38bdf8). Empty = default color for the type.
|
||||
*/
|
||||
|
|
@ -3841,7 +3995,7 @@ export interface MapZone {
|
|||
*/
|
||||
strokeColor?: string | null;
|
||||
/**
|
||||
* Fill opacity 0-1. Empty = default (0.25 water, 0.08 land, 0.1 territory, 0.06 border).
|
||||
* Fill opacity 0-1. Empty = default (0.25 water, 0.08 land, 0.1 territory, 0.06 border, 0.08 other).
|
||||
*/
|
||||
fillOpacity?: number | null;
|
||||
/**
|
||||
|
|
@ -4106,6 +4260,311 @@ export interface RespawnTicket {
|
|||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "operation-events".
|
||||
*/
|
||||
export interface OperationEvent {
|
||||
id: number;
|
||||
/**
|
||||
* The immutable raw sync event this record was derived from.
|
||||
*/
|
||||
sourceEvent: number | ArmaSyncEvent;
|
||||
/**
|
||||
* Mirror of the raw event's server-prefixed id (serverId:eventId).
|
||||
*/
|
||||
eventId: string;
|
||||
/**
|
||||
* Operation identity from the event payload, or "unknown".
|
||||
*/
|
||||
operationId: string;
|
||||
/**
|
||||
* Event type as received. Supported: operation.start, operation.end, operation.objective, operation.extraction, operation.inventory, player.kill. Unknown types are kept as dead-letter records.
|
||||
*/
|
||||
type: string;
|
||||
/**
|
||||
* Event contract version from the payload (default 1).
|
||||
*/
|
||||
version: number;
|
||||
/**
|
||||
* Validation outcome. Only validated events derive effects.
|
||||
*/
|
||||
status: 'validated' | 'rejected' | 'dead-letter';
|
||||
/**
|
||||
* Rejection/dead-letter reason: { code, message }.
|
||||
*/
|
||||
error?:
|
||||
| {
|
||||
[k: string]: unknown;
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| null;
|
||||
/**
|
||||
* SHA-256 of the stable-stringified raw payload.
|
||||
*/
|
||||
payloadHash: string;
|
||||
actor?: (number | null) | User;
|
||||
server?: (number | null) | GameServer;
|
||||
mission?: (number | null) | Mission;
|
||||
occurredAt: string;
|
||||
validatedAt?: string | null;
|
||||
reconciliationNotes?: string | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "operation-effects".
|
||||
*/
|
||||
export interface OperationEffect {
|
||||
id: number;
|
||||
/**
|
||||
* The validated operation event this effect derives from.
|
||||
*/
|
||||
operationEvent: number | OperationEvent;
|
||||
/**
|
||||
* The raw source event this effect derives from.
|
||||
*/
|
||||
sourceEvent: number | ArmaSyncEvent;
|
||||
operationId: string;
|
||||
/**
|
||||
* Idempotency key: `${eventId}:${effectType}`.
|
||||
*/
|
||||
effectKey: string;
|
||||
effectType:
|
||||
| 'operation.started'
|
||||
| 'operation.ended'
|
||||
| 'operation.objective-updated'
|
||||
| 'operation.extraction-recorded'
|
||||
| 'operation.inventory-recorded';
|
||||
status: 'applied' | 'pending' | 'failed' | 'reversed';
|
||||
payload?:
|
||||
| {
|
||||
[k: string]: unknown;
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| null;
|
||||
/**
|
||||
* Set when this effect reverses another effect.
|
||||
*/
|
||||
reversalOf?: (number | null) | OperationEffect;
|
||||
/**
|
||||
* Set when this effect has been reversed.
|
||||
*/
|
||||
reversedBy?: (number | null) | OperationEffect;
|
||||
reconciliationNotes?: string | null;
|
||||
appliedAt?: string | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "operation-reservations".
|
||||
*/
|
||||
export interface OperationReservation {
|
||||
id: number;
|
||||
/**
|
||||
* Idempotency key for the allocation request. Retries with the same key are no-ops.
|
||||
*/
|
||||
reservationKey: string;
|
||||
/**
|
||||
* Operation identity this allocation belongs to.
|
||||
*/
|
||||
operationId: string;
|
||||
/**
|
||||
* The mission these assets are allocated to, when known.
|
||||
*/
|
||||
mission?: (number | null) | Mission;
|
||||
/**
|
||||
* reserved is the only non-terminal state; every terminal state is settled exactly once.
|
||||
*/
|
||||
status: 'reserved' | 'settled' | 'cancelled' | 'expired' | 'no-show';
|
||||
/**
|
||||
* Reserved unit members.
|
||||
*/
|
||||
personnel?:
|
||||
| {
|
||||
user: number | User;
|
||||
/**
|
||||
* Optional role/slot label.
|
||||
*/
|
||||
slot?: string | null;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* Reserved deployed vehicles.
|
||||
*/
|
||||
vehicles?:
|
||||
| {
|
||||
vehicle: number | GameVehicle;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* Reserved resources (drawn from the origin structure).
|
||||
*/
|
||||
cargo?:
|
||||
| {
|
||||
resource: number | Resource;
|
||||
amount: number;
|
||||
id?: string | null;
|
||||
}[]
|
||||
| null;
|
||||
/**
|
||||
* Treasury budget earmarked for the operation.
|
||||
*/
|
||||
budget?: {
|
||||
account?: (number | null) | BankAccount;
|
||||
amount?: number | null;
|
||||
};
|
||||
/**
|
||||
* Structure the reserved cargo/vehicles are drawn from.
|
||||
*/
|
||||
origin?: (number | null) | GameStructure;
|
||||
/**
|
||||
* Structure the cargo is bound for (storage rules checked at reserve time).
|
||||
*/
|
||||
destination?: (number | null) | GameStructure;
|
||||
/**
|
||||
* When the reservation lapses; the expiry sweeper settles it as expired.
|
||||
*/
|
||||
expiresAt?: string | null;
|
||||
createdBy?: (number | null) | User;
|
||||
settledAt?: string | null;
|
||||
/**
|
||||
* Provenance: the operation effect that drove this settlement, when effect-driven.
|
||||
*/
|
||||
settledByEffect?: (number | null) | OperationEffect;
|
||||
/**
|
||||
* Deterministic settlement record: outcome, reason, consumed and returned amounts, actor, effect, timestamp.
|
||||
*/
|
||||
settlement?:
|
||||
| {
|
||||
[k: string]: unknown;
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "operation-readiness".
|
||||
*/
|
||||
export interface OperationReadiness {
|
||||
id: number;
|
||||
/**
|
||||
* Who the aggregate is for: a specific user, or a whole role.
|
||||
*/
|
||||
subjectType: 'user' | 'role';
|
||||
/**
|
||||
* Id of the subject (user id for user-scoped; null for role-scoped).
|
||||
*/
|
||||
subjectId?: number | null;
|
||||
/**
|
||||
* Human-readable label for the subject (role name or username). Display only.
|
||||
*/
|
||||
subjectLabel?: string | null;
|
||||
/**
|
||||
* Start of the explicit time window this aggregate covers.
|
||||
*/
|
||||
windowStart: string;
|
||||
/**
|
||||
* End of the time window.
|
||||
*/
|
||||
windowEnd?: string | null;
|
||||
/**
|
||||
* Optional human label for the window (e.g. an ISO week).
|
||||
*/
|
||||
windowLabel?: string | null;
|
||||
/**
|
||||
* Optional operation identity the window's data is attributed to.
|
||||
*/
|
||||
operationId?: string | null;
|
||||
/**
|
||||
* Readiness calculation model version.
|
||||
*/
|
||||
calculationVersion: string;
|
||||
/**
|
||||
* Advisory-only. Never used to gate, punish, or rank players against one another.
|
||||
*/
|
||||
nature: 'advisory';
|
||||
/**
|
||||
* Weighted 0-100 readiness score over present contributing categories.
|
||||
*/
|
||||
readinessScore?: number | null;
|
||||
/**
|
||||
* Weighted 0-100 planning-confidence sub-score from pre-op signals.
|
||||
*/
|
||||
planningConfidenceScore?: number | null;
|
||||
/**
|
||||
* Structured per-category breakdown ({ category, weight, score, inputCount }). No evaluator data.
|
||||
*/
|
||||
contributingCategories?:
|
||||
| {
|
||||
[k: string]: unknown;
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| null;
|
||||
/**
|
||||
* Total component inputs consumed by the aggregate.
|
||||
*/
|
||||
inputCount?: number | null;
|
||||
/**
|
||||
* Human-readable explanation enumerating contributing categories and weights. Never contains evaluator names, ids, or comments.
|
||||
*/
|
||||
explanation?: string | null;
|
||||
/**
|
||||
* When the aggregate was last computed.
|
||||
*/
|
||||
recomputedAt?: string | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "zone-pressure".
|
||||
*/
|
||||
export interface ZonePressure {
|
||||
id: number;
|
||||
/**
|
||||
* The zone this pressure applies to.
|
||||
*/
|
||||
zone: number | MapZone;
|
||||
/**
|
||||
* The faction whose activity drives this pressure.
|
||||
*/
|
||||
faction?: (number | null) | Faction;
|
||||
operationId: string;
|
||||
/**
|
||||
* The mission the operation was scoped to (causal AAR link).
|
||||
*/
|
||||
mission?: (number | null) | Mission;
|
||||
/**
|
||||
* The settled operation effect that produced this delta (idempotency key).
|
||||
*/
|
||||
sourceEffect: number | OperationEffect;
|
||||
/**
|
||||
* Signed pressure delta: hostile gains positive, friendly control negative.
|
||||
*/
|
||||
delta: number;
|
||||
note?: string | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "custom-minefields".
|
||||
|
|
@ -5386,6 +5845,96 @@ export interface PayloadMcpApiKey {
|
|||
*/
|
||||
delete?: boolean | null;
|
||||
};
|
||||
operationEvents?: {
|
||||
/**
|
||||
* Allow clients to find operation-events.
|
||||
*/
|
||||
find?: boolean | null;
|
||||
/**
|
||||
* Allow clients to create operation-events.
|
||||
*/
|
||||
create?: boolean | null;
|
||||
/**
|
||||
* Allow clients to update operation-events.
|
||||
*/
|
||||
update?: boolean | null;
|
||||
/**
|
||||
* Allow clients to delete operation-events.
|
||||
*/
|
||||
delete?: boolean | null;
|
||||
};
|
||||
operationEffects?: {
|
||||
/**
|
||||
* Allow clients to find operation-effects.
|
||||
*/
|
||||
find?: boolean | null;
|
||||
/**
|
||||
* Allow clients to create operation-effects.
|
||||
*/
|
||||
create?: boolean | null;
|
||||
/**
|
||||
* Allow clients to update operation-effects.
|
||||
*/
|
||||
update?: boolean | null;
|
||||
/**
|
||||
* Allow clients to delete operation-effects.
|
||||
*/
|
||||
delete?: boolean | null;
|
||||
};
|
||||
operationReservations?: {
|
||||
/**
|
||||
* Allow clients to find operation-reservations.
|
||||
*/
|
||||
find?: boolean | null;
|
||||
/**
|
||||
* Allow clients to create operation-reservations.
|
||||
*/
|
||||
create?: boolean | null;
|
||||
/**
|
||||
* Allow clients to update operation-reservations.
|
||||
*/
|
||||
update?: boolean | null;
|
||||
/**
|
||||
* Allow clients to delete operation-reservations.
|
||||
*/
|
||||
delete?: boolean | null;
|
||||
};
|
||||
operationReadiness?: {
|
||||
/**
|
||||
* Allow clients to find operation-readiness.
|
||||
*/
|
||||
find?: boolean | null;
|
||||
/**
|
||||
* Allow clients to create operation-readiness.
|
||||
*/
|
||||
create?: boolean | null;
|
||||
/**
|
||||
* Allow clients to update operation-readiness.
|
||||
*/
|
||||
update?: boolean | null;
|
||||
/**
|
||||
* Allow clients to delete operation-readiness.
|
||||
*/
|
||||
delete?: boolean | null;
|
||||
};
|
||||
zonePressure?: {
|
||||
/**
|
||||
* Allow clients to find zone-pressure.
|
||||
*/
|
||||
find?: boolean | null;
|
||||
/**
|
||||
* Allow clients to create zone-pressure.
|
||||
*/
|
||||
create?: boolean | null;
|
||||
/**
|
||||
* Allow clients to update zone-pressure.
|
||||
*/
|
||||
update?: boolean | null;
|
||||
/**
|
||||
* Allow clients to delete zone-pressure.
|
||||
*/
|
||||
delete?: boolean | null;
|
||||
};
|
||||
customMinefields?: {
|
||||
/**
|
||||
* Allow clients to find custom-minefields.
|
||||
|
|
@ -5737,6 +6286,26 @@ export interface PayloadLockedDocument {
|
|||
relationTo: 'respawn-tickets';
|
||||
value: number | RespawnTicket;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'operation-events';
|
||||
value: number | OperationEvent;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'operation-effects';
|
||||
value: number | OperationEffect;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'operation-reservations';
|
||||
value: number | OperationReservation;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'operation-readiness';
|
||||
value: number | OperationReadiness;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'zone-pressure';
|
||||
value: number | ZonePressure;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'custom-minefields';
|
||||
value: number | CustomMinefield;
|
||||
|
|
@ -5872,9 +6441,34 @@ export interface GameStructuresSelect<T extends boolean = true> {
|
|||
enforcedSalary?: T;
|
||||
id?: T;
|
||||
};
|
||||
productionInputs?:
|
||||
| T
|
||||
| {
|
||||
resource?: T;
|
||||
amountPerHour?: T;
|
||||
id?: T;
|
||||
};
|
||||
productionOutputs?:
|
||||
| T
|
||||
| {
|
||||
resource?: T;
|
||||
amountPerHour?: T;
|
||||
id?: T;
|
||||
};
|
||||
installedModules?:
|
||||
| T
|
||||
| {
|
||||
name?: T;
|
||||
installedAt?: T;
|
||||
id?: T;
|
||||
};
|
||||
productionPaused?: T;
|
||||
lastProductionAt?: T;
|
||||
productionStallReason?: T;
|
||||
coordinates?: T;
|
||||
labelVisible?: T;
|
||||
labelPriority?: T;
|
||||
parentStructure?: T;
|
||||
storedResources?:
|
||||
| T
|
||||
| {
|
||||
|
|
@ -5983,6 +6577,7 @@ export interface LaborClassificationsSelect<T extends boolean = true> {
|
|||
key?: T;
|
||||
defaultUnitSalary?: T;
|
||||
description?: T;
|
||||
buildEfficiency?: T;
|
||||
availableHeadcount?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
|
|
@ -6854,6 +7449,7 @@ export interface StructuresSelect<T extends boolean = true> {
|
|||
id?: T;
|
||||
};
|
||||
constructionDurationMinutes?: T;
|
||||
constructionCrewRequired?: T;
|
||||
requiredTech?: T;
|
||||
requiresUpgrade?: T;
|
||||
upgradesInto?: T;
|
||||
|
|
@ -6899,6 +7495,50 @@ export interface StructuresSelect<T extends boolean = true> {
|
|||
enforcedSalary?: T;
|
||||
id?: T;
|
||||
};
|
||||
productionInputs?:
|
||||
| T
|
||||
| {
|
||||
resource?: T;
|
||||
amountPerHour?: T;
|
||||
id?: T;
|
||||
};
|
||||
productionOutputs?:
|
||||
| T
|
||||
| {
|
||||
resource?: T;
|
||||
amountPerHour?: T;
|
||||
id?: T;
|
||||
};
|
||||
moduleSlots?: T;
|
||||
moduleOptions?:
|
||||
| T
|
||||
| {
|
||||
name?: T;
|
||||
category?: T;
|
||||
description?: T;
|
||||
effects?:
|
||||
| T
|
||||
| {
|
||||
type?: T;
|
||||
value?: T;
|
||||
id?: T;
|
||||
};
|
||||
materials?:
|
||||
| T
|
||||
| {
|
||||
resource?: T;
|
||||
amount?: T;
|
||||
id?: T;
|
||||
};
|
||||
id?: T;
|
||||
};
|
||||
aura?:
|
||||
| T
|
||||
| {
|
||||
effectType?: T;
|
||||
value?: T;
|
||||
rangeMeters?: T;
|
||||
};
|
||||
functionType?: T;
|
||||
canProduce?: T;
|
||||
autoGeneratedResources?:
|
||||
|
|
@ -7536,6 +8176,130 @@ export interface RespawnTicketsSelect<T extends boolean = true> {
|
|||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "operation-events_select".
|
||||
*/
|
||||
export interface OperationEventsSelect<T extends boolean = true> {
|
||||
sourceEvent?: T;
|
||||
eventId?: T;
|
||||
operationId?: T;
|
||||
type?: T;
|
||||
version?: T;
|
||||
status?: T;
|
||||
error?: T;
|
||||
payloadHash?: T;
|
||||
actor?: T;
|
||||
server?: T;
|
||||
mission?: T;
|
||||
occurredAt?: T;
|
||||
validatedAt?: T;
|
||||
reconciliationNotes?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "operation-effects_select".
|
||||
*/
|
||||
export interface OperationEffectsSelect<T extends boolean = true> {
|
||||
operationEvent?: T;
|
||||
sourceEvent?: T;
|
||||
operationId?: T;
|
||||
effectKey?: T;
|
||||
effectType?: T;
|
||||
status?: T;
|
||||
payload?: T;
|
||||
reversalOf?: T;
|
||||
reversedBy?: T;
|
||||
reconciliationNotes?: T;
|
||||
appliedAt?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "operation-reservations_select".
|
||||
*/
|
||||
export interface OperationReservationsSelect<T extends boolean = true> {
|
||||
reservationKey?: T;
|
||||
operationId?: T;
|
||||
mission?: T;
|
||||
status?: T;
|
||||
personnel?:
|
||||
| T
|
||||
| {
|
||||
user?: T;
|
||||
slot?: T;
|
||||
id?: T;
|
||||
};
|
||||
vehicles?:
|
||||
| T
|
||||
| {
|
||||
vehicle?: T;
|
||||
id?: T;
|
||||
};
|
||||
cargo?:
|
||||
| T
|
||||
| {
|
||||
resource?: T;
|
||||
amount?: T;
|
||||
id?: T;
|
||||
};
|
||||
budget?:
|
||||
| T
|
||||
| {
|
||||
account?: T;
|
||||
amount?: T;
|
||||
};
|
||||
origin?: T;
|
||||
destination?: T;
|
||||
expiresAt?: T;
|
||||
createdBy?: T;
|
||||
settledAt?: T;
|
||||
settledByEffect?: T;
|
||||
settlement?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "operation-readiness_select".
|
||||
*/
|
||||
export interface OperationReadinessSelect<T extends boolean = true> {
|
||||
subjectType?: T;
|
||||
subjectId?: T;
|
||||
subjectLabel?: T;
|
||||
windowStart?: T;
|
||||
windowEnd?: T;
|
||||
windowLabel?: T;
|
||||
operationId?: T;
|
||||
calculationVersion?: T;
|
||||
nature?: T;
|
||||
readinessScore?: T;
|
||||
planningConfidenceScore?: T;
|
||||
contributingCategories?: T;
|
||||
inputCount?: T;
|
||||
explanation?: T;
|
||||
recomputedAt?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "zone-pressure_select".
|
||||
*/
|
||||
export interface ZonePressureSelect<T extends boolean = true> {
|
||||
zone?: T;
|
||||
faction?: T;
|
||||
operationId?: T;
|
||||
mission?: T;
|
||||
sourceEffect?: T;
|
||||
delta?: T;
|
||||
note?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "custom-minefields_select".
|
||||
|
|
@ -8129,6 +8893,46 @@ export interface PayloadMcpApiKeysSelect<T extends boolean = true> {
|
|||
update?: T;
|
||||
delete?: T;
|
||||
};
|
||||
operationEvents?:
|
||||
| T
|
||||
| {
|
||||
find?: T;
|
||||
create?: T;
|
||||
update?: T;
|
||||
delete?: T;
|
||||
};
|
||||
operationEffects?:
|
||||
| T
|
||||
| {
|
||||
find?: T;
|
||||
create?: T;
|
||||
update?: T;
|
||||
delete?: T;
|
||||
};
|
||||
operationReservations?:
|
||||
| T
|
||||
| {
|
||||
find?: T;
|
||||
create?: T;
|
||||
update?: T;
|
||||
delete?: T;
|
||||
};
|
||||
operationReadiness?:
|
||||
| T
|
||||
| {
|
||||
find?: T;
|
||||
create?: T;
|
||||
update?: T;
|
||||
delete?: T;
|
||||
};
|
||||
zonePressure?:
|
||||
| T
|
||||
| {
|
||||
find?: T;
|
||||
create?: T;
|
||||
update?: T;
|
||||
delete?: T;
|
||||
};
|
||||
customMinefields?:
|
||||
| T
|
||||
| {
|
||||
|
|
|
|||
Loading…
Reference in a new issue