1
0
Fork 0

feat(voiceover): add take description field to voice submissions

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
Jason Fraley 2026-09-07 04:36:52 -04:00
parent a2a5f7877b
commit a0fa8889fc
5 changed files with 23372 additions and 94 deletions

View file

@ -52,6 +52,14 @@ export const VoiceSubmissions: CollectionConfig = {
description: "Submitter", description: "Submitter",
}, },
}, },
{
name: "description",
type: "textarea",
maxLength: 300,
admin: {
description: "Optional short note from the submitter about this take.",
},
},
{ {
name: "status", name: "status",
type: "select", type: "select",
@ -67,7 +75,7 @@ export const VoiceSubmissions: CollectionConfig = {
name: "reviewNote", name: "reviewNote",
type: "textarea", type: "textarea",
admin: { admin: {
description: "Optional admin review note.", description: "Optional reviewer feedback. Shown to the submitter alongside their take.",
}, },
}, },
], ],

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,11 @@
import { MigrateUpArgs, MigrateDownArgs, sql } from "@payloadcms/db-postgres";
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
await db.execute(sql`
ALTER TABLE "voice_submissions" ADD COLUMN "description" varchar;`);
}
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
await db.execute(sql`
ALTER TABLE "voice_submissions" DROP COLUMN "description";`);
}

View file

