using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Tenants.Entities;

/// <summary>
/// 租户发票开票基础设置。
/// </summary>
public sealed class TenantInvoiceSetting : MultiTenantEntityBase
{
    /// <summary>
    /// 企业名称。
    /// </summary>
    public string CompanyName { get; set; } = string.Empty;

    /// <summary>
    /// 纳税人识别号。
    /// </summary>
    public string TaxpayerNumber { get; set; } = string.Empty;

    /// <summary>
    /// 注册地址。
    /// </summary>
    public string? RegisteredAddress { get; set; }

    /// <summary>
    /// 注册电话。
    /// </summary>
    public string? RegisteredPhone { get; set; }

    /// <summary>
    /// 开户银行。
    /// </summary>
    public string? BankName { get; set; }

    /// <summary>
    /// 银行账号。
    /// </summary>
    public string? BankAccount { get; set; }

    /// <summary>
    /// 是否启用电子普通发票。
    /// </summary>
    public bool EnableElectronicNormalInvoice { get; set; } = true;

    /// <summary>
    /// 是否启用电子专用发票。
    /// </summary>
    public bool EnableElectronicSpecialInvoice { get; set; }

    /// <summary>
    /// 是否启用自动开票。
    /// </summary>
    public bool EnableAutoIssue { get; set; }

    /// <summary>
    /// 自动开票单张最大金额。
    /// </summary>
    public decimal AutoIssueMaxAmount { get; set; } = 10_000m;
}
