Response.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. namespace Application.Features.Api.Stocks.GetBondDetail;
  2. public sealed class Response
  3. {
  4. /// <summary>종목코드 (ISIN)</summary>
  5. public required string Isin { get; init; }
  6. /// <summary>채권 마스터 (getBondStatInfo) — 없으면 null (KRX 일별시세만 있는 경우)</summary>
  7. public MasterInfo? Master { get; init; }
  8. /// <summary>이자지급 정보 (getIntPayInfo) — 없으면 null</summary>
  9. public InterestInfo? Interest { get; init; }
  10. /// <summary>KRX 일별매매 최신 시세 (BondDailyTrade) — 없으면 null</summary>
  11. public MarketInfo? Market { get; init; }
  12. public sealed class MasterInfo
  13. {
  14. public string? Name { get; init; }
  15. public int? IssucoCustno { get; init; }
  16. /// <summary>종목종류코드 (SECN_KACD)</summary>
  17. public string? SecnKacd { get; init; }
  18. public DateOnly? IssueDate { get; init; }
  19. /// <summary>만기일자 (XPIR_DT)</summary>
  20. public DateOnly? MaturityDate { get; init; }
  21. public string? Currency { get; init; }
  22. /// <summary>최초발행금액 (FIRST_ISSU_AMT)</summary>
  23. public decimal? FirstIssueAmount { get; init; }
  24. /// <summary>발행잔액 (ISSU_REMA)</summary>
  25. public decimal? IssueRemaining { get; init; }
  26. /// <summary>표면이자율 (COUPON_RATE)</summary>
  27. public decimal? CouponRate { get; init; }
  28. /// <summary>옵션구분코드 (OPTION_TPCD) — 9401CALL 9402PUT …</summary>
  29. public string? OptionTpcd { get; init; }
  30. /// <summary>강제조기상환여부 (FORC_ERLY_RED_YN)</summary>
  31. public bool? ForcedEarlyRedemption { get; init; }
  32. /// <summary>금리변동구분코드 (MR_CHG_TPCD) — 1고정 2변동 …</summary>
  33. public string? RateChangeTpcd { get; init; }
  34. /// <summary>보증구분코드 (GRTY_TPCD) — 1보증 2무보증 …</summary>
  35. public string? GuaranteeTpcd { get; init; }
  36. /// <summary>순위구분코드 (RANK_TPCD) — 1선순위 2후순위 …</summary>
  37. public string? RankTpcd { get; init; }
  38. /// <summary>이자지급방법구분코드 (INT_PAY_WAY_TPCD)</summary>
  39. public string? IntPayWayTpcd { get; init; }
  40. /// <summary>특이채권종류구분코드 (PARTICUL_BOND_KIND_TPCD) — 전환/교환/신주인수권 …</summary>
  41. public string? ParticularBondKindTpcd { get; init; }
  42. /// <summary>KIS 신용등급 코드 (발행당시)</summary>
  43. public string? KisGrade { get; init; }
  44. /// <summary>NICE 신용등급 코드</summary>
  45. public string? NiceGrade { get; init; }
  46. /// <summary>SCI(서울신용평가) 신용등급 코드</summary>
  47. public string? SciGrade { get; init; }
  48. /// <summary>KR(한국기업평가) 신용등급 코드</summary>
  49. public string? KrGrade { get; init; }
  50. /// <summary>전자증권여부 (ELTSC_YN)</summary>
  51. public bool? IsElectronicSecurity { get; init; }
  52. }
  53. public sealed class InterestInfo
  54. {
  55. /// <summary>표면이자율 (COUPON_RATE)</summary>
  56. public decimal? CouponRate { get; init; }
  57. /// <summary>이자지급방법구분코드 (INT_PAY_WAY_TPCD)</summary>
  58. public string? IntPayWayTpcd { get; init; }
  59. /// <summary>이자지급주기기간수 (INT_PAY_CYCLE_TERMS)</summary>
  60. public int? CycleTerms { get; init; }
  61. /// <summary>이자지급주기구분코드 (INT_PAY_CYCLE_TPCD) — 23개월 24분기 25반기 26년</summary>
  62. public string? CycleTpcd { get; init; }
  63. /// <summary>이자지급시기구분코드 (INT_PAY_TIMS_TPCD) — 01후급 02선급 …</summary>
  64. public string? PayTimingTpcd { get; init; }
  65. /// <summary>직전이표일 (BEFORE_DATE)</summary>
  66. public DateOnly? BeforeCouponDate { get; init; }
  67. /// <summary>차기이표일 (AFTER_DATE)</summary>
  68. public DateOnly? AfterCouponDate { get; init; }
  69. }
  70. public sealed class MarketInfo
  71. {
  72. /// <summary>거래일 (BAS_DD)</summary>
  73. public DateOnly TradeDate { get; init; }
  74. /// <summary>종가 (CLSPRC)</summary>
  75. public decimal Close { get; init; }
  76. /// <summary>만기수익률 % (CLSPRC_YD 종가수익률 = YTM) — 미체결 시 null</summary>
  77. public decimal? YieldToMaturity { get; init; }
  78. /// <summary>거래량 (ACC_TRDVOL)</summary>
  79. public long Volume { get; init; }
  80. }
  81. }