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

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