using System.Text.Json.Serialization;
namespace Infrastructure.Kyc.Nice.Dto;
///
/// POST /ido/intc/v1.0/auth/result 응답. 가이드 §2-3.
///
internal sealed class NiceResultResponse
{
[JsonPropertyName("result_code")]
public string? ResultCode { get; set; }
[JsonPropertyName("result_message")]
public string? ResultMessage { get; set; }
/// AES-256-GCM 으로 암호화된 사용자 정보 (Base64Url, no padding).
[JsonPropertyName("enc_data")]
public string? EncData { get; set; }
/// HMAC-SHA256 무결성 값 (Base64Url, no padding).
[JsonPropertyName("integrity_value")]
public string? IntegrityValue { get; set; }
}
///
/// enc_data 복호화 후 JSON. 가이드 §2-3 의 평문 필드.
///
internal sealed class NiceResultDecryptedDto
{
[JsonPropertyName("name")]
public string? Name { get; set; }
[JsonPropertyName("birthdate")]
public string? Birthdate { get; set; }
[JsonPropertyName("gender")]
public string? Gender { get; set; }
[JsonPropertyName("national_info")]
public string? NationalInfo { get; set; }
[JsonPropertyName("ci")]
public string? Ci { get; set; }
[JsonPropertyName("ci2")]
public string? Ci2 { get; set; }
[JsonPropertyName("di")]
public string? Di { get; set; }
[JsonPropertyName("ci_update")]
public string? CiUpdate { get; set; }
[JsonPropertyName("mobile_co")]
public string? MobileCo { get; set; }
[JsonPropertyName("mobile_no")]
public string? MobileNo { get; set; }
[JsonPropertyName("vnumber")]
public string? Vnumber { get; set; }
[JsonPropertyName("age_code")]
public string? AgeCode { get; set; }
[JsonPropertyName("auth_method")]
public string? AuthMethod { get; set; }
}