opt-cc/static/src/app/models/model-interfaces.ts

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;
}