using MediatR;
using System.ComponentModel.DataAnnotations;

namespace TakeoutSaaS.Application.App.Tenants.Commands;

/// <summary>
/// 更新租户基础信息命令。
/// </summary>
public sealed record UpdateTenantCommand : IRequest<Unit>
{
    /// <summary>
    /// 租户 ID（雪花算法）。
    /// </summary>
    public long TenantId { get; init; }

    /// <summary>
    /// 租户名称。
    /// </summary>
    [Required]
    [StringLength(128)]
    public string Name { get; init; } = string.Empty;

    /// <summary>
    /// 租户简称。
    /// </summary>
    [StringLength(64)]
    public string? ShortName { get; init; }

    /// <summary>
    /// 所属行业。
    /// </summary>
    [StringLength(64)]
    public string? Industry { get; init; }

    /// <summary>
    /// 联系人姓名。
    /// </summary>
    [StringLength(64)]
    public string? ContactName { get; init; }

    /// <summary>
    /// 联系人电话。
    /// </summary>
    [StringLength(32)]
    public string? ContactPhone { get; init; }

    /// <summary>
    /// 联系人邮箱。
    /// </summary>
    [StringLength(128)]
    public string? ContactEmail { get; init; }
}

