using MediatR;
using System.Text.Json.Serialization;
using TakeoutSaaS.Application.App.Stores.Enums;
using TakeoutSaaS.Domain.Stores.Enums;
using TakeoutSaaS.Shared.Abstractions.Serialization;
namespace TakeoutSaaS.Application.App.Stores.Commands;
///
/// 租户端更新门店命令。
///
public sealed record UpdateStoreCommand : IRequest
{
///
/// 门店 ID。
///
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
public long Id { get; init; }
///
/// 门店名称。
///
public string Name { get; init; } = string.Empty;
///
/// 门店编码(可选,未传时保持原值)。
///
public string? Code { get; init; }
///
/// 联系电话。
///
public string ContactPhone { get; init; } = string.Empty;
///
/// 负责人。
///
public string ManagerName { get; init; } = string.Empty;
///
/// 门店地址。
///
public string Address { get; init; } = string.Empty;
///
/// 门店封面图。
///
public string? CoverImage { get; init; }
///
/// 营业状态。
///
public StoreBusinessStatus? BusinessStatus { get; init; }
///
/// 服务方式。
///
public IReadOnlyList? ServiceTypes { get; init; }
}