package model import kotlinx.serialization.Serializable @Serializable data class StockBalanceResponse( val rt_cd: String = "", val msg1: String = "", val output1: List = emptyList(), val output2: List = emptyList() ) @Serializable data class StockHolding( val pdno: String = "", // 상품번호 val prdt_name: String = "", // 상품명 val hldg_qty: String = "0", // 보유수량 val pchs_avg_pric: String = "0", // 매입평균가 val prpr: String = "0", // 현재가 val evlu_pfls_rt: String = "0.0", // 평가손익률 val evlu_amt: String = "0" // 평가금액 ) @Serializable data class BalanceSummary( val tot_evlu_amt: String = "0", // 총 평가금액 val evlu_pfls_rt: String = "0.0", // 총 수익률 (에러 발생 지점: 기본값 추가로 해결) val asst_icrt: String = "0.0", // 일부 환경에서 수익률 필드명 val nass_amt: String = "0" // 순자산 금액 ) @Serializable data class RankingResponse( val output: List = emptyList() ) enum class RankingType(val code: String, val title: String) { RISE("0", "상승"), FALL("1", "하락"), VOLUME("2", "거래량"), AMOUNT("3", "금액"), OVERTIME("4", "시간외"), // 웹 소스의 시간외 상승 TR 연동 SHORT_HOT("5", "단기추천") // 단기 과열 및 추천 종목 } @Serializable data class RankingStock( val hts_kor_alph_nm: String = "", // 종목명 val mkrtc_objt_iscd: String = "", // 종목코드 val stck_prpr: String = "0", // 현재가 val prdy_ctrt: String = "0.0" // 등락률 ) @Serializable data class OverseasRankingResponse( val output: List = emptyList() ) @Serializable data class OverseasRankingStock( val hts_kor_alph_nm: String, // 종목명 val mkrtc_objt_iscd: String, // 종목코드 (Ticker) val last: String, // 현재가 val diff: String, // 전일대비 val rate: String // 등락률 ) { // 국내용 RankingStock과 호환되도록 변환 함수 추가 fun toRankingStock() = RankingStock( hts_kor_alph_nm = hts_kor_alph_nm, mkrtc_objt_iscd = mkrtc_objt_iscd, stck_prpr = last, prdy_ctrt = rate ) }