Types

All types

Below listed types are used through out the whole dispatch.

---@meta

---@class suppressShootingConfig
---@field enabled boolean
---@field delay number
---@field radius number
---@field cleanup number

---@class ShootingBlacklist
---@field jobs table<string>
---@field weapons table<string>

---@class CameraConfig
---@field model string
---@field groups? table<string>
---@field isShared? table<string>

---@class PlacingConfig
---@field time number

---@class RepairConfig
---@field time number
---@field type? 'cash' | 'bank'
---@field price? number

---@class DestroyConfig
---@field time number

---@class CamerasOffsets
---@field rotation table<string, vector3>
---@field position table<string, vector3>

---@class PredefinedCameraCreatedBy
---@field name string
---@field group string

---@class PredefinedCameraConfig
---@field id? string
---@field name string
---@field group? string
---@field coords vector3
---@field heading number
---@field model? string
---@field status? 'online' | 'offline'
---@field createdAt? number
---@field default? boolean
---@field createdBy? PredefinedCameraCreatedBy

---@class AvailableMap
---@field id string
---@field name string
---@field icon string
---@field minZoom number
---@field maxZoom number
---@field url string

---@class PredefinedUnitMarker
---@field color number
---@field scale number
---@field sprite number

---@class Status
---@field name string
---@field color string
---@field default? boolean

---@class QuickDispatchConfig
---@field enabled boolean
---@field allowedGroups string[]
---@field defaultStyle 'old' | 'new'
---@field enabledByDefault boolean

---@class RadarReceiptConfig
---@field enabled boolean
---@field command string
---@field item string

---@class RadarConfig
---@field enabled boolean
---@field allowedGroups string[]
---@field allowedVehicleClass number[]
---@field allowedVehicleModels string[]
---@field enabledByDefault boolean
---@field speedUnits 'kmh' | 'mph'
---@field range number
---@field updateInterval number
---@field radarReceipts RadarReceiptConfig

---@class ReaderConfig
---@field enabled boolean
---@field allowedGroups string[]
---@field allowedVehicleClass number[]
---@field allowedVehicleModels string[]
---@field enabledByDefault boolean

---@class KeybindsConfig
---@field fullView string | boolean | nil
---@field componentsDragging string | boolean | nil
---@field quickDispatchVisibility string | boolean | nil
---@field quickDispatchRespondToAlert string | boolean | nil
---@field quickDispatchJoinRadio string | boolean | nil
---@field quickDispatchMarkOnGps string | boolean | nil
---@field toggleRadar string | boolean | nil
---@field toggleReader string | boolean | nil
---@field radarLock string | boolean | nil

---@class CommandsConfig
---@field toggleFullView string | boolean | nil

---@class CallsignConfig
---@field canChange boolean
---@field allowedGroups string[]

---@class MarkersUnitsConfig
---@field onDispatchMap boolean
---@field nativeMap boolean
---@field styling table<string, PredefinedUnitMarker>

---@class MarkersConfig
---@field units MarkersUnitsConfig
---@field positionUpdateInterval number

---@class MoveToChannelPayload
---@field playerId number
---@field radioChannel string | number

---@class CreateBoloPayload
---@field priority? 'low' | 'medium' | 'high'
---@field group string
---@field isShared boolean
---@field title string
---@field description? string
---@field metadata PersonBolo | VehicleBolo
---@field createdBy string

---@class ProfilePayload
---@field playerId number
---@field identifier string
---@field group string
---@field name string
---@field status Status
---@field callsign string

---@class QuickDispatchOldStyleSettings
---@field position {x: number, y: number}

---@class QuickDispatchNewStyleSettings
---@field open 'top' | 'bottom'
---@field stickTo 'top' | 'bottom'
---@field position {x: number, y: number}

---@class QuickDispatchStyles
---@field old QuickDispatchOldStyleSettings
---@field new QuickDispatchNewStyleSettings

---@class QuickDispatchSettings
---@field style 'old' | 'new'
---@field enabled boolean
---@field settings QuickDispatchStyles

---@class RadarOtherSettings
---@field enabled boolean
---@field fastLimitSounds boolean
---@field fastLimit number
---@field frontXmt boolean
---@field rearXmt boolean

---@class RadarSettings
---@field shown boolean
---@field settings RadarOtherSettings
---@field position {x: number, y: number, scale: number}

---@class ReaderOtherSettings
---@field enabled boolean
---@field readerSounds boolean

---@class ReaderSettings
---@field shown boolean
---@field settings ReaderOtherSettings
---@field position {x: number, y: number, scale: number}

---@class UnitUploadLocationPayload
---@field serverId number
---@field location vector3

---@class PersonBolo
---@field type 'person'
---@field name string
---@field description? string

---@class VehicleBoloColor
---@field name string
---@field background string

---@class VehicleBolo
---@field type 'vehicle'
---@field model? string
---@field plate? string
---@field color? VehicleBoloColor

---@class Log
---@field id string
---@field title string
---@field description? string
---@field createdAt number
---@field category? string
---@field targetId? string
---@field payload? any
---@field groups? string[]

---@class Bolo
---@field id string
---@field priority 'low' | 'medium' | 'high'
---@field group string
---@field isShared boolean
---@field title string
---@field description? string
---@field metadata PersonBolo | VehicleBolo
---@field createdAt number
---@field createdBy string
---@field logs Log[]

