1
0
Fork 0
polaris-task-force/src/payload-types.ts

2042 lines
No EOL
51 KiB
TypeScript

/* tslint:disable */
/* eslint-disable */
/**
* This file was automatically generated by Payload.
* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
* and re-run `payload generate:types` to regenerate this file.
*/
/**
* Supported timezones in IANA format.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supportedTimezones".
*/
export type SupportedTimezones =
| 'Pacific/Midway'
| 'Pacific/Niue'
| 'Pacific/Honolulu'
| 'Pacific/Rarotonga'
| 'America/Anchorage'
| 'Pacific/Gambier'
| 'America/Los_Angeles'
| 'America/Tijuana'
| 'America/Denver'
| 'America/Phoenix'
| 'America/Chicago'
| 'America/Guatemala'
| 'America/New_York'
| 'America/Bogota'
| 'America/Caracas'
| 'America/Santiago'
| 'America/Buenos_Aires'
| 'America/Sao_Paulo'
| 'Atlantic/South_Georgia'
| 'Atlantic/Azores'
| 'Atlantic/Cape_Verde'
| 'Europe/London'
| 'Europe/Berlin'
| 'Africa/Lagos'
| 'Europe/Athens'
| 'Africa/Cairo'
| 'Europe/Moscow'
| 'Asia/Riyadh'
| 'Asia/Dubai'
| 'Asia/Baku'
| 'Asia/Karachi'
| 'Asia/Tashkent'
| 'Asia/Calcutta'
| 'Asia/Dhaka'
| 'Asia/Almaty'
| 'Asia/Jakarta'
| 'Asia/Bangkok'
| 'Asia/Shanghai'
| 'Asia/Singapore'
| 'Asia/Tokyo'
| 'Asia/Seoul'
| 'Australia/Brisbane'
| 'Australia/Sydney'
| 'Pacific/Guam'
| 'Pacific/Noumea'
| 'Pacific/Auckland'
| 'Pacific/Fiji';
export interface Config {
auth: {
users: UserAuthOperations;
};
blocks: {};
collections: {
media: Media;
users: User;
ranks: Rank;
profiles: Profile;
awards: Award;
qualifications: Qualification;
assignments: Assignment;
missions: Mission;
campaigns: Campaign;
factions: Faction;
technologies: Technology;
assets: Asset;
resources: Resource;
vehicles: Vehicle;
structures: Structure;
maps: Map;
'narrative-events': NarrativeEvent;
'mission-files': MissionFile;
'mod-lists': ModList;
'payload-locked-documents': PayloadLockedDocument;
'payload-preferences': PayloadPreference;
'payload-migrations': PayloadMigration;
};
collectionsJoins: {
assignments: {
commandElement: 'assignments';
};
vehicles: {
requiredStructure: 'structures';
};
};
collectionsSelect: {
media: MediaSelect<false> | MediaSelect<true>;
users: UsersSelect<false> | UsersSelect<true>;
ranks: RanksSelect<false> | RanksSelect<true>;
profiles: ProfilesSelect<false> | ProfilesSelect<true>;
awards: AwardsSelect<false> | AwardsSelect<true>;
qualifications: QualificationsSelect<false> | QualificationsSelect<true>;
assignments: AssignmentsSelect<false> | AssignmentsSelect<true>;
missions: MissionsSelect<false> | MissionsSelect<true>;
campaigns: CampaignsSelect<false> | CampaignsSelect<true>;
factions: FactionsSelect<false> | FactionsSelect<true>;
technologies: TechnologiesSelect<false> | TechnologiesSelect<true>;
assets: AssetsSelect<false> | AssetsSelect<true>;
resources: ResourcesSelect<false> | ResourcesSelect<true>;
vehicles: VehiclesSelect<false> | VehiclesSelect<true>;
structures: StructuresSelect<false> | StructuresSelect<true>;
maps: MapsSelect<false> | MapsSelect<true>;
'narrative-events': NarrativeEventsSelect<false> | NarrativeEventsSelect<true>;
'mission-files': MissionFilesSelect<false> | MissionFilesSelect<true>;
'mod-lists': ModListsSelect<false> | ModListsSelect<true>;
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
};
db: {
defaultIDType: number;
};
globals: {
'game-rules': GameRule;
};
globalsSelect: {
'game-rules': GameRulesSelect<false> | GameRulesSelect<true>;
};
locale: null;
user: User & {
collection: 'users';
};
jobs: {
tasks: unknown;
workflows: unknown;
};
}
export interface UserAuthOperations {
forgotPassword: {
username: string;
};
login: {
password: string;
username: string;
};
registerFirstUser: {
password: string;
username: string;
};
unlock: {
username: string;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media".
*/
export interface Media {
id: number;
alt?: string | null;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users".
*/
export interface User {
id: number;
discordUsername: string;
displayName: string;
payloadDisplayName?: string | null;
steamId: string;
roles?: ('guest' | 'user' | 'admin' | 'developer')[] | null;
updatedAt: string;
createdAt: string;
email?: string | null;
username: string;
resetPasswordToken?: string | null;
resetPasswordExpiration?: string | null;
salt?: string | null;
hash?: string | null;
loginAttempts?: number | null;
lockUntil?: string | null;
sessions?:
| {
id: string;
createdAt?: string | null;
expiresAt: string;
}[]
| null;
password?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "ranks".
*/
export interface Rank {
id: number;
_order?: string | null;
name: string;
abbreviation: string;
description: string;
insignia?: (number | null) | Media;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "profiles".
*/
export interface Profile {
id: number;
user: number | User;
rank: number | Rank;
profileTitle?: string | null;
dossier?: {
personalExcerpt?: string | null;
intelExcerpt?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
};
progression?: {
xp?: number | null;
awards?: (number | Award)[] | null;
scoreboard?: {
infantryKills?: number | null;
vehicleKills?: number | null;
armorKills?: number | null;
airKills?: number | null;
deaths?: number | null;
};
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "awards".
*/
export interface Award {
id: number;
name: string;
description: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
};
type?: ('commendation' | 'ribbon' | 'medal') | null;
image?: (number | null) | Media;
experiencePoints?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "qualifications".
*/
export interface Qualification {
id: number;
name: string;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "assignments".
*/
export interface Assignment {
id: number;
name: string;
type: 'division' | 'squad' | 'team' | 'special';
callsign?: string | null;
description?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
/**
* The leader represents the individual responsible for this assignment and its members. The leader automatically counts as a member when this assignment is queried.
*/
leader?: (number | null) | User;
commandElement?: {
docs?: (number | Assignment)[];
hasNextPage?: boolean;
totalDocs?: number;
};
/**
* Add other teams as members of this team/assignment.
*/
subAssignments?: (number | Assignment)[] | null;
/**
* Add individuals as members of this team/assignment.
*/
members?: (number | User)[] | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "missions".
*/
export interface Mission {
id: number;
name: string;
/**
* A "code name" provides a unique way to reference this mission beyond just the mission's name. For example, a mission called "Operation Dragon Break" could be codenamed "OP:DRGBRK".
*/
codeName: string;
/**
* A summary of the mission. This is not the same as a briefing; instead, it describes the mission's theme and concept to the unit as a whole.
*/
summary: string;
operationType: 'main' | 'side' | 'external';
classification: {
map: number | Map;
missionType: 'Zeus' | 'PvE' | 'PvP' | 'PvPvE' | 'Training' | 'Special';
campaign: number | Campaign;
/**
* This mission contains custom SQF scripts.
*/
customScripts?: boolean | null;
startDateTime: string;
estimatedDuration: number;
};
ownershipAndStatus: {
authors: (number | User)[];
zeus?: (number | User)[] | null;
status: 'Concept' | 'Planning' | 'Ready' | 'Scheduled' | 'Active' | 'Completed' | 'Cancelled';
visibility: 'unit' | 'leadership' | 'intel' | 'private';
};
missionRoles: {
maxPlayers: number;
providedRoles?:
| {
roleName: string;
/**
* If true, this mission cannot be executed without someone fulfilling this role.
*/
missionCritical?: boolean | null;
/**
* This role can only be fulfilled by someone possessing these qualifications.
*/
requiredMos?: (number | Qualification)[] | null;
/**
* This role can only be fulfilled by someone of this rank or higher.
*/
minimumRank?: (number | null) | Rank;
id?: string | null;
}[]
| null;
notes?: string | null;
};
briefing?:
| {
sectionName: string;
details: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
};
id?: string | null;
}[]
| null;
missionObjectives?:
| {
title: string;
description?: string | null;
/**
* If true, this mission will be considered a failure if this objective is failed.
*/
missionCritical?: boolean | null;
successOrFailConditions?: string | null;
id?: string | null;
}[]
| null;
civilianPresence?: ('None' | 'Low' | 'Medium' | 'High') | null;
factionsInvolved?:
| {
factionName: string;
threatLevel: 'ally' | 'friendly' | 'neutral' | 'hostile';
id?: string | null;
}[]
| null;
gameDetails: {
serverDetails: {
serverIp: string;
serverPort: number;
serverPassword?: string | null;
};
gameSetup: {
missionFile: number | MissionFile;
/**
* This field is not required only because you may be running a vanilla gamemode. If you have any mods at all in your mission, you MUST include a mod list.
*/
requiredMods?: (number | null) | ModList;
};
};
/**
* Mission requirements and conditions surrounding the deployment and use of logistics and support assets during the mission's runtime.
*/
logisticsAndSupport?: {
insertion?: ('helicopter' | 'aircraft' | 'paradrop' | 'boat' | 'car' | 'onFoot')[] | null;
extraction?: ('helicopter' | 'aircraft' | 'paradrop' | 'boat' | 'car' | 'onFoot')[] | null;
assetsAvailable?:
| {
/**
* The name or type of the asset provided (e.g. "Artillery", "M1A1 Tank", "Fuel Truck", "Close Air Support", etc.)
*/
assetType: string;
/**
* If applicable, the number of this asset that will be available at the start of the mission.
*/
assetCount?: string | null;
/**
* Whether or not this asset respawns during the mission, either automatically or manually via Zeus.
*/
doesRespawn?: boolean | null;
/**
* If applicable, the callsign of this asset (such as an aicraft providing close air support.)
*/
assetCallsign?: string | null;
id?: string | null;
}[]
| null;
};
/**
* Communications and Standard Operating Procedures specific to this mission.
*/
commsAndDocs?: {
/**
* A detailed description of how radios will be used during this operation, including signals, contingency plans, and other relevant details.
*/
radioPlan?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
/**
* A list and description of each of the radio frequencies used for this mission.
*/
frequencies?:
| {
frequency: number;
/**
* Must be provided if the frequency used requires a separate radio channel.
*/
channel?: number | null;
/**
* The name assigned to this frequency (+ channel.) Examples of names include "COMNET", "PLTNET", "CASNET", etc.
*/
netName: string;
/**
* An explanation of the expected usage and purpose of this radio net.
*/
freqUsage: string;
id?: string | null;
}[]
| null;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "maps".
*/
export interface Map {
id: number;
name: string;
fileName?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaigns".
*/
export interface Campaign {
id: number;
name: string;
summary: string;
status: 'concept' | 'inProgress' | 'completed';
description?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
startDate?: string | null;
endDate?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "mission-files".
*/
export interface MissionFile {
id: number;
missionFileName: string;
author: number | User;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "mod-lists".
*/
export interface ModList {
id: number;
/**
* A friendly name for the mod list.
*/
modlistName: string;
author: number | User;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "factions".
*/
export interface Faction {
id: number;
name: string;
type: 'majorFaction' | 'minorFaction' | 'corporation' | 'special';
description?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
/**
* Whether or not this faction is playable. Some factions may be specifically intended to be unplayable based on narrative requirements.
*/
playableFaction?: boolean | null;
/**
* Whether or not this faction is/was available as a starting faction at the beginning of the campaign.
*/
startingFaction?: boolean | null;
associatedCampaigns?: (number | Campaign)[] | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "technologies".
*/
export interface Technology {
id: number;
name: string;
/**
* An "Asset" technology will unlock a new item, vehicle, gear piece, structure, etc. An "Upgrade" technology will unlock an improvement to an Asset, like faster build speed, more storage capacity, etc.
*/
type: 'asset' | 'upgrade';
summary: string;
description?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
requirements?: {
intelligencePoints?: number | null;
prerequisiteTechnologies?:
| {
/**
* ALL of these technologies MUST be unlocked before this one can be.
*/
requiresAnd?: {
technology?: (number | Technology)[] | null;
};
/**
* One or more of these technologies MUST be unlocked before this one can be.
*/
requiresOr?: {
technology?: (number | Technology)[] | null;
};
id?: string | null;
}[]
| null;
};
researchCosts: {
/**
* The minimum amount of time in minutes that it takes to research this technology. If no maximum duration is provided, this technology will be researched in an amount of time exactly equal to this number.
*/
minimumResearchDuration: number;
/**
* The maximum amount of time in minutes that it takes to research this technology.
*/
maximumResearchDuration?: number | null;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "assets".
*/
export interface Asset {
id: number;
name: string;
className: string;
assetType:
| 'weapon'
| 'magazine'
| 'optic'
| 'muzzle'
| 'bipod'
| 'uniform'
| 'vest'
| 'backpack'
| 'helmet'
| 'facewear'
| 'nvg'
| 'radio'
| 'medical'
| 'tool'
| 'explosive'
| 'miscellaneous';
'Weapon Configuration'?: {
slotType?: ('primary' | 'secondary' | 'launcher') | null;
compatibleMagazines?: (number | Asset)[] | null;
compatibleAttachments?: (number | Asset)[] | null;
};
'Nightvision Configuration'?: {
nvgGeneration?: ('gen1' | 'gen2' | 'gen3') | null;
/**
* Whether or not these night-vision goggles possess a thermal vision mode.
*/
nvgHasThermals?: boolean | null;
};
'Container Configuration'?: {
capacityKg?: number | null;
weightKg?: number | null;
};
'Magazine Configuration'?: {
roundCapacity?: number | null;
ammoType?: string | null;
/**
* Whether or not this magazine is compatible with the GreenMag mod.
*/
greenmagCompatible?: boolean | null;
};
'Asset Metadata'?: {
mod?: string | null;
thumbnail?: (number | null) | Media;
gameDescription?: string | null;
};
/**
* Whether or not this asset can be traded on the market. If unchecked, the asset can never be bought or sold, only crafted or collected.
*/
tradeable?: boolean | null;
marketTrading?: {
/**
* The rarity of this item in the world of the active campaign. Rarity will be accounted for in market valuation and trading calculations.
*/
Rarity?: ('basic' | 'common' | 'uncommon' | 'rare' | 'veryRare' | 'epic' | 'legendary' | 'unique') | null;
/**
* The asset's "perceived value" when considered in market and trading calculations. Note that the "base" values are the "resting" valuations. Later calculations will increase and decrease the valuation based on this resting valuation, ultimately tending to remain within some percentage margin of this base price. Always and only considers the primary campaign currency in regard to price.
*/
perceivedValue?: {
baseBuyPrice?: number | null;
baseSellPrice?: number | null;
};
};
crafting: {
craftable?: boolean | null;
/**
* This asset requires a blueprint to be crafted, otherwise it can only be obtained from scavenging and/or trading.
*/
blueprintRequired?: boolean | null;
/**
* One or more technologies required before this weapon can be crafted.
*/
technologyRequired?: (number | Technology)[] | null;
/**
* If checked, this asset requires the above technologies or else cannot be used at all.
*/
technologyRequiredToUse?: boolean | null;
craftingData: {
inputs?:
| {
resource: (number | Resource)[];
quantity?: number | null;
/**
* If checked, this resource is "lended" to the crafting of this asset. Upon the crafting's completion, this resource is refunded to the unit.
*/
lended?: boolean | null;
id?: string | null;
}[]
| null;
requiresStructure?: (number | Structure)[] | null;
craftingTimePerUnit: number;
/**
* Byproducts of the crafting process. For each unit crafted of this Asset, these byproducts are also created and added to the unit's resources.
*/
byproducts?:
| {
resource: (number | Resource)[];
quantity?: number | null;
id?: string | null;
}[]
| null;
/**
* An optional batch size. If provided, this number of this asset will be created upon crafting completion.
*/
batchSize: number;
};
};
/**
* Suggested complements to this asset (for example, if the asset was a Bandage, some related assets could include an IV, blood bag, epinephrine, etc.)
*/
relatedAssets?: (number | Asset)[] | null;
/**
* If checked, this item is approved and considered "live" (i.e. it will be considered in calculations and made available in-game.)
*/
isLive?: boolean | null;
notes?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "resources".
*/
export interface Resource {
id: number;
showWarning?: boolean | null;
/**
* Human-readable name for resources (e.g., "Fuel").
*/
name: string;
/**
* Internal ID for scripts (e.g., "res_fuel").
*/
codeName: string;
type: 'physical' | 'fluid' | 'energy' | 'abstract';
/**
* A description of the resource, including where it comes from, how it is used, and any lore-related details.
*/
description?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
/**
* While not required, an icon is absolutely recommended and will affect the way this resource is displayed in the application UI.
*/
icon?: (number | null) | Media;
/**
* A HEX color code used by this resource in the application UI (e.g., progress bars, text highlighting, etc.)
*/
color?: string | null;
/**
* The inherent "gold standard" value of one (1) unit of this resource. Used for calculating exchange rates and total asset worth.
*/
baseValue: number;
/**
* Can this be bought and/or sold on the market?
*/
tradeable?: boolean | null;
rarity: 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary' | 'exotic' | 'unique';
/**
* The unit of measure for this resource in singular form (no plurals, e.g., liter, kg, point, unit, megawatt, person, etc.)
*/
unitOfMeasure: string;
/**
* The weight of one (1) unit (can be "0" for abstract resources like "Intel", "Labor", etc.) Critical for logistics transport calculations.
*/
massPerUnit: number;
/**
* Maximum amount that fits in a single standard cargo slot (if applicable.)
*/
stackSize?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "structures".
*/
export interface Structure {
id: number;
/**
* The display name (e.g., "Forward Operating Base").
*/
name: string;
/**
* Internal ID for scripts (e.g., "fob_alpha_tier1").
*/
codeName: string;
/**
* A detailed description of the structure, including details like tactical advantages, resource production, and/or world lore regarding this structure.
*/
description: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
};
/**
* An image depicting the structure. While not required, it is highly recommended as the existence of an image will affect the layout of the structure's page on the front-end.
*/
image?: (number | null) | Media;
category: 'logistics' | 'military' | 'civilian';
materials: {
resource: number | Resource;
amount?: number | null;
id?: string | null;
}[];
/**
* The number of ticks it takes to complete construction of this structure.
*/
constructionTime: number;
/**
* What research must be done before this can be built.
*/
requiredTech?: (number | Technology)[] | null;
/**
* If true, this structure can only be constructed as the result of an upgrade to an existing structure. If false, this structure can be constructed independently of any other structure's upgrade tree, even if another structure can upgrade into this one.
*/
requiresUpgrade?: boolean | null;
/**
* When this structure is upgraded, it becomes this type of structure. Note that the costs of the new structure apply - if this field is set, the new structure's build costs will still be consumed when this building is upgraded. To make it cheaper to upgrade, lower the "Upgrade Cost Multiplier".
*/
upgradesInto?: (number | null) | Structure;
/**
* The multiplier applied to the base build cost of the structure being upgraded into. A value of one (1) means the cost will exactly equal the structure's normal build cost, while a value of zero (0) would make the upgrade entirely free, only taking up construction time instead.
*/
upgradeCostMultiplier?: number | null;
terrainType: 'land' | 'water';
/**
* What resources, if any, must be within a certain distance of this structure on placement.
*/
resourcesInRange?:
| {
resource?: (number | null) | Resource;
range?: number | null;
id?: string | null;
}[]
| null;
/**
* What structures, if any, must be within a certain distance of this structure on placement.
*/
structuresInRange?:
| {
structure?: (number | null) | Structure;
range?: number | null;
id?: string | null;
}[]
| null;
/**
* Recurring costs to keep this structure online.
*/
upkeep?:
| {
resource?: (number | null) | Resource;
/**
* How much of this resource is consumed per "game tick" (every hour.)
*/
amount?: number | null;
id?: string | null;
}[]
| null;
/**
* A base price that this structure could sell for when fully operational. Leaving this empty will make this structure unsellable.
*/
sellPrice?: number | null;
/**
* The app will use this type to determine what processes should run for this structure type.
*/
functionType?: ('producer' | 'storage' | 'sensor' | 'converter' | 'defense' | 'miscellaneous') | null;
canProduce?:
| (
| {
relationTo: 'assets';
value: number | Asset;
}
| {
relationTo: 'vehicles';
value: number | Vehicle;
}
| {
relationTo: 'resources';
value: number | Resource;
}
)[]
| null;
autoGeneratedResources?:
| {
resource?: (number | null) | Resource;
amount?: number | null;
frequency?: string | null;
id?: string | null;
}[]
| null;
/**
* The maximum storage capacity of this structure as mass (retrieved from the mass defined for every asset stored here.)
*/
maxCapacityMass?: number | null;
xSize?: number | null;
ySize?: number | null;
allowedStorage?:
| {
item?:
| ({
relationTo: 'assets';
value: number | Asset;
} | null)
| ({
relationTo: 'vehicles';
value: number | Vehicle;
} | null)
| ({
relationTo: 'resources';
value: number | Resource;
} | null);
/**
* How many of this asset, vehicle, or resource can be stored here.
*/
amount?: number | null;
id?: string | null;
}[]
| null;
/**
* Any items from this list can never be stored here, even if they meet all other criteria.
*/
prohibitedStorage?:
| {
item?:
| ({
relationTo: 'assets';
value: number | Asset;
} | null)
| ({
relationTo: 'vehicles';
value: number | Vehicle;
} | null)
| ({
relationTo: 'resources';
value: number | Resource;
} | null);
id?: string | null;
}[]
| null;
maxHealth: number;
/**
* So long as the structure meets its operational requirements, this is the amount of health restored to the structure every game tick.
*/
repairSpeed?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "vehicles".
*/
export interface Vehicle {
id: number;
name: string;
/**
* If not provided, this vehicle will ONLY be available as a virtual asset (i.e., cannot be used in Arma.)
*/
classname?: string | null;
/**
* A detailed description of the vehicle, including details like tactical usage, mechanical details, and/or world lore regarding this vehicle.
*/
Description?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
image?: (number | null) | Media;
category?: ('civilian' | 'utility' | 'transport' | 'weaponized' | 'military')[] | null;
materials?:
| {
resource: number | Resource;
amount?: number | null;
id?: string | null;
}[]
| null;
/**
* The number of ticks it takes to complete construction of this vehicle.
*/
constructionTime?: number | null;
/**
* What research must be done before this can be built.
*/
requiredTech?: (number | Technology)[] | null;
requiredStructure?: {
docs?: (number | Structure)[];
hasNextPage?: boolean;
totalDocs?: number;
};
scrapReturns?:
| {
resource: number | Resource;
amount?: number | null;
/**
* An optional percent (%) chance to recover this specific resource (between 0 and 100).
*/
chance?: number | null;
id?: string | null;
}[]
| null;
/**
* Recurring costs to keep this vehicle operational.
*/
upkeepCosts?:
| {
resource: number | Resource;
/**
* How much of this resource is consumed per tick.
*/
amount?: number | null;
id?: string | null;
}[]
| null;
width?: number | null;
height?: number | null;
maxMass?: number | null;
/**
* The number of ACE cargo slots this vehicle has by default.
*/
aceCargoSlots?: number | null;
/**
* The cargo this vehicle is permitted to carry if used virtually (e.g., during deliveries, moving troops, etc.)
*/
allowedVirtualCargo?:
| {
item:
| {
relationTo: 'assets';
value: number | Asset;
}
| {
relationTo: 'vehicles';
value: number | Vehicle;
}
| {
relationTo: 'resources';
value: number | Resource;
};
amount?: number | null;
id?: string | null;
}[]
| null;
maxHealth?: number | null;
armorRating?: ('none' | 'light' | 'medium' | 'heavy' | 'composite') | null;
maxSpeedOnRoad?: number | null;
maxSpeedOffRoad?: number | null;
maxAirspeed?: number | null;
maxKnots?: number | null;
pylons?:
| {
pylonName: string;
pylonType: 'mountedWeapon' | 'pylon';
amount?: number | null;
ammoType?: (number | null) | Asset;
id?: string | null;
}[]
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "narrative-events".
*/
export interface NarrativeEvent {
id: number;
name: string;
summary: string;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents".
*/
export interface PayloadLockedDocument {
id: number;
document?:
| ({
relationTo: 'media';
value: number | Media;
} | null)
| ({
relationTo: 'users';
value: number | User;
} | null)
| ({
relationTo: 'ranks';
value: number | Rank;
} | null)
| ({
relationTo: 'profiles';
value: number | Profile;
} | null)
| ({
relationTo: 'awards';
value: number | Award;
} | null)
| ({
relationTo: 'qualifications';
value: number | Qualification;
} | null)
| ({
relationTo: 'assignments';
value: number | Assignment;
} | null)
| ({
relationTo: 'missions';
value: number | Mission;
} | null)
| ({
relationTo: 'campaigns';
value: number | Campaign;
} | null)
| ({
relationTo: 'factions';
value: number | Faction;
} | null)
| ({
relationTo: 'technologies';
value: number | Technology;
} | null)
| ({
relationTo: 'assets';
value: number | Asset;
} | null)
| ({
relationTo: 'resources';
value: number | Resource;
} | null)
| ({
relationTo: 'vehicles';
value: number | Vehicle;
} | null)
| ({
relationTo: 'structures';
value: number | Structure;
} | null)
| ({
relationTo: 'maps';
value: number | Map;
} | null)
| ({
relationTo: 'narrative-events';
value: number | NarrativeEvent;
} | null)
| ({
relationTo: 'mission-files';
value: number | MissionFile;
} | null)
| ({
relationTo: 'mod-lists';
value: number | ModList;
} | null);
globalSlug?: string | null;
user: {
relationTo: 'users';
value: number | User;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences".
*/
export interface PayloadPreference {
id: number;
user: {
relationTo: 'users';
value: number | User;
};
key?: string | null;
value?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations".
*/
export interface PayloadMigration {
id: number;
name?: string | null;
batch?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media_select".
*/
export interface MediaSelect<T extends boolean = true> {
alt?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users_select".
*/
export interface UsersSelect<T extends boolean = true> {
discordUsername?: T;
displayName?: T;
payloadDisplayName?: T;
steamId?: T;
roles?: T;
updatedAt?: T;
createdAt?: T;
email?: T;
username?: T;
resetPasswordToken?: T;
resetPasswordExpiration?: T;
salt?: T;
hash?: T;
loginAttempts?: T;
lockUntil?: T;
sessions?:
| T
| {
id?: T;
createdAt?: T;
expiresAt?: T;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "ranks_select".
*/
export interface RanksSelect<T extends boolean = true> {
_order?: T;
name?: T;
abbreviation?: T;
description?: T;
insignia?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "profiles_select".
*/
export interface ProfilesSelect<T extends boolean = true> {
user?: T;
rank?: T;
profileTitle?: T;
dossier?:
| T
| {
personalExcerpt?: T;
intelExcerpt?: T;
};
progression?:
| T
| {
xp?: T;
awards?: T;
scoreboard?:
| T
| {
infantryKills?: T;
vehicleKills?: T;
armorKills?: T;
airKills?: T;
deaths?: T;
};
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "awards_select".
*/
export interface AwardsSelect<T extends boolean = true> {
name?: T;
description?: T;
type?: T;
image?: T;
experiencePoints?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "qualifications_select".
*/
export interface QualificationsSelect<T extends boolean = true> {
name?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "assignments_select".
*/
export interface AssignmentsSelect<T extends boolean = true> {
name?: T;
type?: T;
callsign?: T;
description?: T;
leader?: T;
commandElement?: T;
subAssignments?: T;
members?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "missions_select".
*/
export interface MissionsSelect<T extends boolean = true> {
name?: T;
codeName?: T;
summary?: T;
operationType?: T;
classification?:
| T
| {
map?: T;
missionType?: T;
campaign?: T;
customScripts?: T;
startDateTime?: T;
estimatedDuration?: T;
};
ownershipAndStatus?:
| T
| {
authors?: T;
zeus?: T;
status?: T;
visibility?: T;
};
missionRoles?:
| T
| {
maxPlayers?: T;
providedRoles?:
| T
| {
roleName?: T;
missionCritical?: T;
requiredMos?: T;
minimumRank?: T;
id?: T;
};
notes?: T;
};
briefing?:
| T
| {
sectionName?: T;
details?: T;
id?: T;
};
missionObjectives?:
| T
| {
title?: T;
description?: T;
missionCritical?: T;
successOrFailConditions?: T;
id?: T;
};
civilianPresence?: T;
factionsInvolved?:
| T
| {
factionName?: T;
threatLevel?: T;
id?: T;
};
gameDetails?:
| T
| {
serverDetails?:
| T
| {
serverIp?: T;
serverPort?: T;
serverPassword?: T;
};
gameSetup?:
| T
| {
missionFile?: T;
requiredMods?: T;
};
};
logisticsAndSupport?:
| T
| {
insertion?: T;
extraction?: T;
assetsAvailable?:
| T
| {
assetType?: T;
assetCount?: T;
doesRespawn?: T;
assetCallsign?: T;
id?: T;
};
};
commsAndDocs?:
| T
| {
radioPlan?: T;
frequencies?:
| T
| {
frequency?: T;
channel?: T;
netName?: T;
freqUsage?: T;
id?: T;
};
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaigns_select".
*/
export interface CampaignsSelect<T extends boolean = true> {
name?: T;
summary?: T;
status?: T;
description?: T;
startDate?: T;
endDate?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "factions_select".
*/
export interface FactionsSelect<T extends boolean = true> {
name?: T;
type?: T;
description?: T;
playableFaction?: T;
startingFaction?: T;
associatedCampaigns?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "technologies_select".
*/
export interface TechnologiesSelect<T extends boolean = true> {
name?: T;
type?: T;
summary?: T;
description?: T;
requirements?:
| T
| {
intelligencePoints?: T;
prerequisiteTechnologies?:
| T
| {
requiresAnd?:
| T
| {
technology?: T;
};
requiresOr?:
| T
| {
technology?: T;
};
id?: T;
};
};
researchCosts?:
| T
| {
minimumResearchDuration?: T;
maximumResearchDuration?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "assets_select".
*/
export interface AssetsSelect<T extends boolean = true> {
name?: T;
className?: T;
assetType?: T;
'Weapon Configuration'?:
| T
| {
slotType?: T;
compatibleMagazines?: T;
compatibleAttachments?: T;
};
'Nightvision Configuration'?:
| T
| {
nvgGeneration?: T;
nvgHasThermals?: T;
};
'Container Configuration'?:
| T
| {
capacityKg?: T;
weightKg?: T;
};
'Magazine Configuration'?:
| T
| {
roundCapacity?: T;
ammoType?: T;
greenmagCompatible?: T;
};
'Asset Metadata'?:
| T
| {
mod?: T;
thumbnail?: T;
gameDescription?: T;
};
tradeable?: T;
marketTrading?:
| T
| {
Rarity?: T;
perceivedValue?:
| T
| {
baseBuyPrice?: T;
baseSellPrice?: T;
};
};
crafting?:
| T
| {
craftable?: T;
blueprintRequired?: T;
technologyRequired?: T;
technologyRequiredToUse?: T;
craftingData?:
| T
| {
inputs?:
| T
| {
resource?: T;
quantity?: T;
lended?: T;
id?: T;
};
requiresStructure?: T;
craftingTimePerUnit?: T;
byproducts?:
| T
| {
resource?: T;
quantity?: T;
id?: T;
};
batchSize?: T;
};
};
relatedAssets?: T;
isLive?: T;
notes?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "resources_select".
*/
export interface ResourcesSelect<T extends boolean = true> {
showWarning?: T;
name?: T;
codeName?: T;
type?: T;
description?: T;
icon?: T;
color?: T;
baseValue?: T;
tradeable?: T;
rarity?: T;
unitOfMeasure?: T;
massPerUnit?: T;
stackSize?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "vehicles_select".
*/
export interface VehiclesSelect<T extends boolean = true> {
name?: T;
classname?: T;
Description?: T;
image?: T;
category?: T;
materials?:
| T
| {
resource?: T;
amount?: T;
id?: T;
};
constructionTime?: T;
requiredTech?: T;
requiredStructure?: T;
scrapReturns?:
| T
| {
resource?: T;
amount?: T;
chance?: T;
id?: T;
};
upkeepCosts?:
| T
| {
resource?: T;
amount?: T;
id?: T;
};
width?: T;
height?: T;
maxMass?: T;
aceCargoSlots?: T;
allowedVirtualCargo?:
| T
| {
item?: T;
amount?: T;
id?: T;
};
maxHealth?: T;
armorRating?: T;
maxSpeedOnRoad?: T;
maxSpeedOffRoad?: T;
maxAirspeed?: T;
maxKnots?: T;
pylons?:
| T
| {
pylonName?: T;
pylonType?: T;
amount?: T;
ammoType?: T;
id?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "structures_select".
*/
export interface StructuresSelect<T extends boolean = true> {
name?: T;
codeName?: T;
description?: T;
image?: T;
category?: T;
materials?:
| T
| {
resource?: T;
amount?: T;
id?: T;
};
constructionTime?: T;
requiredTech?: T;
requiresUpgrade?: T;
upgradesInto?: T;
upgradeCostMultiplier?: T;
terrainType?: T;
resourcesInRange?:
| T
| {
resource?: T;
range?: T;
id?: T;
};
structuresInRange?:
| T
| {
structure?: T;
range?: T;
id?: T;
};
upkeep?:
| T
| {
resource?: T;
amount?: T;
id?: T;
};
sellPrice?: T;
functionType?: T;
canProduce?: T;
autoGeneratedResources?:
| T
| {
resource?: T;
amount?: T;
frequency?: T;
id?: T;
};
maxCapacityMass?: T;
xSize?: T;
ySize?: T;
allowedStorage?:
| T
| {
item?: T;
amount?: T;
id?: T;
};
prohibitedStorage?:
| T
| {
item?: T;
id?: T;
};
maxHealth?: T;
repairSpeed?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "maps_select".
*/
export interface MapsSelect<T extends boolean = true> {
name?: T;
fileName?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "narrative-events_select".
*/
export interface NarrativeEventsSelect<T extends boolean = true> {
name?: T;
summary?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "mission-files_select".
*/
export interface MissionFilesSelect<T extends boolean = true> {
missionFileName?: T;
author?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "mod-lists_select".
*/
export interface ModListsSelect<T extends boolean = true> {
modlistName?: T;
author?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents_select".
*/
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
document?: T;
globalSlug?: T;
user?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences_select".
*/
export interface PayloadPreferencesSelect<T extends boolean = true> {
user?: T;
key?: T;
value?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations_select".
*/
export interface PayloadMigrationsSelect<T extends boolean = true> {
name?: T;
batch?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "game-rules".
*/
export interface GameRule {
id: number;
/**
* The base currency ("gold standard") used by all factions to pay for goods and services.
*/
mainCurrency: number | Resource;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "game-rules_select".
*/
export interface GameRulesSelect<T extends boolean = true> {
mainCurrency?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "auth".
*/
export interface Auth {
[k: string]: unknown;
}
declare module 'payload' {
export interface GeneratedTypes extends Config {}
}