// EN: Command to update merchant information.
// VI: Command để cập nhật thông tin merchant.

using MediatR;

namespace MerchantService.API.Application.Commands.Merchants;

/// <summary>
/// EN: Command to update merchant information.
/// VI: Command để cập nhật thông tin merchant.
/// </summary>
public record UpdateMerchantCommand : IRequest<bool>
{
    /// <summary>
    /// EN: Business/Company name.
    /// VI: Tên doanh nghiệp/công ty.
    /// </summary>
    public string? BusinessName { get; init; }
    
    /// <summary>
    /// EN: Tax identification number.
    /// VI: Mã số thuế.
    /// </summary>
    public string? TaxId { get; init; }
    
    /// <summary>
    /// EN: Business license number.
    /// VI: Số giấy phép kinh doanh.
    /// </summary>
    public string? BusinessLicenseNumber { get; init; }
    
    /// <summary>
    /// EN: Company registration number.
    /// VI: Số đăng ký công ty.
    /// </summary>
    public string? CompanyRegistrationNumber { get; init; }
    
    /// <summary>
    /// EN: Bank code for settlement.
    /// VI: Mã ngân hàng để thanh toán.
    /// </summary>
    public string? BankCode { get; init; }
    
    /// <summary>
    /// EN: Bank name.
    /// VI: Tên ngân hàng.
    /// </summary>
    public string? BankName { get; init; }
    
    /// <summary>
    /// EN: Bank account number.
    /// VI: Số tài khoản ngân hàng.
    /// </summary>
    public string? BankAccountNumber { get; init; }
    
    /// <summary>
    /// EN: Bank account holder name.
    /// VI: Tên chủ tài khoản.
    /// </summary>
    public string? BankAccountHolderName { get; init; }
}
