133 lines
2.1 KiB
TypeScript
133 lines
2.1 KiB
TypeScript
export interface AppUser {
|
|
_id?: string;
|
|
username?: string;
|
|
squad?: Squad;
|
|
secret?: string;
|
|
activated: boolean;
|
|
permission: number;
|
|
}
|
|
|
|
export interface User {
|
|
_id?: string;
|
|
boardUserId?: number;
|
|
username?: string;
|
|
squadId?: any; // Squad or id-string
|
|
rankLvl?: number;
|
|
rank?: Rank;
|
|
awards?: Award[];
|
|
}
|
|
|
|
export interface Player {
|
|
_id?: string;
|
|
num?: string; // ranking number for high score
|
|
fraction?: string;
|
|
name?: string;
|
|
warId?: War;
|
|
kill?: number;
|
|
vehicle?: number;
|
|
death?: number;
|
|
friendlyFire?: number;
|
|
revive?: number;
|
|
respawn?: number;
|
|
flagTouch?: number;
|
|
}
|
|
|
|
export interface CampaignPlayer {
|
|
name?: string;
|
|
campaign?: Campaign;
|
|
players?: Player[];
|
|
}
|
|
|
|
export interface Campaign {
|
|
_id?: string;
|
|
title?: string;
|
|
wars?: War[];
|
|
}
|
|
|
|
export interface War {
|
|
_id?: string;
|
|
title?: string;
|
|
date?: string;
|
|
endDate?: string;
|
|
ptBlufor?: number;
|
|
ptOpfor?: number;
|
|
playersBlufor?: number;
|
|
playersOpfor?: number;
|
|
budgetBlufor?: number;
|
|
budgetOpfor?: number;
|
|
endBudgetBlufor?: number;
|
|
endBudgetOpfor?: number;
|
|
players?: Player[];
|
|
campaign?: string;
|
|
}
|
|
|
|
export interface Squad {
|
|
_id?: string;
|
|
name?: string;
|
|
fraction?: string;
|
|
sortingNumber?: number;
|
|
}
|
|
|
|
export interface Rank {
|
|
_id?: string;
|
|
name?: string;
|
|
fraction?: string;
|
|
level?: number;
|
|
}
|
|
|
|
export interface Award {
|
|
_id?: string;
|
|
userId: string;
|
|
decorationId?: any; // Decoration or string
|
|
reason?: string;
|
|
proposer?: AppUser;
|
|
date?: number; // since Date.now() returns a number
|
|
confirmed?: number;
|
|
}
|
|
|
|
export interface Promotion {
|
|
_id?: string;
|
|
userId?: string;
|
|
oldRankLvl: number;
|
|
newRankLvl: number;
|
|
}
|
|
|
|
export interface Decoration {
|
|
_id?: string;
|
|
name?: string;
|
|
description?: string;
|
|
fraction?: string;
|
|
sortingNumber?: number;
|
|
isMedal?: boolean;
|
|
}
|
|
|
|
export interface Army {
|
|
BLUFOR: {
|
|
squads: {
|
|
_id,
|
|
name,
|
|
memberCount,
|
|
members: {
|
|
_id,
|
|
username,
|
|
rank
|
|
}[],
|
|
}[],
|
|
memberCount
|
|
};
|
|
OPFOR: {
|
|
squads: {
|
|
_id,
|
|
name,
|
|
memberCount,
|
|
members: {
|
|
_id,
|
|
username,
|
|
rank
|
|
}[],
|
|
}[],
|
|
memberCount
|
|
};
|
|
}
|
|
|