@ -1,255 +1,261 @@
import * as migration_20260820_004157 from './20260820_004157'; import * as migration_20260820_004157 from "./20260820_004157";
import * as migration_20260825_220000 from './20260825_220000'; 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_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_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_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_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_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_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_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_041615_add_campaign_mode from "./20260828_041615_add_campaign_mode";
import * as migration_20260828_044506 from './20260828_044506'; import * as migration_20260828_044506 from "./20260828_044506";
import * as migration_20260831_142503 from './20260831_142503'; import * as migration_20260831_142503 from "./20260831_142503";
import * as migration_20260831_180233_assignment_transfers from './20260831_180233_assignment_transfers'; 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_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_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_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_20260902_195336_add_medal_backgrounds from "./20260902_195336_add_medal_backgrounds";
import * as migration_20260903_035544 from './20260903_035544'; import * as migration_20260903_035544 from "./20260903_035544";
import * as migration_20260903_044047 from './20260903_044047'; import * as migration_20260903_044047 from "./20260903_044047";
import * as migration_20260903_053419 from './20260903_053419'; 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_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_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_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_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_183940_base_management from "./20260905_183940_base_management";
import * as migration_20260905_195456_labor_headcount from './20260905_195456_labor_headcount'; 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_210310_labor_classifications from "./20260905_210310_labor_classifications";
import * as migration_20260905_213824 from './20260905_213824'; import * as migration_20260905_213824 from "./20260905_213824";
import * as migration_20260905_215658 from './20260905_215658'; import * as migration_20260905_215658 from "./20260905_215658";
import * as migration_20260906_045502 from './20260906_045502'; 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_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_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_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_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_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_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_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_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_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_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_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_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";
export const migrations = [ export const migrations = [
{ {
up: migration_20260820_004157.up, up: migration_20260820_004157.up,
down: migration_20260820_004157.down, down: migration_20260820_004157.down,
name: '20260820_004157', name: "20260820_004157",
}, },
{ {
up: migration_20260825_220000.up, up: migration_20260825_220000.up,
down: migration_20260825_220000.down, down: migration_20260825_220000.down,
name: '20260825_220000', name: "20260825_220000",
}, },
{ {
up: migration_20260826_050000_repair_shims_auxiliary_tables.up, up: migration_20260826_050000_repair_shims_auxiliary_tables.up,
down: migration_20260826_050000_repair_shims_auxiliary_tables.down, 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, up: migration_20260826_060000_add_game_servers_event_target.up,
down: migration_20260826_060000_add_game_servers_event_target.down, 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, up: migration_20260827_005757.up,
down: migration_20260827_005757.down, down: migration_20260827_005757.down,
name: '20260827_005757', name: "20260827_005757",
}, },
{ {
up: migration_20260827_022334_add_eod_minesweeper_best_flags.up, up: migration_20260827_022334_add_eod_minesweeper_best_flags.up,
down: migration_20260827_022334_add_eod_minesweeper_best_flags.down, 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, up: migration_20260827_213857_add_evaluations_collection.up,
down: migration_20260827_213857_add_evaluations_collection.down, 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, up: migration_20260827_233224_add_mission_completed_at.up,
down: migration_20260827_233224_add_mission_completed_at.down, 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, up: migration_20260828_011500_add_background_texture_preference.up,
down: migration_20260828_011500_add_background_texture_preference.down, 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, up: migration_20260828_041615_add_campaign_mode.up,
down: migration_20260828_041615_add_campaign_mode.down, 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, up: migration_20260828_044506.up,
down: migration_20260828_044506.down, down: migration_20260828_044506.down,
name: '20260828_044506', name: "20260828_044506",
}, },
{ {
up: migration_20260831_142503.up, up: migration_20260831_142503.up,
down: migration_20260831_142503.down, down: migration_20260831_142503.down,
name: '20260831_142503', name: "20260831_142503",
}, },
{ {
up: migration_20260831_180233_assignment_transfers.up, up: migration_20260831_180233_assignment_transfers.up,
down: migration_20260831_180233_assignment_transfers.down, 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, up: migration_20260901_014006_add_assignment_transfer_event_target.up,
down: migration_20260901_014006_add_assignment_transfer_event_target.down, 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, up: migration_20260901_213108_add_ticket_votes_and_edit_history.up,
down: migration_20260901_213108_add_ticket_votes_and_edit_history.down, 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, up: migration_20260901_222200_add_admin_page_permissions.up,
down: migration_20260901_222200_add_admin_page_permissions.down, 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, up: migration_20260902_195336_add_medal_backgrounds.up,
down: migration_20260902_195336_add_medal_backgrounds.down, 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, up: migration_20260903_035544.up,
down: migration_20260903_035544.down, down: migration_20260903_035544.down,
name: '20260903_035544', name: "20260903_035544",
}, },
{ {
up: migration_20260903_044047.up, up: migration_20260903_044047.up,
down: migration_20260903_044047.down, down: migration_20260903_044047.down,
name: '20260903_044047', name: "20260903_044047",
}, },
{ {
up: migration_20260903_053419.up, up: migration_20260903_053419.up,
down: migration_20260903_053419.down, down: migration_20260903_053419.down,
name: '20260903_053419', name: "20260903_053419",
}, },
{ {
up: migration_20260903_060000_add_radio_mode_stats.up, up: migration_20260903_060000_add_radio_mode_stats.up,
down: migration_20260903_060000_add_radio_mode_stats.down, 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, up: migration_20260903_061000_add_radio_incorrect_counts.up,
down: migration_20260903_061000_add_radio_incorrect_counts.down, 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, up: migration_20260903_062000_add_aim_trainer_stats.up,
down: migration_20260903_062000_add_aim_trainer_stats.down, 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, up: migration_20260904_230838_add_wiki_collections.up,
down: migration_20260904_230838_add_wiki_collections.down, 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, up: migration_20260905_183940_base_management.up,
down: migration_20260905_183940_base_management.down, down: migration_20260905_183940_base_management.down,
name: '20260905_183940_base_management', name: "20260905_183940_base_management",
}, },
{ {
up: migration_20260905_195456_labor_headcount.up, up: migration_20260905_195456_labor_headcount.up,
down: migration_20260905_195456_labor_headcount.down, down: migration_20260905_195456_labor_headcount.down,
name: '20260905_195456_labor_headcount', name: "20260905_195456_labor_headcount",
}, },
{ {
up: migration_20260905_210310_labor_classifications.up, up: migration_20260905_210310_labor_classifications.up,
down: migration_20260905_210310_labor_classifications.down, down: migration_20260905_210310_labor_classifications.down,
name: '20260905_210310_labor_classifications', name: "20260905_210310_labor_classifications",
}, },
{ {
up: migration_20260905_213824.up, up: migration_20260905_213824.up,
down: migration_20260905_213824.down, down: migration_20260905_213824.down,
name: '20260905_213824', name: "20260905_213824",
}, },
{ {
up: migration_20260905_215658.up, up: migration_20260905_215658.up,
down: migration_20260905_215658.down, down: migration_20260905_215658.down,
name: '20260905_215658', name: "20260905_215658",
}, },
{ {
up: migration_20260906_045502.up, up: migration_20260906_045502.up,
down: migration_20260906_045502.down, down: migration_20260906_045502.down,
name: '20260906_045502', name: "20260906_045502",
}, },
{ {
up: migration_20260906_050900_add_evaluation_reminders_field.up, up: migration_20260906_050900_add_evaluation_reminders_field.up,
down: migration_20260906_050900_add_evaluation_reminders_field.down, 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, up: migration_20260906_061451_add_wiki_template_css.up,
down: migration_20260906_061451_add_wiki_template_css.down, 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, up: migration_20260906_063753_add_personal_excerpt_richtext.up,
down: migration_20260906_063753_add_personal_excerpt_richtext.down, 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, up: migration_20260906_065405_add_wiki_template_html.up,
down: migration_20260906_065405_add_wiki_template_html.down, 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, up: migration_20260906_100908_add_market_economy_state.up,
down: migration_20260906_100908_add_market_economy_state.down, 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, up: migration_20260906_165837_add_market_state_event_target.up,
down: migration_20260906_165837_add_market_state_event_target.down, 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, up: migration_20260906_202925_add_voice_submissions.up,
down: migration_20260906_202925_add_voice_submissions.down, 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, up: migration_20260907_012326_add_missions_created_by.up,
down: migration_20260907_012326_add_missions_created_by.down, 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, up: migration_20260907_013724_make_missions_campaign_optional.up,
down: migration_20260907_013724_make_missions_campaign_optional.down, 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, up: migration_20260907_041051_add_voice_script_spoiler.up,
down: migration_20260907_041051_add_voice_script_spoiler.down, 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, up: migration_20260907_043339_add_voice_script_description.up,
down: migration_20260907_043339_add_voice_script_description.down, 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, up: migration_20260907_044934_add_missions_discord_modlist_hash.up,
down: migration_20260907_044934_add_missions_discord_modlist_hash.down, 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",
}, },
]; ];

