using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace tpDomeWinAPP.Models
{
    public class Actor
    {
        private string created_at;
        private string updated_at;

        public string Created_by { get; set; } //創建者
        public string Created_at { get { return Convert.ToDateTime(created_at).ToString("yyyy-MM-dd HH:mm:ss"); } set { created_at = value; } } //創建時間

        public string Updated_by { get; set; } //修改者
        public string Updated_at { get { return Convert.ToDateTime(updated_at).ToString("yyyy-MM-dd HH:mm:ss"); } set { updated_at = value; } } //修改時間
    }
    public class PostDeviceFilter
    {
        public string Building_guid { get; set; }
        public string Main_system_guid { get; set; }
        public string Sub_system_guid { get; set; }
        public string Floor_guid { get; set; }
    }

    public class PostDeviceInfoAdd
    {
        public string Building_guid { get; set; }
        public string Main_system_guid { get; set; }
        public string Sub_system_guid { get; set; }
        public string Floor_guid { get; set; }
        public List<SelcectedDeviceAdd> SelectedDevices { get; set; }
        public IFormFile SelectedDevicesFile { get; set; }
    }

    public class SelcectedDeviceAdd
    {
        public string Device_number { get; set; }
        public string Device_system_category_layer3 { get; set; }
        public string Device_disasters { get; set; }
    }

    public class PostDeviceInfoEdit
    {
        public string Device_guid { get; set; }
        public string Full_name { get; set; }
        public string Device_coordinate_x { get; set; }
        public string Device_coordinate_y { get; set; }
        public List<string> Device_disasters { get; set; }
        public string Device_ip { get; set; }
        public string Device_port { get; set; }
    }

    public class PostDeviceCoordinate
    {
        public string Device_guid { get; set; }
        public string Device_node_guid { get; set; }
        public string Coordinate { get; set; }
    }

    public class Device_batch
    {
        public string new_tags { get; set; }
        public string old_tags { get; set; }
        public string tag_no5 { get; set; }
        public int serial { get; set; }
        public string tagName { get; set; }
    }

    public class Device : Actor
    {
        public string Device_guid { get; set; }
        public byte Deleted { get; set; }
        public byte Status { get; set; }
        public int Priority { get; set; }
        public int Is_link { get; set; }
        //public string Building_guid { get; set; }
        //public string Building_full_name { get; set; }
        //public string Main_system_guid { get; set; }
        //public string Main_system_full_name { get; set; }
        //public string Sub_system_guid { get; set; }
        //public string Sub_system_full_name { get; set; }
        //public string Floor_guid { get; set; }
        //public string Floor_full_name { get; set; }
        public string Device_coordinate { get; set; }
        public string Full_name { get; set; }

        public string Device_area_tag { get; set; }
        public string Device_building_tag { get; set; }
        public string Device_system_tag { get; set; }
        public string Device_name_tag { get; set; }
        public string Device_floor_tag { get; set; }
        public string Device_master { get; set; }
        public string Device_last_name { get; set; }
        public string Device_serial_tag { get; set; }
        public string Device_number { get; set; } //設備編號
        public string Device_model { get; set; } //設備型號
        //public string Device_disaster_type_text { get; set; }
        public string Device_system_category_layer3 { get; set; }
        //public string Device_image { get; set; }
        //public string Device_image_url { get; set; }
        //public string Device_close_color { get; set; }
        //public string Device_normal_color { get; set; }
        //public string Device_error_color { get; set; }
        //public string Device_flashing { get; set; }
        public string Device_ip { get; set; }
        public string Device_port { get; set; }
        public List<DeviceDisaster> Device_disasters { get; set; } //防災類型
        public List<DeviceNode> Device_nodes { get; set; } //設備子節點
    }

    public class DeviceDisaster
    {
        public int Id { get; set; }
        public string Device_system_type { get; set; }
        public string Device_system_value { get; set; }
    }

    public class PostDeviceNode
    {
        public string Device_node_guid { get; set; }
        public string Device_guid { get; set; }
        public string Full_name { get; set; }
        public string Device_node_coordinate_x { get; set; }
        public string Device_node_coordinate_y { get; set; }
    }
    public class DeviceNode : Actor
    {
        public string Device_node_guid { get; set; }
        public string Device_guid { get; set; }
        public string Device_node_full_name { get; set; }
        public string Device_node_coordinate { get; set; }
        public int Priority { get; set; }
    }

    public class PostDeviceKind
    {
        public string Device_kind_guid { get; set; }
        public string Device_building_tag { get; set; }
        public string Device_system_tag { get; set; }
        public string Device_floor_tag { get; set; }
        public string Device_name_tag { get; set; }
        public string Device_image { get; set; }
        public string InitDeviceName { get; set; }
        public IFormFile Device_image_file { get; set; } //設備種類圖檔
        public string Device_normal_text { get; set; }
        public string Device_normal_point_guid { get; set; }
        public string Device_normal_point_col { get; set; }
        public string Device_normal_point_value { get; set; }
        public string Device_normal_color { get; set; }
        public byte Device_normal_flashing { get; set; }
        public string Device_close_text { get; set; }
        public string Device_close_point_guid { get; set; }
        public string Device_close_point_col { get; set; }
        public string Device_close_point_value { get; set; }
        public string Device_close_color { get; set; }
        public byte Device_close_flashing { get; set; }
        public string Device_error_text { get; set; }
        public string Device_error_point_guid { get; set; }
        public string Device_error_point_col { get; set; }
        public string Device_error_point_value { get; set; }
        public string Device_error_color { get; set; }
        public byte Device_error_flashing { get; set; }
        public byte Device_error_independent { get; set; }
    }

    public class DeviceKind
    {
        public string Device_kind_guid { get; set; }
        public string Device_building_tag { get; set; }
        public string Device_system_tag { get; set; }
        public string Device_floor_tag { get; set; }
        public string Device_name_tag { get; set; }
        public string Device_image { get; set; }
        public string Device_normal_text { get; set; }
        public string Device_normal_point_guid { get; set; }
        public string Device_normal_point_name { get; set; }
        public string Device_normal_point_col { get; set; }
        public string Device_normal_point_value { get; set; }
        public string Device_normal_color { get; set; }
        public byte Device_normal_flashing { get; set; }
        public string Device_close_text { get; set; }
        public string Device_close_point_guid { get; set; }
        public string Device_close_point_name { get; set; }
        public string Device_close_point_col { get; set; }
        public string Device_close_point_value { get; set; }
        public string Device_close_color { get; set; }
        public byte Device_close_flashing { get; set; }
        public string Device_error_text { get; set; }
        public string Device_error_point_guid { get; set; }
        public string Device_error_point_name { get; set; }
        public string Device_error_point_col { get; set; }
        public string Device_error_point_value { get; set; }
        public string Device_error_color { get; set; }
        public byte Device_error_flashing { get; set; }
        public byte Device_error_independent { get; set; }
    }

    public class PointName
    {
        public string Device_normal_point_name { get; set; }
        public string Device_close_point_name { get; set; }
        public string Device_error_point_name { get; set; }
    }

    public class DeviceImportCheckTempRawData
    {
        public string Device_building_tag { get; set; }
        public string Device_system_tag { get; set; }
        public string Device_floor_tag { get; set; }
        public string Device_name_tag { get; set; }
        public string Device_serial_tag { get; set; }
        public string Device_number { get; set; }
        public string Device_system_category_layer3 { get; set; }
    }

    public class DeviceImportCheckTempFilter
    {
        public string Device_building_tag { get; set; }
        public List<ImportTempDeviceSystemTag> Device_system_tags { get; set; }
    }
    public class ImportTempDeviceSystemTag
    {
        public string Device_system_tag { get; set; }
        public List<ImportTempDeviceFloorTag> Device_floor_tags { get; set; }
    }

    public class ImportTempDeviceFloorTag
    {
        public string Device_floor_tag { get; set; }
        public List<string> Device_name_tags { get; set; }
    }

    public class DeviceImportCheckTemp : Actor
    {
        public string Device_building_tag { get; set; }
        public string Device_system_tag { get; set; }
        public string Device_floor_tag { get; set; }
        public string Device_name_tag { get; set; }
        public string Device_serial_tag { get; set; }
        public string Device_number { get; set; }
        public string Device_disasters { get; set; }
        public string Device_disaster_type_text { get; set; }
        public string Device_system_category_layer3 { get; set; }
    }

    public class DeviceMaster : Actor
    {
        public string Device_master_guid { get; set; }
        public string Device_building_tag { get; set; }
        public string Device_name_tag { get; set; }
        public string Device_master_number { get; set; }
        public string Device_master_full_name { get; set; }
        public string Device_master_icon { get; set; }
    }

    public class PostDeviceMaster
    {
        public string Device_master_guid { get; set; }
        public string Device_building_tag { get; set; }
        public string Device_name_tag { get; set; }
        public string Device_master_number { get; set; }
        public string Device_master_full_name { get; set; }
        public IFormFile Device_master_icon_file { get; set; } //設備種類圖檔
    }

    public class DeviceGroup
    {
        public int id { get; set; }
        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 class device_value
    {
        public string name { get; set; }
        public string value { get; set; }
        //public string display { get; set; }

        //public string result_value { get; set; }
    }

    public class device_value2
    {
        public string name { get; set; }
        public string value { get; set; }
        public string tag_name { get; set; }

        public string point_name { get; set; }

        //public string result_value { get; set; }
    }


    public class device_item8
    {
        public string name { get; set; }
        public string value { get; set; }
        public string tag_name { get; set; }
        public string device_area_tag { get; set; }
        public string device_building_tag { get; set; }
        public string device_system_tag { get; set; }
        public string device_name_tag { get; set; }
        public string device_floor_tag { get; set; }
        public string device_master_tag { get; set; }
        public string device_last_name_tag { get; set; }
        public string device_serial_tag { get; set; }
        public string point_name { get; set; }

        //public string result_value { get; set; }
    }



    public class dbDevice
    {
        public string device_guid { get; set; }
        public string full_name { get; set; }
        public string device_number { get; set; } 
        public string device_number_old { get; set; } //
        public string niagaraTag { get; set; }
        public string device_building_tag { get; set; }
        public string device_system_tag { get; set; }
        public string device_system_tag_old { get; set; }
        public string device_floor_tag { get; set; }
        public string device_name_tag { get; set; }
        public string device_serial_tag { get; set; }
        public string device_coordinate { get; set; }
        public string atDateTime { get; set; }

    }

    //public class device
    //{
    //    public int id { get; set; }
    //    public string device_name { get; set; }
    //    public int status { get; set; }
    //    public int area { get; set; }
    //    public int kind { get; set; }
    //    public string device_id { get; set; }
    //    public string device_no { get; set; }
    //    public string API_URL { get; set; }
    //}
}