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

namespace TakeoutSaaS.Domain.Merchants.Entities;

/// <summary>
/// 商户提交的资质或证照材料。
/// </summary>
public sealed class MerchantDocument : MultiTenantEntityBase
{
    /// <summary>
    /// 所属商户标识。
    /// </summary>
    public long MerchantId { get; set; }

    /// <summary>
    /// 证照类型。
    /// </summary>
    public MerchantDocumentType DocumentType { get; set; } = MerchantDocumentType.BusinessLicense;

    /// <summary>
    /// 审核状态。
    /// </summary>
    public MerchantDocumentStatus Status { get; set; } = MerchantDocumentStatus.Pending;

    /// <summary>
    /// 证照文件链接。
    /// </summary>
    public string FileUrl { get; set; } = string.Empty;

    /// <summary>
    /// 证照编号。
    /// </summary>
    public string? DocumentNumber { get; set; }

    /// <summary>
    /// 签发日期。
    /// </summary>
    public DateTime? IssuedAt { get; set; }

    /// <summary>
    /// 到期日期。
    /// </summary>
    public DateTime? ExpiresAt { get; set; }

    /// <summary>
    /// 审核备注或驳回原因。
    /// </summary>
    public string? Remarks { get; set; }
}
