package com.zioinfo.mall.gateway;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.Map;

/**
 * Avalara AvaTax 어댑터 (mall.tax.provider=avalara). 키는 환경변수 AVALARA_API_KEY만.
 * 키 없으면 비활성. 실연동은 운영 배포 시 구현.
 */
@Component
@ConditionalOnProperty(name = "mall.tax.provider", havingValue = "avalara")
public class AvalaraCalculator implements TaxCalculator {

    @Value("${AVALARA_API_KEY:}")
    private String apiKey;

    @Override
    public Map<String, Object> calculate(BigDecimal amount, String zip, String state) {
        if (apiKey == null || apiKey.isBlank()) {
            throw new IllegalStateException("ERR-TAX-CONFIG: AVALARA_API_KEY 미설정");
        }
        throw new UnsupportedOperationException("ERR-TAX-IMPL: Avalara 실연동은 운영 배포 시 구현");
    }

    @Override
    public String provider() {
        return "avalara";
    }
}
