using Lada.Framework.Data.Domains.Cms;
using Lada.Framework.Data.Domains.Hr;
using Lada.Framework.Infrastructures.Helpers;

namespace Ladaer.BackEnd.Infrastructures.DTO.Items.Hr
{
    public class JobPostItem
    {
        public int Id { get; set; }

        /// <summary>
        /// Tiêu đề bài viết
        /// </summary>
        public required string Title { get; set; }



        /// <summary>
        /// Thời gian tạo
        /// </summary>
        public required string CreatedTime { get; set; }

        /// <summary>
        /// Thời gian cập nhật
        /// </summary>
        public required string CreatedBy { get; set; }
        public required string Thumbnail { get; set; }
        public required string Slug { get; set; }



        #region Thông tin chung
        
        /// <summary>
        /// Mô tả công việc
        /// </summary>
        public required string Description { get; set; }

        /// <summary>
        /// Yêu cầu kinh nghiệm (ví dụ: 2 năm c++)
        /// </summary>
        
        public required string ExperienceRequirements { get; set; }

        /// <summary>
        /// Địa chỉ làm việc
        /// </summary>
        
        public required string WorkingAddress { get; set; }

        /// <summary>
        /// Loại hình công việc
        /// </summary>
        public required string JobType { get; set; }
        #endregion

        /// <summary>
        /// Ngày bắt đầu
        /// </summary>
        public required string StartDate { get; set; }

        /// <summary>
        /// Ngày kết thúc
        /// </summary>
        public required string EndDate { get; set; }

        /// <summary>
        /// Email tiếp nhận CV
        /// </summary>
        public required string Email { get; set; }

        /// <summary>
        /// Phòng ban
        /// </summary>
        public required string Agency { get; set; }

        /// <summary>
        /// Phòng ban
        /// </summary>
        public int AgencyId { get; set; }

        /// <summary>
        /// Vị trí ứng tuyển
        /// </summary>
        public required string Position { get; set; }

        #region Lương

        /// <summary>
        /// Mức lương tối thiểu
        /// </summary>
        public decimal MinSalary { get; set; }

        /// <summary>
        /// Mức lương tối đa
        /// </summary>
        public decimal MaxSalary { get; set; }
        #endregion

        /// <summary>
        /// Trạng thái tin tuyển dụng: mở / đóng
        /// </summary>
        public JobStatus JobStatus { get; set; }


        /// <summary>
        /// Trạng thái tin tuyển dụng: mở / đóng
        /// </summary>
        public string JobStatusStr => JobStatus.GetDescription();

        public int CandidateCount { get; set; }
    }
}
