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

namespace Dfs.WayneChina.IMisPlus.Models
{
    /// <summary>
    /// Settings/parameters of fuel tank of legacy iFuel system.
    /// </summary>
    public class Tank
    {
        /// <summary>
        /// Id of the tank, used by system.
        /// Sps Field: `TankID`, type: tinyint(1)
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Product code of the fuel in the tank.
        /// Sps Field: `FuelNo`, type: char(10).
        /// ** Normally this field is filled with an integer.
        /// </summary>
        public string ProductCode { get; set; }

        /// <summary>
        /// Height of liquid
        /// Sps Field: `Height`, type: int(2)
        /// </summary>
        public ushort Height { get; set; }

        /// <summary>
        /// Maximum height
        /// Sps Field: `MaxHeight`, type: int(2)
        /// </summary>
        public ushort MaxHeight { get; set; }

        /// <summary>
        /// Minium height
        /// Sps Field: `MinHeight`, type: int(2)
        /// </summary>
        public ushort MinHeight { get; set; }

        /// <summary>
        /// Maximum volume
        /// Sps Field: `MaxVolume`, type: int(2)
        /// </summary>
        public ushort MaxVolume { get; set; }

        /// <summary>
        /// Minimum volume
        /// Sps Field: `MinVolume`, type: int(2)
        /// </summary>
        public ushort MinVolume { get; set; }

        /// <summary>
        /// Maximum volume
        /// Sps Field: `MaxWaterHeight`, type: int(2)
        /// </summary>
        public ushort MaxWaterHeight { get; set; }

        /// <summary>
        /// Maximum temperature
        /// </summary>
        public ushort MaxTemp { get; set; }

        /// <summary>
        /// Id of the probe of the tank gauge.
        /// Sps Field: `ProbeID`, type: varchar(32)
        /// </summary>
        public string ProbeId { get; set; }

        /// <summary>
        /// Offset
        /// Sps Field: `OffSet`, type: int(11)
        /// </summary>
        public int Offset { get; set; }

        /// <summary>
        /// Liquid fuel offset
        /// Sps Field: `OilOffSet`, type: int(11)
        /// </summary>
        public long OilOffset { get; set; }

        /// <summary>
        /// Water offset
        /// Sps Field: `WaterOffSet`, type: int(11)
        /// </summary>
        public int WaterOffset { get; set; }

        /// <summary>
        /// Probe address
        /// Sps Field: `ProbeAddr`, type: varchar(32)
        /// </summary>
        public string ProbeAddress { get; set; }

        /// <summary>
        /// Sps Field: `FixDate`, type: date, format: `0000-00-00`
        /// </summary>
        public DateTime InstallDate { get; set; }

        /// <summary>
        /// Sps Field: `FactoryNo`, type: char(20)
        /// </summary>
        

        /// <summary>
        /// The date that the tank is shipped (or manufactured).
        /// Sps Field: `FactoryDate`, type: date, format: `0000-00-00`
        /// </summary>
        public DateTime DateOfManufacture { get; set; }

        /// <summary>
        /// The life span limit of the tank.
        /// Sps Field: `LimitDate`, type: int(2)
        /// </summary>
        public ushort Life { get; set; }

        /// <summary>
        /// Manufacture of the tank.
        /// Sps Field: `FactName`, type: varchar(20)
        /// </summary>
        public string Manufacturer { get; set; }
    }
}