using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EVCB_OCPP.Domain.Models.Database
{
    /// <summary>
    /// 未來會以充電站規模使用管理後台
    /// </summary>
    [Table("Customer")]
    public class Customer
    {
        [Key]
        public Guid Id { get; set; }

        [StringLength(50)]
        public string Name { get; set; }

        public DateTime CreatedOn { get; set; }

        [StringLength(50)]       
        public string CreatedBy { get; set; }            

          
        public DateTime? Deadline { get; set; }

      
        public DateTime? UpdatedOn { get; set; }

        [StringLength(50)]       
        public string UpdatedBy { get; set; }     
        

        /// <summary>
        /// 對方的api Url
        /// </summary>
        [StringLength(256)]
        public string ApiUrl { get; set; }

        /// <summary>
        /// 對方的 api Key
        /// </summary>
        [StringLength(128)]
        public string ApiKey { get; set; }

        /// <summary>
        /// api Key的更新日期
        /// </summary>
        public DateTime? ApiKeyUpdatedOn { get; set; }

        /// <summary>
        /// 呼叫對方 api的客戶代碼
        /// </summary>
        [StringLength(36)]
        public string PartnerId { get; set; }

        /// <summary>
        /// 對方的 api Id
        /// </summary>
        [StringLength(36)]
        public string ApiCustomerId { get; set; }

     

        /// <summary>
        /// 排程呼掉對方的services
        /// </summary>
        public bool CallPartnerApiOnSchedule { get; set; }

       

        /// <summary>
        /// 是否顯示
        /// </summary>
        public bool IsShow { get; set; }

        /// <summary>
        /// FTP 網址
        /// </summary>
        public string FTPPath { set; get; }


        /// <summary>
        /// FTP Host  ftp://user:password @host:port/path
        /// </summary>
        [StringLength(50)]
        public string FTPHost { set; get; }

        /// <summary>
        /// FTP user
        /// </summary>
        [StringLength(20)]
        public string FTPUser { set; get; }

        /// <summary>
        /// FTP password
        /// </summary>
        [StringLength(20)]
        public string FTPPassword { set; get; }

        public Customer()
        {
            Id = Guid.NewGuid();
        }
        
       
       

    }
}