---@class PredefinedBlip
---@field sprite? number
---@field color number
---@field scale number
---@field radius? number
---@field flashes? boolean
---@field time? number

---@class BlipPayload
---@field title? string
---@field time? number
---@field coords vector3
---@field sprite? number
---@field radius? number
---@field color number
---@field scale number
---@field flashes? boolean
---@field category? number

---@class AlertBlip
---@field id number
---@field blip number
---@field time number
---@field currentAlpha number

---@alias UnitMemberOn 'foot' | 'vehicle' | 'motor' | 'air' | 'boat'

---@class Member
---@field status? string
---@field name string
---@field on UnitMemberOn
---@field identifier string
---@field serverId number
---@field groupName string
---@field group string
---@field grade number
---@field location [number, number, number]
---@field locationName string
---@field callsign? string
---@field radioChannel? number

---@class Unit
---@field id number
---@field name string
---@field members Member[]

---@class Media
---@field id string
---@field cameraId string
---@field externalId string
---@field url string
---@field mediaType 'image' | 'video' | 'json'
---@field createdBy { name: string, group: string }
---@field createdAt number
---@field updatedAt number

---@class Camera
---@field id? string
---@field name string
---@field item? string
---@field description? string
---@field model? string
---@field coords vector3
---@field heading number
---@field status 'online' | 'offline'
---@field createdAt number
---@field group? string
---@field groups string[]
---@field createdBy { identifier: string, name: string, group: string }
---@field screenshots Media[]
---@field videos Media[]
---@field logs Log[]

---@class RectangleCorner
---@field x number
---@field y number

---@class Rectangle
---@field type 'rectangle'
---@field southWest RectangleCorner
---@field northEast RectangleCorner

---@class Circle
---@field type 'circle'
---@field x number
---@field y number
---@field radius number

---@class Polyline
---@field type 'polyline'
---@field points [number, number][]

---@class Polygon
---@field type 'polygon'
---@field points [number, number][]

---@class Geometry
---@field id string
---@field name string
---@field description string
---@field color string
---@field group? string
---@field sharedWith { group: string }[]
---@field createdBy { identifier: string, name: string, group: string }
---@field createdOn number
---@field form Rectangle | Circle | Polyline | Polygon

---@class SharableWith
---@field title string
---@field group string

---@class AddUpdateDrawingPayload
---@field id string
---@field name string
---@field description? string
---@field form any
---@field color string
---@field sharedWith { group: string }[]
---@field createdBy? { identifier: string, name: string, group: string }

---@class LockedRadarState
---@field isLocked boolean
---@field fast { front: number, rear: number }
---@field plate { front: string, rear: string }
---@field limit number
---@field createdBy string
---@field createdAt number

---@class RadarReceiptPayload
---@field speed number
---@field plate string
---@field limit number
---@field lockedBy string
---@field createdAt number
---@field printedBy string

---@class AlertMetadata
---@field icon string

---@class AlertGeneralMetadata: AlertMetadata
---@field type 'general'
---@field content string

---@class AlertVehicleMetadata: AlertMetadata
---@field type 'vehicle'
---@field model? string
---@field plate? string
---@field color? string

---@class AlertIncomingCallMessage
---@field message string
---@field postedOn number
---@field postedBy string

---@class AlertIncomingCallMetadata: AlertMetadata
---@field type 'call'
---@field serverId number
---@field caller? string
---@field initialMessage string
---@field messages table<AlertIncomingCallMessage>
---@field isAnonymous boolean

---@alias AlertMetadataType AlertVehicleMetadata | AlertGeneralMetadata | AlertIncomingCallMetadata

---@class Alert
---@field id string
---@field title string
---@field description? string
---@field groups string[]
---@field location? { coords: vector3, street: string }
---@field priority? number
---@field code? string
---@field radioChannel? number
---@field units number[]
---@field logs Log[]
---@field createdAt number
---@field updatedAt number
---@field metadata AlertMetadataType[]
---@field isArchived? boolean
---@field isEmergency? boolean
---@field isAnonymous? boolean
---@field isShooting? boolean
---@field blip string | PredefinedBlip

---@class ServerAlertPayload
---@field source? number
---@field title string
---@field description? string
---@field groups string[]
---@field location? { coords: vector3, street: string }
---@field priority? number
---@field code? string
---@field radioChannel? number
---@field metadata AlertMetadataType[]
---@field isArchived? boolean
---@field isEmergency? boolean
---@field isAnonymous? boolean
---@field isShooting? boolean
---@field blip string | BlipPayload

---@class ClientAlertPayload
---@field title string
---@field description? string
---@field groups string[]
---@field location? { coords: vector3, street: string }
---@field priority? number
---@field code? string
---@field radioChannel? number
---@field metadata AlertMetadataType[]
---@field isArchived? boolean
---@field isEmergency? boolean
---@field isAnonymous? boolean
---@field isShooting? boolean
---@field blip string | BlipPayload

---@class SyncedAlert: Alert
---@field dontShow? boolean

---@class GetPlayerInfo
---@field ped number
---@field street_1 string
---@field street_2? string
---@field street string
---@field sex string
---@field vehicle? number
---@field vehicle_label? string
---@field vehicle_colour? string
---@field vehicle_plate? string
---@field heading? number
---@field speed? number