import { MemberCategory } from "../../../models/enums/MemberCategory"; import { MessageType } from "../../enums/MessageType"; import { IPmcData } from "../common/IPmcData"; import { Item } from "../common/tables/IItem"; export interface IAkiProfile { info: Info characters: Characters /** Clothing purchases */ suits: string[] weaponbuilds: WeaponBuild[] dialogues: Record aki: Aki vitality: Vitality inraid: Inraid insurance: Insurance[] /** Assort purchases made by player since last trader refresh */ traderPurchases?: Record> } export class TraderPurchaseData { count: number; purchaseTimestamp: number; } export interface Info { id: string username: string password: string wipe: boolean edition: string } export interface Characters { pmc: IPmcData scav: IPmcData } export interface WeaponBuild { id: string name: string root: string items: Item[] } export interface Dialogue { attachmentsNew: number type: MessageType new: number _id: string Users?: IUserDialogInfo[] pinned: boolean messages: Message[] } export interface IUserDialogInfo { _id: string info: IUserDialogDetails } export interface IUserDialogDetails { Nickname: string Side: string Level: number MemberCategory: MemberCategory } // @Cleanup: Maybe the same as Dialogue? export interface DialogueInfo { attachmentsNew: number new: number _id: string type: MessageType pinned: boolean Users?: any[] message: MessagePreview } export interface Message { _id: string uid: string type: MessageType dt: number UtcDateTime?: number Member?: IUpdatableChatMember templateId?: string text?: string hasRewards: boolean rewardCollected: boolean items: MessageItems maxStorageTime?: number systemData?: ISystemData profileChangeEvents?: any[] } export interface MessagePreview { uid: string type: MessageType dt: number templateId: string text?: string systemData?: ISystemData } export interface MessageItems { stash?: string data?: Item[] } export interface ISystemData { date?: string time?: string location?: string buyerNickname?: string soldItem?: string itemCount?: number } export interface IUpdatableChatMember { Nickname: string Side: string Level: number MemberCategory: MemberCategory Ignored: boolean Banned: boolean } export interface DateTime { date: string time: string } export interface Aki { version: string mods?: ModDetails[] } export interface ModDetails { name: string version: string author: string dateAdded: number } export interface Vitality { health: Health effects: Effects } export interface Health { Hydration: number Energy: number Temperature: number Head: number Chest: number Stomach: number LeftArm: number RightArm: number LeftLeg: number RightLeg: number } export interface Effects { Head: Head Chest: Chest Stomach: Stomach LeftArm: LeftArm RightArm: RightArm LeftLeg: LeftLeg RightLeg: RightLeg } export interface Head { } export interface Chest { } export interface Stomach { } export interface LeftArm { Fracture?: number } export interface RightArm { Fracture?: number } export interface LeftLeg { Fracture?: number } export interface RightLeg { Fracture?: number } export interface Inraid { location: string character: string } export interface Insurance { scheduledTime: number traderId: string messageContent: MessageContent items: Item[] } export interface MessageContent { ragfair?: MessageContentRagfair text?: string templateId: string type: MessageType maxStorageTime?: number profileChangeEvents?: any[] systemData?: ISystemData } export interface MessageContentRagfair { offerId: string count: number handbookId: string }