package cokr.xit.ens.modules.common.ctgy.intgrnbill.nv.service.process.model;

import cokr.xit.ens.modules.common.ctgy.intgrnbill.nv.service.process.model.config.able.Detail;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * 네이버페이 결제승인 응답데이터
 */
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Getter
@ToString
public class NvPayApplyRespData {
    @NotEmpty(message = "결제번호는 필수 입력값 입니다.")
    @Length(max = 50, message = "결제번호의 최대 길이를 초과 했습니다.")
    @Schema(required = true, title = "네이버페이 결제번호", example = " ")
    @JsonProperty("paymentId")  
    @JsonAlias({"payment_id"})
    @SerializedName(value = "paymentId", alternate = {"payment_id"})
    private String paymentId;
    @NotNull(message = "결제결과 상세정보는 필수 입력값 입니다.")
    @Schema(required = true, title = "결제결과 상세정보", example = " ")
    @Valid
    private Detail detail;
}
