using System;
using System.Collections.Generic;
using System.Text;

namespace solarApp.Model
{
    public class sensor_model
    { 
        public string id { get; set; }
        public string SiteID { get; set; }
        public string sensorName { get; set; }
        public string type { get; set; }
        public string DBName { get; set; }
        public string TableName { get; set; }
        public string colname { get; set; }
    }
    public class sensor_raw
    {
        public string SiteID { get; set; }
        public string reportdate { get; set; }
        public double sensorAvg01 { get; set; }
        public double sensorAvg02 { get; set; }
        public double sensorAvg03 { get; set; }
        public double sensorAvg04 { get; set; }
        public double sensorAvg05 { get; set; }
        public double sensorAvg06 { get; set; }
    }

    public class lackData
    {
        public int powerstationid { get; set; }
        public string SITEID { get; set; }
        public DateTime TIMESTAMP { get; set; }  
        public double TODAYKWH { get; set; }
        public double TOTALKWH { get; set; }
        public double Irradiance { get; set; }
        public double EnvTemperature { get; set; }
        public double irrDay { get; set; } 
    }


    public class sensor_raw_V2
    { 
        public string SiteID { get; set; }
        public string reportdate { get; set; }
       
        public double modelTempAvg { get; set; }
        /// <summary>
        /// 累計日照量
        /// </summary>
        public double irrSumAvg { get; set; }
        public double envTempAvg { get; set; }
        public double humidityAvg { get; set; }
        public double windAvg { get; set; }
        public double dustAvg { get; set; }
        public double irrAvg { get; set; }
        public int count { get; set; }
    }

    public class sensor_hour
    {
        public string SiteID { get; set; }
        public string reportdate { get; set; }
        public double modelTempAvg { get; set; }
        /// <summary>
        /// 累計日照量
        /// </summary>
        public double irrSumAvg { get; set; }       
        public double envTempAvg { get; set; }
        public double humidityAvg { get; set; }
        public double windAvg { get; set; }
        public double dustAvg { get; set; }
        public double irrAvg { get; set; }
        public int count { get; set; }
    }

    public class SensorAvgHistory
    {
        public string TIMESTAMP { get; set; }
        public int PowerStationId { get; set; }
        public double SENSORAVG01 { get; set; }
        public double SENSORAVG02 { get; set; }
        public double SENSORAVG03 { get; set; }
        public double SENSORAVG04 { get; set; }
        public double SENSORAVG05 { get; set; }
        public double SENSORAVG06 { get; set; }
        public double SENSORAVG07 { get; set; }
        public double SENSORAVG08 { get; set; }
        public double SENSORAVG09 { get; set; }
        public double SENSORAVG10 { get; set; }
        public double SENSORAVG11 { get; set; }
        public double SENSORAVG12 { get; set; }
        public double SENSORAVG13 { get; set; }
        public double SENSORAVG14 { get; set; }
        public double SENSORAVG15 { get; set; }
        public double SENSORAVG16 { get; set; }
        public double SENSORAVG17 { get; set; }
        public double SENSORAVG18 { get; set; }
        public double SENSORAVG19 { get; set; }
        public double SENSORAVG20 { get; set; }
        public double SENSORAVG21 { get; set; }
        public double SENSORAVG22 { get; set; }
        public double SENSORAVG23 { get; set; }
        public double SENSORAVG24 { get; set; }
        public double SENSORAVG25 { get; set; }
        public double SENSORAVG26 { get; set; }
        public double SENSORAVG27 { get; set; }
        public double SENSORAVG28 { get; set; }
        public double SENSORAVG29 { get; set; }
        public double SENSORAVG30 { get; set; }
        public double SENSORAVG31 { get; set; }
        public double SENSORAVG32 { get; set; }
        public double SENSORAVG33 { get; set; }
        public double SENSORAVG34 { get; set; }
        public double SENSORAVG35 { get; set; }
        public double SENSORAVG36 { get; set; }
        public double SENSORAVG37 { get; set; }
        public double SENSORAVG38 { get; set; }
        public double SENSORAVG39 { get; set; }
        public double SENSORAVG40 { get; set; }
        public double SENSORAVG41 { get; set; }
        public double SENSORAVG42 { get; set; }
        public double SENSORAVG43 { get; set; }
        public double SENSORAVG44 { get; set; }
        public double SENSORAVG45 { get; set; }
        public double SENSORAVG46 { get; set; }
        public double SENSORAVG47 { get; set; }
        public double SENSORAVG48 { get; set; }
        public double SENSORAVG49 { get; set; }
        public double SENSORAVG50 { get; set; }
    }

    /// <summary>
    /// 設備
    /// </summary>
    public class DeviceInfo 
    {
        private string installDate;
        private string warrantyDate;
        public int PowerStationId { get; set; }//所屬電站編號
        public string Name { get; set; }//名稱
        public string Type { get; set; }//類型
        public string Brand { get; set; }//廠牌
        public string ProductModel { get; set; }//型號
        public string DBName { get; set; }
        public string TableName { get; set; }
        public string ColName { get; set; }
        public int ControllerId { get; set; }
        public string TypeName { get; set; }//類型名稱
        public int Enabled { get; set; }//啟用
        public int Status { get; set; }//狀態
        public string InstallDate { get { return Convert.ToDateTime(installDate).ToString("yyyy-MM-dd"); } set { installDate = value; } } //安裝日期
        public string BrandNum { get; set; }//廠商序號
        public string WarrantyDate { get { return Convert.ToDateTime(warrantyDate).ToString("yyyy-MM-dd"); } set { warrantyDate = value; } } //保固日期
    }

    public class Device : DeviceInfo
    {
        public string UID { get; set; }//設備編號
        public string SerialNumber { get; set; }
        public string PowerStationName { get; set; }
    }

    public class PyrheliometerHistory
    {
        public int PowerStationId { get; set; }
        public string Timestamp { get; set; }
        public double Irradiance { get; set; } //日照計
        public double Temperature { get; set; } //模組溫度計
        public double EnvTemperature { get; set; } //環境溫度計
        public double Humidity { get; set; } //濕度
        public double Vane { get; set; } //風速
        public double Dust { get; set; } //落塵計
        public double WingDirection { get; set; } //風向計
        public double IrrDay { get; set; } //累計日照量
    }

}
