
using Lada.Framework.Data.Domains.BaseEntities;
using Lada.Framework.Data.Domains.Hr;
using Lada.Framework.Data.Enums;
using System.ComponentModel.DataAnnotations;

namespace Lada.Framework.Data.Domains.Cms
{
    /// <summary>
    /// 
    /// </summary>
    public class UrlRecord : BaseEntityWithKey<int>
    {
        [MaxLength(512)]
        public string MetaTitle { get; set; }

        [MaxLength(1024)]
        public string MetaDescription { get; set; }

        [MaxLength(512)]
        public string MetaKeywords { get; set; }

        /// <summary>
        /// Gets or sets the slug
        /// </summary>
        [MaxLength(512)]
        public string Slug { get; set; }

        /// <summary>
        /// Tên thực thể và cũng là tên controller luôn
        /// </summary>
        [MaxLength(128)]
        public string EntityName { get; set; }

        /// <summary>
        /// Tên thực thể và cũng là tên controller luôn
        /// </summary>
        [MaxLength(128)]
        public string EntityDescription { get; set; }

        

        #region SEO properties
        public bool IncludeInSiteMap { get; set; } = true;
        //public double? Priority { get; set; }
        public SitemapFrequency Frequency { get; set; } = SitemapFrequency.Weekly;
        public double Priority { get; set; } = 0.75;
        #endregion



        //#region Relationship
        public virtual Category? Category{ get; set; }
        public virtual int? CategoryId{ get; set; }
        public virtual Tag? Tag { get; set; }
        public virtual int? TagId { get; set; }
        public virtual Post? Post { get; set; }
        public virtual int? PostId { get; set; }
        public virtual Topic? Topic { get; set; }
        public virtual int? TopicId { get; set; }

        public virtual JobPost? JobPost { get; set; }
        public virtual int? JobPostId { get; set; }

        public virtual Product? Product { get; set; }
        public virtual int? ProductId { get; set; }


        //#endregion
    }


}