import 'package:fis_jsonrpc/utils.dart'; class BaseDTO { DateTime? createTime; DateTime? updateTime; BaseDTO({ this.createTime, this.updateTime, }); factory BaseDTO.fromJson(Map map) { return BaseDTO( createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null, updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null, ); } Map toJson() { final map = Map(); if (createTime != null) map['CreateTime'] = JsonRpcUtils.dateFormat(createTime!); if (updateTime != null) map['UpdateTime'] = JsonRpcUtils.dateFormat(updateTime!); return map; } } class PositionDTO extends BaseDTO { String? positionCode; String? positionName; String? organizationCode; List? underUserCodes; PositionDTO({ this.positionCode, this.positionName, this.organizationCode, this.underUserCodes, DateTime? createTime, DateTime? updateTime, }) : super( createTime: createTime, updateTime: updateTime, ); factory PositionDTO.fromJson(Map map) { return PositionDTO( positionCode: map['PositionCode'], positionName: map['PositionName'], organizationCode: map['OrganizationCode'], underUserCodes: map['UnderUserCodes'].cast().toList(), createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null, updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null, ); } Map toJson() { final map = super.toJson(); if (positionCode != null) map['PositionCode'] = positionCode; if (positionName != null) map['PositionName'] = positionName; if (organizationCode != null) map['OrganizationCode'] = organizationCode; if (underUserCodes != null) map['UnderUserCodes'] = underUserCodes; return map; } } class BaseRequest { BaseRequest(); factory BaseRequest.fromJson(Map map) { return BaseRequest(); } Map toJson() { final map = Map(); return map; } } class TokenRequest extends BaseRequest { String? token; TokenRequest({ this.token, }) : super(); factory TokenRequest.fromJson(Map map) { return TokenRequest( token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (token != null) map['Token'] = token; return map; } } class GetPositionsRequest extends TokenRequest { List? positionCodes; List? organizationCodes; GetPositionsRequest({ this.positionCodes, this.organizationCodes, String? token, }) : super( token: token, ); factory GetPositionsRequest.fromJson(Map map) { return GetPositionsRequest( positionCodes: map['PositionCodes'].cast().toList(), organizationCodes: map['OrganizationCodes'].cast().toList(), token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (positionCodes != null) map['PositionCodes'] = positionCodes; if (organizationCodes != null) map['OrganizationCodes'] = organizationCodes; return map; } } class PositionItemDTO { String? positionName; String? organizationCode; List? underUserCodes; String? extendsData; PositionItemDTO({ this.positionName, this.organizationCode, this.underUserCodes, this.extendsData, }); factory PositionItemDTO.fromJson(Map map) { return PositionItemDTO( positionName: map['PositionName'], organizationCode: map['OrganizationCode'], underUserCodes: map['UnderUserCodes'].cast().toList(), extendsData: map['ExtendsData'], ); } Map toJson() { final map = Map(); if (positionName != null) map['PositionName'] = positionName; if (organizationCode != null) map['OrganizationCode'] = organizationCode; if (underUserCodes != null) map['UnderUserCodes'] = underUserCodes; if (extendsData != null) map['ExtendsData'] = extendsData; return map; } } class AddPositionsRequest { String? token; List? positions; AddPositionsRequest({ this.token, this.positions, }); factory AddPositionsRequest.fromJson(Map map) { return AddPositionsRequest( token: map['Token'], positions: map['Positions'] .map((e) => PositionItemDTO.fromJson(e as Map)) .toList(), ); } Map toJson() { final map = Map(); if (token != null) map['Token'] = token; if (positions != null) map['Positions'] = positions; return map; } } class UpdatePositionsRequest extends TokenRequest { List? positions; UpdatePositionsRequest({ this.positions, String? token, }) : super( token: token, ); factory UpdatePositionsRequest.fromJson(Map map) { return UpdatePositionsRequest( positions: map['Positions'] .map((e) => PositionItemDTO.fromJson(e as Map)) .toList(), token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (positions != null) map['Positions'] = positions; return map; } } class RemovePositionRequest extends TokenRequest { List? positionCodes; RemovePositionRequest({ this.positionCodes, String? token, }) : super( token: token, ); factory RemovePositionRequest.fromJson(Map map) { return RemovePositionRequest( positionCodes: map['PositionCodes'].cast().toList(), token: map['Token'], ); } Map toJson() { final map = super.toJson(); if (positionCodes != null) map['PositionCodes'] = positionCodes; return map; } }