using TakeoutSaaS.Domain.Merchants.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Merchants.Entities;

/// <summary>
/// 商户员工账号，支持门店维度分配。
/// </summary>
public sealed class MerchantStaff : MultiTenantEntityBase
{
    /// <summary>
    /// 所属商户标识。
    /// </summary>
    public long MerchantId { get; set; }

    /// <summary>
    /// 可选的关联门店 ID。
    /// </summary>
    public long? StoreId { get; set; }

    /// <summary>
    /// 员工姓名。
    /// </summary>
    public string Name { get; set; } = string.Empty;

    /// <summary>
    /// 手机号。
    /// </summary>
    public string Phone { get; set; } = string.Empty;

    /// <summary>
    /// 邮箱地址。
    /// </summary>
    public string? Email { get; set; }

    /// <summary>
    /// 登录账号 ID（指向统一身份体系）。
    /// </summary>
    public long? IdentityUserId { get; set; }

    /// <summary>
    /// 员工角色类型。
    /// </summary>
    public StaffRoleType RoleType { get; set; } = StaffRoleType.FrontDesk;

    /// <summary>
    /// 员工状态。
    /// </summary>
    public StaffStatus Status { get; set; } = StaffStatus.Active;

    /// <summary>
    /// 自定义权限（JSON）。
    /// </summary>
    public string? PermissionsJson { get; set; }
}
