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

namespace Lada.Framework.Data.Domains.Cms
{
    /// <summary>
    /// Dịch vụ cung cấp của công ty
    /// </summary>
    public class Product : BaseEntityWithKey<int>
    {
        /// <summary>
        /// Ảnh đại diện
        /// </summary>
        [MaxLength(1024)]
        public string Thumbnail { get; set; }


        /// <summary>
        /// Tên dịch vụ
        /// </summary>
        [MaxLength(128)]
        public string Name { get; set; }

        /// <summary>
        /// Mô tả ngắn
        /// </summary>
        [MaxLength(1024)]
        public string ShortDescription { get; set; }


        [MaxLength(2046)]
        public string Description { get; set; }

        /// <summary>
        /// Table of Content
        /// Từ thẻ H3 => H6
        /// Tự sinh trong khi thêm mới / cập nhật bài viết
        /// </summary>
        public string TOC { get; set; }


        public uint DisplayOrder { get; set; }

        
        /// <summary>
        /// Là sản phẩm nổi bật hay không?
        /// </summary>
        public bool IsFeatured { get; set; }

        /// <summary>
        /// Loại dịch vụ
        /// </summary>
        public ProductType ProductType { get; set; }

        public virtual UrlRecord? UrlRecord { get; set; }

        /// <summary>
        /// Bài viết liên quan
        /// </summary>
        public virtual ICollection<Post>? Posts { get; set; }


        /// <summary>
        /// Từ khóa liên quan
        /// </summary>
        public virtual ICollection<ProductTag>? ProductTags { get; set; } = new List<ProductTag>();
        public virtual ICollection<ProductCategory>? ProductCategories { get; set; } = new List<ProductCategory>();

    }
}
