namespace Application.Features.Api.Stocks.GetBondDetail;
public sealed class Response
{
/// 종목코드 (ISIN)
public required string Isin { get; init; }
/// 채권 마스터 (getBondStatInfo) — 없으면 null (KRX 일별시세만 있는 경우)
public MasterInfo? Master { get; init; }
/// 이자지급 정보 (getIntPayInfo) — 없으면 null
public InterestInfo? Interest { get; init; }
/// KRX 일별매매 최신 시세 (BondDailyTrade) — 없으면 null
public MarketInfo? Market { get; init; }
public sealed class MasterInfo
{
public string? Name { get; init; }
public int? IssucoCustno { get; init; }
/// 종목종류코드 (SECN_KACD)
public string? SecnKacd { get; init; }
public DateOnly? IssueDate { get; init; }
/// 만기일자 (XPIR_DT)
public DateOnly? MaturityDate { get; init; }
public string? Currency { get; init; }
/// 최초발행금액 (FIRST_ISSU_AMT)
public decimal? FirstIssueAmount { get; init; }
/// 발행잔액 (ISSU_REMA)
public decimal? IssueRemaining { get; init; }
/// 표면이자율 (COUPON_RATE)
public decimal? CouponRate { get; init; }
/// 옵션구분코드 (OPTION_TPCD) — 9401CALL 9402PUT …
public string? OptionTpcd { get; init; }
/// 강제조기상환여부 (FORC_ERLY_RED_YN)
public bool? ForcedEarlyRedemption { get; init; }
/// 금리변동구분코드 (MR_CHG_TPCD) — 1고정 2변동 …
public string? RateChangeTpcd { get; init; }
/// 보증구분코드 (GRTY_TPCD) — 1보증 2무보증 …
public string? GuaranteeTpcd { get; init; }
/// 순위구분코드 (RANK_TPCD) — 1선순위 2후순위 …
public string? RankTpcd { get; init; }
/// 이자지급방법구분코드 (INT_PAY_WAY_TPCD)
public string? IntPayWayTpcd { get; init; }
/// 특이채권종류구분코드 (PARTICUL_BOND_KIND_TPCD) — 전환/교환/신주인수권 …
public string? ParticularBondKindTpcd { get; init; }
/// KIS 신용등급 코드 (발행당시)
public string? KisGrade { get; init; }
/// NICE 신용등급 코드
public string? NiceGrade { get; init; }
/// SCI(서울신용평가) 신용등급 코드
public string? SciGrade { get; init; }
/// KR(한국기업평가) 신용등급 코드
public string? KrGrade { get; init; }
/// 전자증권여부 (ELTSC_YN)
public bool? IsElectronicSecurity { get; init; }
}
public sealed class InterestInfo
{
/// 표면이자율 (COUPON_RATE)
public decimal? CouponRate { get; init; }
/// 이자지급방법구분코드 (INT_PAY_WAY_TPCD)
public string? IntPayWayTpcd { get; init; }
/// 이자지급주기기간수 (INT_PAY_CYCLE_TERMS)
public int? CycleTerms { get; init; }
/// 이자지급주기구분코드 (INT_PAY_CYCLE_TPCD) — 23개월 24분기 25반기 26년
public string? CycleTpcd { get; init; }
/// 이자지급시기구분코드 (INT_PAY_TIMS_TPCD) — 01후급 02선급 …
public string? PayTimingTpcd { get; init; }
/// 직전이표일 (BEFORE_DATE)
public DateOnly? BeforeCouponDate { get; init; }
/// 차기이표일 (AFTER_DATE)
public DateOnly? AfterCouponDate { get; init; }
}
public sealed class MarketInfo
{
/// 거래일 (BAS_DD)
public DateOnly TradeDate { get; init; }
/// 종가 (CLSPRC)
public decimal Close { get; init; }
/// 만기수익률 % (CLSPRC_YD 종가수익률 = YTM) — 미체결 시 null
public decimal? YieldToMaturity { get; init; }
/// 거래량 (ACC_TRDVOL)
public long Volume { get; init; }
}
}