using MediatR;

namespace TakeoutSaaS.Application.App.Tenants.Commands;

/// <summary>
/// 更新租户基本信息命令。
/// </summary>
public sealed record UpdateTenantCommand : IRequest
{
    /// <summary>
    /// 租户 ID（雪花算法，字符串传输）。
    /// </summary>
    public required string TenantId { get; init; }

    /// <summary>
    /// 租户名称。
    /// </summary>
    public required string Name { get; init; }

    /// <summary>
    /// 租户简称。
    /// </summary>
    public string? ShortName { get; init; }

    /// <summary>
    /// 法人/公司主体名称。
    /// </summary>
    public string? LegalEntityName { get; init; }

    /// <summary>
    /// 所属行业。
    /// </summary>
    public string? Industry { get; init; }

    /// <summary>
    /// LOGO 图片地址。
    /// </summary>
    public string? LogoUrl { get; init; }

    /// <summary>
    /// 封面图地址。
    /// </summary>
    public string? CoverImageUrl { get; init; }

    /// <summary>
    /// 官网地址。
    /// </summary>
    public string? Website { get; init; }

    /// <summary>
    /// 国家/地区。
    /// </summary>
    public string? Country { get; init; }

    /// <summary>
    /// 省份。
    /// </summary>
    public string? Province { get; init; }

    /// <summary>
    /// 城市。
    /// </summary>
    public string? City { get; init; }

    /// <summary>
    /// 详细地址。
    /// </summary>
    public string? Address { get; init; }

    /// <summary>
    /// 联系人姓名。
    /// </summary>
    public string? ContactName { get; init; }

    /// <summary>
    /// 联系人电话。
    /// </summary>
    public string? ContactPhone { get; init; }

    /// <summary>
    /// 联系人邮箱。
    /// </summary>
    public string? ContactEmail { get; init; }

    /// <summary>
    /// 标签（逗号分隔）。
    /// </summary>
    public string? Tags { get; init; }

    /// <summary>
    /// 备注。
    /// </summary>
    public string? Remarks { get; init; }
}
