package cz.moneta.test.dsl.payment_engine.model;

import lombok.*;

import java.math.BigDecimal;
import java.util.List;

@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = false)
public class CustFeeCalculatorResponse {
    public List<FeeList> fees;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class FeeList {
        private ForeignFeeTypes feeCode;
        private CustFeeCalculatorResponse.FeeList.FeeAmount feeAmount = new CustFeeCalculatorResponse.FeeList.FeeAmount();
        private CustFeeCalculatorResponse.FeeList.FeeAmount feeAmountInAccountCurrency = new CustFeeCalculatorResponse.FeeList.FeeAmount();
        private CustFeeCalculatorResponse.FeeList.FeeAmount feeAmountInPaymentCurrency = new CustFeeCalculatorResponse.FeeList.FeeAmount();
        private String externalFeeDescription;
        private String externalFeeCode;

        @Data
        @AllArgsConstructor
        @NoArgsConstructor
        @Builder
        public static class FeeAmount {
            private BigDecimal value;
            private String currency;
        }

        public enum ForeignFeeTypes {
            BOF_STP,
            BOF_URGP
        }
    }

}
