/* Options: Date: 2026-02-04 10:25:58 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://etc-api.vsmlab.vn //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: LoginHistoryRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface IResponseRequest { code: number; message: string; } export class UserLoginHistory { public id: number; public userId: number; // @StringLength(150) public userName: string; // @StringLength(45) public ipAddress: string; // @StringLength(500) public deviceInfo: string; // @StringLength(50) public loginStatus: string; // @StringLength(500) public failReason: string; // @Required() public createdAt: string; public provider: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class UserLoginHistoryDto extends UserLoginHistory { public failedLoginCount?: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class LoginHistoryRespnse implements IResponseRequest { public data?: UserLoginHistoryDto[]; public totalRecords: number; public code: number; public message: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } /** @description Lấy lịch sử đăng nhập */ // @Route("/login-history", "Get") export class LoginHistoryRequest implements IReturn { public userId?: number; public userName: string; public startDate?: string; public endDate?: string; public page: number; public limit: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'LoginHistoryRequest'; } public getMethod() { return 'GET'; } public createResponse() { return new LoginHistoryRespnse(); } }