View file

@ -598,7 +598,7 @@ export interface Structure {
*/ */
maxCapacityMass?: number | null; maxCapacityMass?: number | null;
/** /**
* When enabled, ONLY the items listed in Allowed Storage can be stored here — everything else is rejected. When disabled, the Allowed Storage list still enforces per-item quantity caps, but other items are permitted up to the mass capacity. * When enabled, ONLY the items listed in Allowed Storage can be stored here. Everything else is rejected. When disabled, the Allowed Storage list still enforces per-item quantity caps, but other items are permitted up to the mass capacity.
*/ */
restrictToAllowed?: boolean | null; restrictToAllowed?: boolean | null;
xSize?: number | null; xSize?: number | null;
@ -1315,7 +1315,7 @@ export interface User {
payloadDisplayName?: string | null; payloadDisplayName?: string | null;
steamId: string; steamId: string;
/** /**
* Legacy role enum — being replaced by the dynamic RBAC system (see 'Role Assignments' below). * Legacy role enum, being replaced by the dynamic RBAC system (see 'Role Assignments' below).
*/ */
roles?: ('guest' | 'user' | 'trusted' | 'admin' | 'developer')[] | null; roles?: ('guest' | 'user' | 'trusted' | 'admin' | 'developer')[] | null;
/** /**
@ -1693,7 +1693,7 @@ export interface Role {
*/ */
isSystem?: boolean | null; isSystem?: boolean | null;
/** /**
* Superuser roles bypass ALL permission checks. Use with extreme caution — this grants unrestricted access. * Superuser roles bypass ALL permission checks. Use with extreme caution: this grants unrestricted access.
*/ */
isSuperuser?: boolean | null; isSuperuser?: boolean | null;
updatedAt: string; updatedAt: string;
@ -2330,7 +2330,7 @@ export interface UserNotification {
export interface Evaluation { export interface Evaluation {
id: number; id: number;
/** /**
* Who submitted this evaluation. Private — only visible to users with evaluations:read. * Who submitted this evaluation. Private, only visible to users with evaluations:read.
*/ */
rater: number | User; rater: number | User;
ratee: number | User; ratee: number | User;
@ -2405,7 +2405,7 @@ export interface Mission {
status: 'Concept' | 'Planning' | 'Ready' | 'Scheduled' | 'Active' | 'Completed' | 'Cancelled'; status: 'Concept' | 'Planning' | 'Ready' | 'Scheduled' | 'Active' | 'Completed' | 'Cancelled';
visibility: 'unit' | 'leadership' | 'intel' | 'private'; visibility: 'unit' | 'leadership' | 'intel' | 'private';
/** /**
* When the mission transitioned to Completed. Set automatically by the lifecycle (auto-complete tick or manual status change) — managed here, not editable in the form. * When the mission transitioned to Completed. Set automatically by the lifecycle (auto-complete tick or manual status change); managed here, not editable in the form.
*/ */
completedAt?: string | null; completedAt?: string | null;
}; };
@ -3130,9 +3130,13 @@ export interface VoiceSubmission {
* Submitter * Submitter
*/ */
user: number | User; user: number | User;
/**
* Optional short note from the submitter about this take.
*/
description?: string | null;
status: 'pending' | 'accepted' | 'rejected'; status: 'pending' | 'accepted' | 'rejected';
/** /**
* Optional admin review note. * Optional reviewer feedback. Shown to the submitter alongside their take.
*/ */
reviewNote?: string | null; reviewNote?: string | null;
updatedAt: string; updatedAt: string;
@ -3472,11 +3476,11 @@ export interface WikiTemplate {
body: string; body: string;
description?: string | null; description?: string | null;
/** /**
* Optional CSS injected on wiki pages while this template exists. Write plain selectors — they are automatically prefixed with a hash-based scope class (e.g. .ptf-tpl-3afb1c .my-class) so templates never collide with each other or the app shell. * Optional CSS injected on wiki pages while this template exists. Write plain selectors, which are automatically prefixed with a hash-based scope class (e.g. .ptf-tpl-3afb1c .my-class) so templates never collide with each other or the app shell.
*/ */
css?: string | null; css?: string | null;
/** /**
* Developer-only. Raw HTML rendered verbatim (sanitized) when this template is transcluded — replaces the markdown body. * Developer-only. Raw HTML rendered verbatim (sanitized) when this template is transcluded, replacing the markdown body.
*/ */
html?: string | null; html?: string | null;
updatedAt: string; updatedAt: string;
@ -5235,6 +5239,7 @@ export interface VoiceScriptsSelect<T extends boolean = true> {
export interface VoiceSubmissionsSelect<T extends boolean = true> { export interface VoiceSubmissionsSelect<T extends boolean = true> {
script?: T; script?: T;
user?: T; user?: T;
description?: T;
status?: T; status?: T;
reviewNote?: T; reviewNote?: T;
updatedAt?: T; updatedAt?: T;
@ -5684,7 +5689,7 @@ export interface GameRule {
*/ */
coldStartObservations?: number | null; coldStartObservations?: number | null;
/** /**
* Suggested economy tick cadence in minutes, for cron documentation only — the tick itself is triggered externally. * Suggested economy tick cadence in minutes, for cron documentation only. The tick itself is triggered externally.
*/ */
tickIntervalHintMinutes?: number | null; tickIntervalHintMinutes?: number | null;
}; };