using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WorkFlowCheck.Common.Enums;
using WorkFlowCheck.Common.Helper;

namespace WorkFlowCheck.Common.DTO
{
    public class CheckListHeaderDTO
    {
        public int Id { get; set; }
        public int CheckListTemplateHeaderId { get; set; }
        public CheckListTemplateHeaderDTO? CheckListTemplateHeaderDTO { get; set; }

        [DisplayName("Státusz")]
        public CheckStatus CheckStatus { get; set; }

        public string StatusName => DisplayNameHelper.GetEnumDisplayName(CheckStatus);

        [DisplayName("Dátum")]
        public DateTime DateExecution { get; set; }

        [DisplayName("Ellenőrző")]
        public int UserId { get; set; }
        public UserDTO? UserDTO { get; set; }
        
        [DisplayName("Jóváhagyó")]
        public int? AcceptUserId { get; set; }
        public UserDTO? AcceptUserDTO { get; set; }

        [DisplayName("Megnevezés")]
        public string ShortName { get; set; } = null!;

        [DisplayName("Leírás")]
        public string Description { get; set; } = null!;

        [DisplayName("Sorszám")]
        public string DocumentNumber { get; set; } = null!;

        [DisplayName("Azonosító")]
        public Guid GuidNumber { get; set; }

        [DisplayName("Stornózva")]
        public bool IsStorno { get; set; }

        [DisplayName("Szerkeszthető")]
        public bool IsEditable { get; set; }
        
        public ICollection<CheckListRowDTO>? CheckListRowDTO { get; set; } = new List<CheckListRowDTO>();

        public CheckListHeaderDTO()
        {
            CheckListRowDTO = new List<CheckListRowDTO>();
        }
    }
}
