namespace Infrastructure.StockData;
///
/// SEIBro getShortmIssuInfo(단기금융증권 발행내역, CD/CP/전단채) 응답 파서 — 순수 C#. 공용 SeibroXml envelope 입력.
/// 자연키 ISIN 없으면 건너뛴다. SECN_TPCD·ISSU_DT 는 응답에 없어 요청 파라미터를 배치가 스탬핑한다(여기선 필드만 매핑).
///
public static class SeibroShortmIssuParser
{
public sealed record Row(
string Isin,
string? KorSecnNm,
int? IssucoCustno,
string? IssucoCustNm
);
public static IReadOnlyList Parse(SeibroXml.Envelope envelope)
{
var rows = new List();
foreach (var fields in envelope.Rows)
{
var isin = SeibroXml.GetOrNull(fields, "ISIN")?.Trim();
if (string.IsNullOrEmpty(isin))
{
continue;
}
rows.Add(new Row(
isin,
SeibroXml.GetOrNull(fields, "KOR_SECN_NM")?.Trim(),
SeibroFieldParse.Int(SeibroXml.GetOrNull(fields, "ISSUCO_CUSTNO")),
SeibroXml.GetOrNull(fields, "ISSUCO_CUST_NM")?.Trim()
));
}
return rows;
}
}