using CashLineERP.Domain.Common;

namespace CashLineERP.Domain.Organization;

public sealed class Branch : Entity
{
    public long Id { get; private set; }

    public long CompanyId { get; private set; }

    public string BranchCode { get; private set; } = string.Empty;

    public string BranchName { get; private set; } = string.Empty;

    public string BranchType { get; private set; } = "OPERATING";

    public string? TaxBranchCode { get; private set; }

    public string CountryCode { get; private set; } = "EG";

    public bool IsActive { get; private set; } = true;

    public Branch(
        long companyId,
        string branchCode,
        string branchName,
        string countryCode = "EG",
        string branchType = "OPERATING",
        string? taxBranchCode = null)
    {
        CompanyId = companyId;
        BranchCode = branchCode;
        BranchName = branchName;
        CountryCode = countryCode;
        BranchType = branchType;
        TaxBranchCode = taxBranchCode;
    }

    private Branch()
    {
    }
}
