package com.sonic.lion.channel.config;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import java.math.BigDecimal;

@Data
@Configuration
public class StripeConfig {

    @Value("${stripe.apiKey}")
    private String apiKey;

    @Value("${stripe.webhookSecret}")
    private String webhookSecret;

    @Value("${stripe.mode}")
    private String mode;

    @Value("${stripe.paymentFeeBase}")
    private Long paymentFeeBase;

    @Value("${stripe.paymentFeeRate}")
    private BigDecimal paymentFeeRate;

    @Value("${stripe.withdrawFeeBase}")
    private Long withdrawFeeBase;

    @Value("${stripe.withdrawFeeRate}")
    private Double withdrawFeeRate;

    // Webhook secrets for different event types
    @Value("${stripe.webhookSec.payment}")
    private String paymentWebhookSecret;

    @Value("${stripe.webhookSec.payout}")
    private String payoutWebhookSecret;

    @Value("${stripe.webhookSec.subscription}")
    private String subscriptionWebhookSecret;

    @Value("${stripe.webhookSec.dispute}")
    private String disputeWebhookSecret;

    // Session URLs
    @Value("${stripe.session.successUrl:}")
    private String successUrl;

    @Value("${stripe.session.cancelUrl:}")
    private String cancelUrl;

    @Value("${stripe.sub.successUrl:}")
    private String subSuccessUrl;

    @Value("${stripe.sub.cancelUrl:}")
    private String subCancelUrl;

    // Portal URL
    @Value("${stripe.portal.returnUrl:}")
    private String returnUrl;
}
