/* Options: Date: 2026-02-04 10:26:31 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://etc-api.vsmlab.vn //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: LoginHistoryRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; abstract class IResponseRequest { int? code; String? message; } class UserLoginHistory implements IConvertible { int? id; int? userId; // @StringLength(150) String? userName; // @StringLength(45) String? ipAddress; // @StringLength(500) String? deviceInfo; // @StringLength(50) String? loginStatus; // @StringLength(500) String? failReason; // @required() DateTime? createdAt; String? provider; UserLoginHistory({this.id,this.userId,this.userName,this.ipAddress,this.deviceInfo,this.loginStatus,this.failReason,this.createdAt,this.provider}); UserLoginHistory.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; userId = json['userId']; userName = json['userName']; ipAddress = json['ipAddress']; deviceInfo = json['deviceInfo']; loginStatus = json['loginStatus']; failReason = json['failReason']; createdAt = JsonConverters.fromJson(json['createdAt'],'DateTime',context!); provider = json['provider']; return this; } Map toJson() => { 'id': id, 'userId': userId, 'userName': userName, 'ipAddress': ipAddress, 'deviceInfo': deviceInfo, 'loginStatus': loginStatus, 'failReason': failReason, 'createdAt': JsonConverters.toJson(createdAt,'DateTime',context!), 'provider': provider }; getTypeName() => "UserLoginHistory"; TypeContext? context = _ctx; } class UserLoginHistoryDto extends UserLoginHistory implements IConvertible { int? failedLoginCount; UserLoginHistoryDto({this.failedLoginCount}); UserLoginHistoryDto.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); failedLoginCount = json['failedLoginCount']; return this; } Map toJson() => super.toJson()..addAll({ 'failedLoginCount': failedLoginCount }); getTypeName() => "UserLoginHistoryDto"; TypeContext? context = _ctx; } class LoginHistoryRespnse implements IResponseRequest, IConvertible { List? data; int? totalRecords; int? code; String? message; LoginHistoryRespnse({this.data,this.totalRecords,this.code,this.message}); LoginHistoryRespnse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { data = JsonConverters.fromJson(json['data'],'List',context!); totalRecords = json['totalRecords']; code = json['code']; message = json['message']; return this; } Map toJson() => { 'data': JsonConverters.toJson(data,'List',context!), 'totalRecords': totalRecords, 'code': code, 'message': message }; getTypeName() => "LoginHistoryRespnse"; TypeContext? context = _ctx; } /** * Lấy lịch sử đăng nhập */ // @Route("/login-history", "Get") class LoginHistoryRequest implements IReturn, IConvertible, IGet { int? userId; String? userName; DateTime? startDate; DateTime? endDate; int? page; int? limit; LoginHistoryRequest({this.userId,this.userName,this.startDate,this.endDate,this.page,this.limit}); LoginHistoryRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { userId = json['userId']; userName = json['userName']; startDate = JsonConverters.fromJson(json['startDate'],'DateTime',context!); endDate = JsonConverters.fromJson(json['endDate'],'DateTime',context!); page = json['page']; limit = json['limit']; return this; } Map toJson() => { 'userId': userId, 'userName': userName, 'startDate': JsonConverters.toJson(startDate,'DateTime',context!), 'endDate': JsonConverters.toJson(endDate,'DateTime',context!), 'page': page, 'limit': limit }; createResponse() => LoginHistoryRespnse(); getResponseTypeName() => "LoginHistoryRespnse"; getTypeName() => "LoginHistoryRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'etc_api.vsmlab.vn', types: { 'IResponseRequest': TypeInfo(TypeOf.Interface), 'UserLoginHistory': TypeInfo(TypeOf.Class, create:() => UserLoginHistory()), 'UserLoginHistoryDto': TypeInfo(TypeOf.Class, create:() => UserLoginHistoryDto()), 'LoginHistoryRespnse': TypeInfo(TypeOf.Class, create:() => LoginHistoryRespnse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'LoginHistoryRequest': TypeInfo(TypeOf.Class, create:() => LoginHistoryRequest()), });