using System;
using System.Collections.Generic;

namespace AyaNovaQBI
{
    internal class WorkOrderItem
    {
        public long Id { get; set; }
        public uint Concurrency { get; set; }
        public string Notes { get; set; }//"Summary" field
        public string Wiki { get; set; }
        public string CustomFields { get; set; }
        public List<string> Tags { get; set; } = new List<string>();


        public long WorkOrderId { get; set; }
        public string TechNotes { get; set; }
        public long? WorkOrderItemStatusId { get; set; }

        public string WorkOrderItemStatusNameViz { get; set; }

        public string WorkOrderItemStatusColorViz { get; set; }

        public long? WorkOrderItemPriorityId { get; set; }

        public string WorkOrderItemPriorityNameViz { get; set; }

        public string WorkOrderItemPriorityColorViz { get; set; }

        public DateTime? RequestDate { get; set; }
        public bool WarrantyService { get; set; } = false;
        public int Sequence { get; set; }

        public long? FromCSRId { get; set; }

        public string FromCSRViz { get; set; }

        //workaround for notification               

        public string Name { get; set; }

        //Principle

        public WorkOrder WorkOrder { get; set; }
        //dependents
        public List<WorkOrderItemExpense> Expenses { get; set; } = new List<WorkOrderItemExpense>();
        public List<WorkOrderItemLabor> Labors { get; set; } = new List<WorkOrderItemLabor>();
        public List<WorkOrderItemLoan> Loans { get; set; } = new List<WorkOrderItemLoan>();
        public List<WorkOrderItemPart> Parts { get; set; } = new List<WorkOrderItemPart>();
        public List<WorkOrderItemPartRequest> PartRequests { get; set; } = new List<WorkOrderItemPartRequest>();
        public List<WorkOrderItemScheduledUser> ScheduledUsers { get; set; } = new List<WorkOrderItemScheduledUser>();
        public List<WorkOrderItemTask> Tasks { get; set; } = new List<WorkOrderItemTask>();
        public List<WorkOrderItemTravel> Travels { get; set; } = new List<WorkOrderItemTravel>();
        public List<WorkOrderItemUnit> Units { get; set; } = new List<WorkOrderItemUnit>();
        public List<WorkOrderItemOutsideService> OutsideServices { get; set; } = new List<WorkOrderItemOutsideService>();
    }
}
