using MediatR;
using System.ComponentModel.DataAnnotations;
using TakeoutSaaS.Application.App.Merchants.Dto;
using TakeoutSaaS.Domain.Merchants.Enums;

namespace TakeoutSaaS.Application.App.Merchants.Commands;

/// <summary>
/// 更新合同状态。
/// </summary>
public sealed record UpdateMerchantContractStatusCommand(
    [property: Required] long MerchantId,
    [property: Required] long ContractId,
    [property: Required] ContractStatus Status,
    DateTime? SignedAt,
    string? Reason) : IRequest<MerchantContractDto>;
