131 lines
2.3 KiB
TypeScript
131 lines
2.3 KiB
TypeScript
import {Observable} from 'rxjs';
|
|
|
|
export interface AppUser {
|
|
_id?: string;
|
|
username?: string;
|
|
squad?: any; // Squad or id-string
|
|
secret?: string;
|
|
activated?: boolean;
|
|
permission?: number;
|
|
token?: string;
|
|
}
|
|
|
|
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;
|
|
vehicleLight?: number;
|
|
vehicleHeavy?: number;
|
|
vehicleAir?: number;
|
|
death?: number;
|
|
friendlyFire?: number;
|
|
revive?: number;
|
|
respawn?: number;
|
|
flagTouch?: number;
|
|
performance?: string;
|
|
travelDistance?: number;
|
|
driverDistance?: number;
|
|
}
|
|
|
|
export interface CampaignPlayer {
|
|
name?: string;
|
|
campaign?: Campaign;
|
|
players?: Player[];
|
|
}
|
|
|
|
export interface Campaign {
|
|
_id?: string;
|
|
title?: string;
|
|
wars$?: Observable<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 | User;
|
|
decorationId?: any; // Decoration or string
|
|
reason?: string;
|
|
proposer?: AppUser;
|
|
date?: number; // since Date.now() returns a number
|
|
confirmed?: number;
|
|
rejectReason?: string;
|
|
}
|
|
|
|
export interface Promotion {
|
|
_id?: string;
|
|
userId?: string;
|
|
oldRankLvl: number;
|
|
newRankLvl: number;
|
|
rejectReason?: string;
|
|
confirmed?: number;
|
|
}
|
|
|
|
export interface Decoration {
|
|
_id?: string;
|
|
name?: string;
|
|
description?: string;
|
|
fraction?: string;
|
|
sortingNumber?: number;
|
|
isMedal?: boolean;
|
|
}
|
|
|
|
export interface ArmySquad {
|
|
_id?: string;
|
|
name?: string;
|
|
memberCount?: number;
|
|
members?: {
|
|
_id,
|
|
username,
|
|
rank
|
|
};
|
|
}
|
|
|
|
export interface Army {
|
|
squads?: ArmySquad[];
|
|
memberCount?: number;
|
|
}
|
|
|