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

namespace Backend.Models
{
    /// <summary>
    /// 基礎BaseModel
    /// </summary>
    public class Mybase
    {
        public string Guid { get; set; } //編號
    }

    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; } } //修改時間
    }

    /// <summary>
    /// 當前登入的使用者基本資訊
    /// </summary>
    public class MyUserInfo
    {
        public string Userinfo_guid { get; set; } //編號
        public byte Status { get; set; } //狀態
        public string Full_name { get; set; } //姓名
        public string Phone { get; set; } //手機
        public string Tel { get; set; } //市話
        public string Email { get; set; }
        public string role_guid { get; set; }
        public byte Layer { get; set; }
        public List<string> ShowView { get; set; }
    }

    /// <summary>
    /// 當前登入使用者的公司資訊
    /// </summary>
    public class MyCompany
    {
        private string logo;
        public int Id { get; set; }
        public byte Status { get; set; } //狀態
        public string Name { get; set; } //名稱
        public string Logo { get; set; }
    }

    public class Variable : Actor
    {
        public string System_type { get; set; }
        public string System_key { get; set; }
        public string system_value { get; set; }
        
    }

    public class VariableInfo : Variable
    {
        public int id { get; set; }
        public string system_remark { get; set; }
        public int system_priority { get; set; }
        public int system_parent_id { get; set; }
    }

    public class PostVariableInfoFilter
    {
        public string SelectedSystemType { get; set; }
    }

    public class KeyValue
    {
        public string Name { get; set; }
        public string Value { get; set; }
    }

    public class CheckBox
    {
        public int Value { get; set; } //通常放id
        public string Name { get; set; }
    }
}