using Mapster;
using Vo;


namespace Model
{
    /// <summary>
    /// api接口 api_info
    /// </summary>
    [SugarTable("api_info", "api接口")]
    [Tenant("0")]
    public class ApiInfo
    {
        /// <summary>
        /// 分组
        /// </summary>
        [SugarColumn(ColumnDescription = "分组", ColumnName = "group_id")]
        public int groupId { get; set; }


        /// <summary>
        /// 接口名称
        /// </summary>
        [SugarColumn(ColumnDescription = "接口名称", Length = 50, ColumnName = "api_name")]
        public string apiName { get; set; }


        /// <summary>
        /// 接口关键字
        /// </summary>
        [SugarColumn(ColumnDescription = "接口关键字", Length = 50, ColumnName = "api_key")]
        public string apiKey { get; set; }


        /// <summary>
        /// 接口主机头
        /// </summary>
        [SugarColumn(ColumnDescription = "接口主机头", Length = 50, ColumnName = "api_host")]
        public string apiHost { get; set; }


        /// <summary>
        /// 接口端口号
        /// </summary>
        [SugarColumn(ColumnDescription = "接口端口号", ColumnName = "api_port")]
        public int apiPort { get; set; }


        /// <summary>
        /// 接口路由
        /// </summary>
        [SugarColumn(ColumnDescription = "接口路由", Length = 200, ColumnName = "api_router")]
        public string apiRouter { get; set; }


        /// <summary>
        /// 接口请求方式
        /// </summary>
        [SugarColumn(ColumnDescription = "接口请求方式", Length = 10, ColumnName = "api_method")]
        public string apiMethod { get; set; }


        /// <summary>
        /// ID
        /// </summary>
        [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true, IsIdentity = true, ColumnName = "id")]
        public int id { get; set; }


        /// <summary>
        /// 状态
        /// </summary>
        [SugarColumn(ColumnDescription = "状态", ColumnName = "status")]
        public int status { get; set; }


        /// <summary>
        /// 排序
        /// </summary>
        [SugarColumn(ColumnDescription = "排序", ColumnName = "sort")]
        public int sort { get; set; }


        /// <summary>
        /// 版本号
        /// </summary>
        [SugarColumn(ColumnDescription = "版本号", ColumnName = "version")]
        public int version { get; set; }


        /// <summary>
        /// 创建时间
        /// </summary>
        [SugarColumn(ColumnDescription = "创建时间", ColumnName = "create_date")]
        public DateTime? createDate { get; set; }


        /// <summary>
        /// 更新时间
        /// </summary>
        [SugarColumn(ColumnDescription = "更新时间", ColumnName = "update_date")]
        public DateTime? updateDate { get; set; }


        /// <summary>
        /// api接口分组
        /// <summary>
        [SugarColumn(IsIgnore = true)]
        [Navigate(NavigateType.OneToOne, nameof(groupId))]
        public ApiGroup apiGroupJoin { get; set; }
        [SugarColumn(IsIgnore = true)]
        public ApiGroupVo apiGroupInfo 
        { 
            get
            {
                return apiGroupJoin.Adapt<ApiGroupVo>();
            }
        }



    }
}