namespace WalletService.Infrastructure.PaymentGateways;

/// <summary>
/// EN: Configuration options for VN Pay payment gateway.
/// VI: Cac tuy chon cau hinh cho cong thanh toan VN Pay.
/// </summary>
public class VnPayOptions
{
    /// <summary>
    /// EN: Configuration section name.
    /// VI: Ten section cau hinh.
    /// </summary>
    public const string SectionName = "VnPay";

    /// <summary>
    /// EN: Merchant terminal code assigned by VN Pay.
    /// VI: Ma terminal merchant duoc VN Pay cap.
    /// </summary>
    public string TmnCode { get; set; } = string.Empty;

    /// <summary>
    /// EN: Secret key for HMAC-SHA512 hash generation.
    /// VI: Khoa bi mat de tao hash HMAC-SHA512.
    /// </summary>
    public string HashSecret { get; set; } = string.Empty;

    /// <summary>
    /// EN: VN Pay payment URL (sandbox or production).
    /// VI: URL thanh toan VN Pay (sandbox hoac production).
    /// </summary>
    public string PaymentUrl { get; set; } = "https://sandbox.vnpayment.vn/paymentv2/vpcpay.html";

    /// <summary>
    /// EN: Return URL after payment completion.
    /// VI: URL tra ve sau khi hoan thanh thanh toan.
    /// </summary>
    public string ReturnUrl { get; set; } = string.Empty;

    /// <summary>
    /// EN: VN Pay API URL for querying transaction status.
    /// VI: URL API VN Pay de truy van trang thai giao dich.
    /// </summary>
    public string ApiUrl { get; set; } = "https://sandbox.vnpayment.vn/merchant_webapi/api/transaction";
}
