class UserTokenDTO {
	String? userCode;
	String? deviceId;
	String? token;

	UserTokenDTO({
		this.userCode,
		this.deviceId,
		this.token,
	});

	factory UserTokenDTO.fromJson(Map<String, dynamic> map) {
		return UserTokenDTO( 
			userCode: map['UserCode'],
			deviceId: map['DeviceId'],
			token: map['Token'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(userCode != null)
			map['UserCode'] = userCode;
		if(deviceId != null)
			map['DeviceId'] = deviceId;
		if(token != null)
			map['Token'] = token;
		return map;
	}
}

class CommonLoginRequest {
	String? anyAccount;
	String? anyCode;
	String? password;
	Map<String,String>? headerMap;

	CommonLoginRequest({
		this.anyAccount,
		this.anyCode,
		this.password,
		this.headerMap,
	});

	factory CommonLoginRequest.fromJson(Map<String, dynamic> map) {
		return CommonLoginRequest( 
			anyAccount: map['AnyAccount'],
			anyCode: map['AnyCode'],
			password: map['Password'],
			headerMap: map['HeaderMap'].cast<String,String>(),
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(anyAccount != null)
			map['AnyAccount'] = anyAccount;
		if(anyCode != null)
			map['AnyCode'] = anyCode;
		if(password != null)
			map['Password'] = password;
		if(headerMap != null)
			map['HeaderMap'] = headerMap;
		return map;
	}
}

class CheckLoginTypeRequest {
	String? anyAccount;

	CheckLoginTypeRequest({
		this.anyAccount,
	});

	factory CheckLoginTypeRequest.fromJson(Map<String, dynamic> map) {
		return CheckLoginTypeRequest( 
			anyAccount: map['AnyAccount'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(anyAccount != null)
			map['AnyAccount'] = anyAccount;
		return map;
	}
}

class CommonSignUpRequest {
	String? anyAccount;
	String? anyCode;
	String? password;
	Map<String,String>? headerMap;

	CommonSignUpRequest({
		this.anyAccount,
		this.anyCode,
		this.password,
		this.headerMap,
	});

	factory CommonSignUpRequest.fromJson(Map<String, dynamic> map) {
		return CommonSignUpRequest( 
			anyAccount: map['AnyAccount'],
			anyCode: map['AnyCode'],
			password: map['Password'],
			headerMap: map['HeaderMap'].cast<String,String>(),
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(anyAccount != null)
			map['AnyAccount'] = anyAccount;
		if(anyCode != null)
			map['AnyCode'] = anyCode;
		if(password != null)
			map['Password'] = password;
		if(headerMap != null)
			map['HeaderMap'] = headerMap;
		return map;
	}
}

class CheckSMSVerificationCodeRequest {
	String? userPhone;
	String? verifyCode;

	CheckSMSVerificationCodeRequest({
		this.userPhone,
		this.verifyCode,
	});

	factory CheckSMSVerificationCodeRequest.fromJson(Map<String, dynamic> map) {
		return CheckSMSVerificationCodeRequest( 
			userPhone: map['UserPhone'],
			verifyCode: map['VerifyCode'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(userPhone != null)
			map['UserPhone'] = userPhone;
		if(verifyCode != null)
			map['VerifyCode'] = verifyCode;
		return map;
	}
}

class SendSMSVerificationCodeRequest {
	String? userPhone;

	SendSMSVerificationCodeRequest({
		this.userPhone,
	});

	factory SendSMSVerificationCodeRequest.fromJson(Map<String, dynamic> map) {
		return SendSMSVerificationCodeRequest( 
			userPhone: map['UserPhone'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(userPhone != null)
			map['UserPhone'] = userPhone;
		return map;
	}
}

class SendEmailVerificationCodeRequest {
	String? emailAddress;

	SendEmailVerificationCodeRequest({
		this.emailAddress,
	});

	factory SendEmailVerificationCodeRequest.fromJson(Map<String, dynamic> map) {
		return SendEmailVerificationCodeRequest( 
			emailAddress: map['EmailAddress'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(emailAddress != null)
			map['EmailAddress'] = emailAddress;
		return map;
	}
}

class CheckEmailVerificationCodeRequest {
	String? emailAddress;
	String? verifyCode;

	CheckEmailVerificationCodeRequest({
		this.emailAddress,
		this.verifyCode,
	});

	factory CheckEmailVerificationCodeRequest.fromJson(Map<String, dynamic> map) {
		return CheckEmailVerificationCodeRequest( 
			emailAddress: map['EmailAddress'],
			verifyCode: map['VerifyCode'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(emailAddress != null)
			map['EmailAddress'] = emailAddress;
		if(verifyCode != null)
			map['VerifyCode'] = verifyCode;
		return map;
	}
}

class RetrievePasswordByPhoneRequest {
	String? phone;
	String? verifyCode;
	String? newPassword;

	RetrievePasswordByPhoneRequest({
		this.phone,
		this.verifyCode,
		this.newPassword,
	});

	factory RetrievePasswordByPhoneRequest.fromJson(Map<String, dynamic> map) {
		return RetrievePasswordByPhoneRequest( 
			phone: map['Phone'],
			verifyCode: map['VerifyCode'],
			newPassword: map['NewPassword'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(phone != null)
			map['Phone'] = phone;
		if(verifyCode != null)
			map['VerifyCode'] = verifyCode;
		if(newPassword != null)
			map['NewPassword'] = newPassword;
		return map;
	}
}

class RetrievePasswordByEmailRequest {
	String? mail;
	String? verifyCode;
	String? newPassword;

	RetrievePasswordByEmailRequest({
		this.mail,
		this.verifyCode,
		this.newPassword,
	});

	factory RetrievePasswordByEmailRequest.fromJson(Map<String, dynamic> map) {
		return RetrievePasswordByEmailRequest( 
			mail: map['Mail'],
			verifyCode: map['VerifyCode'],
			newPassword: map['NewPassword'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(mail != null)
			map['Mail'] = mail;
		if(verifyCode != null)
			map['VerifyCode'] = verifyCode;
		if(newPassword != null)
			map['NewPassword'] = newPassword;
		return map;
	}
}

class VerifyAccountRequest {
	String? userName;

	VerifyAccountRequest({
		this.userName,
	});

	factory VerifyAccountRequest.fromJson(Map<String, dynamic> map) {
		return VerifyAccountRequest( 
			userName: map['UserName'],
		);
	}

	Map<String, dynamic> toJson() {
		final map = Map<String, dynamic>();
		if(userName != null)
			map['UserName'] = userName;
		return map;
	}
}