using Lada.Framework.Data.Domains.Identity;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace Lada.Framework.Data.Domains.Categories
{
    /// <summary>
    /// Đại lý / FC
    /// </summary>
    public class Agency : BaseCategory
    {
        /// <summary>
        /// Mã đại lý
        /// </summary>
        [MaxLength(16)]
        public string Code { get; set; }

        /// <summary>
        /// Đại lý cha
        /// </summary>
        public int ParentId { get; set; }

        #region Địa chỉ

        public int CityId { get; set; }
        public int DistrictId { get; set; }
        public int WardId { get; set; }

        [MaxLength(512)]
        public string Address { get; set; }
        #endregion

        /// <summary>
        /// Người đại diện pháp lý (người của đại lý)
        /// Nếu là phòng ban của LADA thì giá trị là 0
        /// </summary>
        public int RepresentativeId { get; set; }

        /// <summary>
        /// Cán bộ quản lý (người của lada)
        /// </summary>
        public int ManagerId { get; set; }

        /// <summary>
        /// Trạng thái Agency
        /// </summary>
        public AgencyStatus Status { get; set; }

        /// <summary>
        /// Loại chi nhánh
        /// </summary>
        public AgencyType AgencyType { get; set; }


        #region Thông tin doanh nghiệp
        /// <summary>
        /// Tên doanh nghiệp
        /// </summary>
        [MaxLength(512)]
        public string CompanyName { get; set; }
        
        [MaxLength(128)]
        public string CompanyPhone { get; set; }

        [MaxLength(128)]
        public string FounderName { get; set; }

        /// <summary>
        /// Mã số thuế
        /// </summary>
        [MaxLength(128)]
        public string CompanyTaxCode { get; set; }

        /// <summary>
        /// Địa chỉ công ty / xuất hóa đơn
        /// </summary>
        [MaxLength(512)]
        public string CompanyAddress { get; set; }
        #endregion


        // Thêm danh sách các khu vực mà chi nhánh quản lý
        //public ICollection<Location> Locations { get; set; }


        //public virtual ICollection<User> Users { get; set; }

    }

    public enum AgencyStatus
    {
        [Description("Chờ kích hoạt")]
        WaitToActive = 1,
        [Description("Đang hoạt động")]
        Active = 3,
        [Description("Khóa 1 chiều")]
        Locked1 = 4,
        [Description("Dừng hoạt động")]
        Stopped = 5
    }
    public enum AgencyType
    {
        [Description("Phòng ban của LADA")]
        LadaOffice = 1,
        [Description("Chi nhánh nhượng quyền")]
        Franchise = 2,
        [Description("Chi nhánh của LADA")]
        LadaBranch = 3
    }
}
