package go.kr.project.api.model;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

/**
 * 외부 VMIS-interface 신규 응답 래퍼
 * { "txId": "yyyyMMddHHmmssSSS12345678", "request": {"data": [...]}, "response": {"data": [...]} }
 *
 * 중요로직: 외부호출 프로젝트에서 요청/응답을 함께 반환하므로 해당 구조를 그대로 매핑한다.
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
@Getter
@Setter
public class ApiExchangeEnvelope<TReq, TRes> {

    /** 트랜잭션 ID */
    @JsonProperty("txId")
    private String txId;

    /** 요청 데이터 래퍼 */
    @JsonProperty("request")
    private Envelope<TReq> request;

    /** 응답 데이터 래퍼 */
    @JsonProperty("response")
    private Envelope<TRes> response;
}
