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

119 lines
1.8 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;
squad?: any; //Squad or id-string
rank?: Rank;
awards?: Award[];
}
export interface Player {
_id?: string;
fraction?: string;
name?: string;
warId?: War;
kill?: number;
death?: number;
friendlyFire?: number;
revive?: number;
respawn?: number;
flagTouch?: number;
}
export interface Campaign {
_id?: string;
title?: string;
wars?: War[];
}
export interface War {
_id?: string;
title?: string;
date?: string;
ptBlufor?: number;
ptOpfor?: number;
playersBlufor?: number;
playersOpfor?: 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 {
NATO: {
squads: {
_id,
name,
memberCount,
members: {
_id,
username,
rank
}[],
}[],
memberCount
},
CSAT: {
squads: {
_id,
name,
memberCount,
members: {
_id,
username,
rank
}[],
}[],
memberCount
},
}