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

namespace Repository.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 BuildInfo : Actor
    {
        public int Priority { get; set; }
        public string Building_guid { get; set; }  //區域GUID
        public string Full_name { get; set; } //區域名稱
        public string Ip_address { get; set; } //監控主機 IP
        public string Ip_port { get; set; } //監控主機 IP port
        public string Ip_address_port { get { return Ip_address + ":" + Ip_port; } }
        public byte FloorNum { get; set; } //樓層數量
        //public string Created_at { get; set; }  //建立時間
    }

    public class BuildFloor : Actor
    {
        public string Floor_guid { get; set; }  //樓層GUID
        public string Building_guid { get; set; }  //區域GUID
        public string Full_name { get; set; } //建築名稱
        public string InitMapName { get; set; } //使用者命名平面圖檔檔名
        public string MapUrl { get; set; } //使用者命名平面圖檔檔名
        public string Floor_map_name { get; set; } //平面圖檔名
        public IFormFile MapFile { get; set; } //平面圖檔
        public int Priority { get; set; }
    }

    public class SelectedBuildFloor
    {
        public string SelectedGuid { get; set; }  //區域GUID
    }

    public class PostBuildInfoPriority
    {
        public List<BuildInfoPriority> BuildInfoPriorities { get; set; }
    }
    public class BuildInfoPriority
    {
        public string Building_guid { get; set; }  //區域GUID
        public int Priority { get; set; }
    }

    public class PostFloorPriority
    {
        public List<FloorPriority> FloorPriorities { get; set; }
    }
    public class FloorPriority
    {
        public string Floor_guid { get; set; }  //樓層GUID
        public int Priority { get; set; }
    }
}