SpaceNinjaServer/src/types/loginTypes.ts
Sainan 3bcac1459b feat: track LastLogin to provide it for friends & clan members (#2013)
Reviewed-on: OpenWF/SpaceNinjaServer#2013
Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com>
Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
2025-05-08 08:20:45 -07:00

68 lines
1.5 KiB
TypeScript

import { Types } from "mongoose";
export interface IAccountAndLoginResponseCommons {
DisplayName: string;
CountryCode: string;
ClientType?: string;
CrossPlatformAllowed?: boolean;
ForceLogoutVersion?: number;
AmazonAuthToken?: string;
AmazonRefreshToken?: string;
ConsentNeeded?: boolean;
TrackedSettings?: string[];
Nonce: number;
}
export interface IDatabaseAccountRequiredFields extends IAccountAndLoginResponseCommons {
email: string;
password: string;
BuildLabel?: string;
LastLogin: Date;
}
export interface IDatabaseAccount extends IDatabaseAccountRequiredFields {
Dropped?: boolean;
LatestEventMessageDate: Date;
LastLoginRewardDate: number;
LoginDays: number;
}
// Includes virtual ID
export interface IDatabaseAccountJson extends IDatabaseAccount {
id: string;
}
export interface ILoginRequest {
email: string;
password: string;
time: number;
s?: string;
lang?: string;
date: number;
ClientType?: string;
PS?: string;
kick?: boolean;
}
export interface ILoginResponse extends IAccountAndLoginResponseCommons {
id: string;
Groups?: IGroup[];
BuildLabel: string;
MatchmakingBuildId?: string;
platformCDNs?: string[];
NRS?: string[];
DTLS?: number;
IRC?: string[];
HUB?: string;
}
export interface IGroup {
experiment: string;
experimentGroup: string;
}
export interface IIgnore {
ignorer: Types.ObjectId;
ignoree: Types.ObjectId;
}