using Lada.Framework.Data.Enums;
using Lada.Framework.DTO;
using System.ComponentModel.DataAnnotations;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Crm
{
    /// <summary>
    /// Đối tượng đại diện cho thông tin địa chỉ của khách hàng.
    /// </summary>
    public class CustomerAddressModel : BaseModel<int>
    {
        /// <summary>
        /// Địa chỉ.
        /// </summary>
        [MaxLength(512)]
        public string Address { get; set; }

        /// <summary>
        /// Địa chỉ đầy đủ.
        /// </summary>
        public string FullAddress { get; set; } = "";

        /// <summary>
        /// Id của tỉnh/thành phố.
        /// </summary>
        public int CityId { get; set; }

        /// <summary>
        /// Id của quận/huyện.
        /// </summary>
        public int DistrictId { get; set; }

        /// <summary>
        /// Id của phường/xã.
        /// </summary>
        public int WardId { get; set; }

        /// <summary>
        /// Số điện thoại liên hệ.
        /// </summary>
        [MaxLength(64)]
        public string ContactPhoneNumber { get; set; }

        /// <summary>
        /// Tên người liên hệ.
        /// </summary>
        [MaxLength(64)]
        public string ContactName { get; set; }

        #region Định vị
        /// <summary>
        /// Latitude của địa chỉ.
        /// </summary>
        public double Lat { get; set; }

        /// <summary>
        /// Longitude của địa chỉ.
        /// </summary>
        public double Long { get; set; }
        #endregion

        /// <summary>
        /// Loại địa chỉ.
        /// </summary>
        public AddressType AddressType { get; set; }

        /// <summary>
        /// Ghi chú.
        /// </summary>
        public string Note { get; set; } = "";

        #region Khách hàng
        /// <summary>
        /// Id của khách hàng.
        /// </summary>
        public int CustomerId { get; set; }
        #endregion
    }
}
