using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace FrontendWebApi.Models
{
    public class EmergencyDeviceGroup
    {
        public string device_disaster { get; set; }
        public string device_building_guid { get; set; }
        public string device_floor_guid { get; set; }
        public string device_system_category_layer2 { get; set; }
        public string device_system_category_layer3 { get; set; }
        public int device_amount { get; set; }
        public string disater_name { get; set; }
        public string building_name { get; set; }
        public string floor_name { get; set; }
        public string system_category_layer2 { get; set; }
        public string system_category_layer3 { get; set; }

    }

    //public class GetDeviceGroup
    //{
    //    public List<KeyValue> disaster { get; set; }
    //    public List<GroupBuildings> groupBuildings { get; set; }

    //}

    public class GetDeviceGroup : KeyValue
    {
        public List<GroupBuildings> groupBuildings { get; set; }
    }

    public class GroupBuildings
    {
        public string guid { get; set; }
        public string name { get; set; }
        public int device_amount { get; set; }
        public List<GroupFloor> groupFloors { get; set; }

    }

    public class GroupFloor
    {
        public string guid { get; set; }
        public string name { get; set; }
        public List<GroupLayer2> groupLayer2s { get; set; }
    }

    public class GroupLayer2
    {
        public string value { get; set; }
        public string name { get; set; }
        public int device_amount { get; set; }
        public List<GroupLayer3> groupLayer3s { get; set; }
    }

    public class GroupLayer3
    {
        public string value { get; set; }
        public string name { get; set; }
        public int device_amount { get; set; }
    }

    public class building_floor
    {
        public string floor_guid { get; set; }
        public string floorname { get; set; }
        public string building_guid { get; set; }
        public string buildingname { get; set; }
    }

    public class BuildingToF
    {
        public string building_guid { get; set; }
        public string building_name { get; set; }
        public List<FloorForB> floors { get; set; }
    }
    public class FloorForB
    {
        public string floor_guid { get; set; }
        public string floor_name { get; set; }
    }

    public class deviceMenu
    {
        public string device_guid { get; set; }
        public string device_number { get; set; }
        public string device_name { get; set; }
        public string building_guid { get; set; }
        public string building_name { get; set; }
        public string ip_address { get; set; }
        public string layer2 { get; set; }
        public string layer2_name { get; set; }
        public string layer3 { get; set; }
        public string layer3_name { get; set; }
        public int disaster { get; set; }
        public string disaster_name { get; set; }
        public string floorname { get; set; }
        public string alarm_timestamp { get; set; }
        public string function { get; set; }
        public string floorguid { get; set; }
    }
    public class selectdevice
    {
        public List<int> select_disasters { get; set; }
        public string selectbuilding { get; set; }
        public List<string> select_Floors { get; set; }
        public List<string> select_Layer3 { get; set; }
    }

    public class Eventpost
    {
        public int disaster { get; set; }
        public string build { get; set; }
        public byte type { get; set; }
        public string device { get; set; }
    }

    public class EmergencySetting
    {
        public string emergency_guid { get; set; }
        public int priority { get; set; }
        public int big_setting { get; set; }
        public string full_name { get; set; }
        public string set_doing { get; set; }
        public string url_text { get; set; }
        public string url_link { get; set; }
        public byte not_answer { get; set; }
    }

    public class EmergencySettingTable : EmergencySetting
    {
        public string big_setting_name { get; set; }
    }
    public class EmergencyitemWithguid : EmergencySettingTable
    {
        public string emergency_item_guid { get; set; }
    }

    public class Emergencyitempost
    {
        public string emergency_guid { get; set; }
        public string big_setting { get; set; }
        public string step_setting { get; set; }
        public string event_guid { get; set; }
        public byte make_item { get; set; }
    }

    public class Itempost
    {
        public string eventguid { get; set; }
        public byte choose { get; set; }
        public string reason { get; set; }
    }

    public class Eventitem
    {
        private string updated_at;
        public string big_setting { get; set; }
        public string step_setting { get; set; }
        public byte finished { get; set; }
        public string Updated_at { get { return Convert.ToDateTime(updated_at).ToString("yyyy-MM-dd HH:mm:ss"); } set { updated_at = value; } }
        public string reason { get; set; }

    }

    public class EmergencyContact
    {
        public string emergency_member_guid { get; set; }
        public int grouping { get; set; }
        public string full_name { get; set; }
        public int department { get; set; }
        public string phone { get; set; }
        public string lineid { get; set; }
        public string email { get; set; }
    }

    public class EmergencyContactTable : EmergencyContact
    {
        public string groupingName { get; set; }
        public string departmentName { get; set; }
    }

    public class AlarmObj
    {
        public List<AlarmorionString> alarmorion { get; set; }
        public List<BuildingAlarmDeviceAmount> buildingAlarmDeviceAmount { get; set; }
    } 

    public class AlarmorionString
    {
        public string device_number { get; set; }
        public string alarm_timestamp { get; set; }
        public byte finish { get; set; } = 1;
    }

    public class BuildingAlarmDeviceAmount
    {
        public string building_guid { get; set; }
        public int device_amount { get; set; }
    }

    public class ChangeName
    {
        public string TagName { get; set; }
        public string ChangeN { get; set; }
        public byte ChooseTable { get; set; }
    }
    public class ChangeNameRole
    {
        public string Account { get; set; }
        public string Building_guid { get; set; }
    }
    public class SaveGrouping
    {
        public int id { get; set; }
        public int priority { get; set; }
        public string name { get; set; }
        public string disaster { get; set; }
        public byte verify { get; set; }
    }
}