namespace TakeoutSaaS.TenantApi.Contracts.Product;

/// <summary>
/// 商品标签列表查询请求。
/// </summary>
public sealed class ProductLabelListRequest
{
    /// <summary>
    /// 门店 ID。
    /// </summary>
    public string StoreId { get; set; } = string.Empty;

    /// <summary>
    /// 关键字。
    /// </summary>
    public string? Keyword { get; set; }

    /// <summary>
    /// 状态（enabled/disabled）。
    /// </summary>
    public string? Status { get; set; }
}

/// <summary>
/// 保存商品标签请求。
/// </summary>
public sealed class SaveProductLabelRequest
{
    /// <summary>
    /// 门店 ID。
    /// </summary>
    public string StoreId { get; set; } = string.Empty;

    /// <summary>
    /// 标签 ID（编辑时传）。
    /// </summary>
    public string? Id { get; set; }

    /// <summary>
    /// 标签名称。
    /// </summary>
    public string Name { get; set; } = string.Empty;

    /// <summary>
    /// 标签颜色（HEX）。
    /// </summary>
    public string Color { get; set; } = "#1890ff";

    /// <summary>
    /// 排序值。
    /// </summary>
    public int Sort { get; set; }

    /// <summary>
    /// 状态（enabled/disabled）。
    /// </summary>
    public string Status { get; set; } = "enabled";
}

/// <summary>
/// 删除商品标签请求。
/// </summary>
public sealed class DeleteProductLabelRequest
{
    /// <summary>
    /// 门店 ID。
    /// </summary>
    public string StoreId { get; set; } = string.Empty;

    /// <summary>
    /// 标签 ID。
    /// </summary>
    public string LabelId { get; set; } = string.Empty;
}

/// <summary>
/// 修改商品标签状态请求。
/// </summary>
public sealed class ChangeProductLabelStatusRequest
{
    /// <summary>
    /// 门店 ID。
    /// </summary>
    public string StoreId { get; set; } = string.Empty;

    /// <summary>
    /// 标签 ID。
    /// </summary>
    public string LabelId { get; set; } = string.Empty;

    /// <summary>
    /// 状态（enabled/disabled）。
    /// </summary>
    public string Status { get; set; } = "enabled";
}

/// <summary>
/// 商品标签列表项响应。
/// </summary>
public sealed class ProductLabelItemResponse
{
    /// <summary>
    /// 标签 ID。
    /// </summary>
    public string Id { get; set; } = string.Empty;

    /// <summary>
    /// 标签名称。
    /// </summary>
    public string Name { get; set; } = string.Empty;

    /// <summary>
    /// 标签颜色（HEX）。
    /// </summary>
    public string Color { get; set; } = "#1890ff";

    /// <summary>
    /// 排序值。
    /// </summary>
    public int Sort { get; set; }

    /// <summary>
    /// 状态（enabled/disabled）。
    /// </summary>
    public string Status { get; set; } = "enabled";

    /// <summary>
    /// 关联商品数量。
    /// </summary>
    public int ProductCount { get; set; }

    /// <summary>
    /// 更新时间。
    /// </summary>
    public string UpdatedAt { get; set; } = string.Empty;
}
