using ComputerShopDataModels.Enums;
using ComputerShopDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace ComputerShopContracts.ViewModels
{
    public class SupplyViewModel : ISupplyModel
    {
        [DisplayName("Статус")]
        public SupplyStatus Status { get; set; } = SupplyStatus.Неизвестен;

        [DisplayName("Дата создания")]
        public DateTime DateCreate { get; set; } = DateTime.Now;

        [DisplayName("Дата выполнения")]
        public DateTime? DateImplement { get; set; }

        [DisplayName("Номер")]
        public int Id { get; set; }

        [DisplayName("Номер клиента")]
        public int ClientId { get; set; }
        [DisplayName("Номер получения")]
        public int? ReceivingId { get; set; }
        [DisplayName("Номер комплектующего")]
        public int? ComponentId { get; set; }
        public Dictionary<int, IOrderModel> SupplyOrders
        {
            get;
            set;
        } = new();

        public Dictionary<int, IComponentModel> SupplyComponents
        {
            get;
            set;
        } = new();

        [JsonConstructor]
        public SupplyViewModel(Dictionary<int, IOrderModel> SupplyOrders)
        {
            this.SupplyOrders = SupplyOrders;
        }

        public SupplyViewModel()
        {
        }
    }
}
