using Lada.Framework.DTO;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.DriverApp
{
    /// <summary>
    /// Model cập nhật trạng thái lấy hàng cho Driver App
    /// </summary>
    public class DriverAppPickupModel : BaseModel<int>
    {
        /// <summary>
        /// ID đại lý
        /// </summary>
        public int AgencyId { get; set; }

        /// <summary>
        /// Danh sách media (ảnh, video)
        /// </summary>
        public List<IFormFile>? MediaList { get; set; }
    }

    /// <summary>
    /// Model cập nhật trạng thái giao hàng cho Driver App
    /// </summary>
    public class DriverAppDeliveryModel : BaseModel<int>
    {
        /// <summary>
        /// ID đại lý
        /// </summary>
        public int AgencyId { get; set; }

        /// <summary>
        /// Danh sách media (ảnh, video)
        /// </summary>
        public List<IFormFile>? MediaList { get; set; }
    }

    /// <summary>
    /// Model cập nhật trạng thái thất bại cho Driver App
    /// </summary>
    public class DriverAppFailModel : BaseModel<int>
    {
        /// <summary>
        /// Lý do thất bại
        /// </summary>
        public string Reason { get; set; }

        /// <summary>
        /// Loại cập nhật thất bại: lấy hàng, giao hàng
        /// </summary>
        public DriverAppFailType Type { get; set; }

        /// <summary>
        /// Danh sách media (ảnh, video) minh chứng thất bại (không bắt buộc)
        /// </summary>
        public List<IFormFile>? MediaList { get; set; }
    }

    /// <summary>
    /// Enum loại thất bại cho Driver App
    /// </summary>
    public enum DriverAppFailType
    {
        /// <summary>
        /// Lấy hàng thất bại
        /// </summary>
        PickupFail = 1,

        /// <summary>
        /// Giao hàng thất bại
        /// </summary>
        DeliveryFail = 2
    }
}