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

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Orders.Detail
{
    /// <summary>
    /// Đối tượng đại diện cho thông tin theo dõi chi tiết đơn hàng.
    /// </summary>
    public class OrderDetailTrackModel : BaseModel<Guid>
    {
        /// <summary>
        /// Loại hành động theo dõi.
        /// </summary>
        public TrackActionType TrackActionType { get; set; }

        /// <summary>
        /// Chuỗi mô tả loại hành động theo dõi.
        /// </summary>
        public string TrackActionTypeStr => TrackActionType.GetDescription();

        /// <summary>
        /// Tên hành động theo dõi.
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Nguồn hành động.
        /// </summary>
        public ActionSource ActionSource { get; set; }

        /// <summary>
        /// Dữ liệu trước khi thay đổi.
        /// </summary>
        public string DataBefore { get; set; }

        /// <summary>
        /// Dữ liệu sau khi thay đổi.
        /// </summary>
        public string DataAfter { get; set; }

        /// <summary>
        /// Quy định hiển thị của đơn hàng: khách hàng, nội bộ hoặc cả 2.
        /// </summary>
        public OrderTrackType OrderTrackType { get; set; }

        /// <summary>
        /// Id của người phụ trách.
        /// </summary>
        public int? PicId { get; set; }

        /// <summary>
        /// Tên người phụ trách.
        /// </summary>
        public string PicUserName { get; set; }

        /// <summary>
        /// Số điện thoại của người phụ trách.
        /// </summary>
        public string PhoneContact { get; set; }

        /// <summary>
        /// Id của đơn hàng.
        /// </summary>
        public int OrderId { get; set; }
    }
}
