using CMSMicroservice.Domain.Common;

namespace CMSMicroservice.Domain.Entities;

/// <summary>
/// انبار (برای آینده - چند انبار)
/// </summary>
public class Warehouse : BaseAuditableEntity
{
    // ========== اطلاعات اصلی ==========
    
    /// <summary>
    /// نام انبار
    /// </summary>
    public string Name { get; set; } = null!;
    
    /// <summary>
    /// کد انبار
    /// </summary>
    public string Code { get; set; } = null!;
    
    /// <summary>
    /// آدرس انبار
    /// </summary>
    public string? Address { get; set; }
    
    // ========== تنظیمات ==========
    
    /// <summary>
    /// انبار پیش‌فرض سیستم
    /// </summary>
    public bool IsDefault { get; set; }
    
    /// <summary>
    /// وضعیت فعال/غیرفعال
    /// </summary>
    public bool IsActive { get; set; } = true;
    
    // ========== Navigation Properties ==========
    
    /// <summary>
    /// آیتم‌های موجودی در این انبار
    /// </summary>
    public ICollection<InventoryItem> InventoryItems { get; set; } = new List<InventoryItem>();
}