namespace Infrastructure.StockData; /// /// SEIBro getBassetUnredScale(기초자산별 미상환규모) 응답 파서 — 순수 C#. 공용 SeibroXml envelope 입력. /// 실샘플 래퍼 = <result> **소문자** (readme §1 확정 — getDerivCombiIssuInfo·getBassetUnredScale 2종만 소문자). /// 응답 필드는 BassetContent·UnredSecncnt·UnredRema 3종 — StdDt·StndBassetCd·SecnTpcd 는 배치가 요청 파라미터를 스탬핑. /// ⚠️ 실샘플에서 UNRED_REMA 가 빈 value(SeibroXml 이 키 제외 → null) 케이스 존재 — decimal? null 방어. 종목당 1행이라 첫 행만 의미. /// public static class SeibroBassetUnredScaleParser { public sealed record Row( string? BassetContent, int? UnredSecncnt, decimal? UnredRema ); public static IReadOnlyList Parse(SeibroXml.Envelope envelope) { var rows = new List(); foreach (var fields in envelope.Rows) { rows.Add(new Row( SeibroXml.GetOrNull(fields, "BASSET_CONTENT")?.Trim(), SeibroFieldParse.Int(SeibroXml.GetOrNull(fields, "UNRED_SECNCNT")), SeibroFieldParse.Decimal(SeibroXml.GetOrNull(fields, "UNRED_REMA")) )); } return rows; } }