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

namespace Common.Http
{
    /// <summary>
    /// Request to load article categories
    /// </summary>
    public class ArticleCategoryReq
    {
        /// <summary>
        /// Language code for response: "lo" (Lao), "en" (English)
        /// Default: "lo"
        /// </summary>
        public string? lang { get; set; } = "lo";

        /// <summary>
        /// Page number (0-based index)
        /// Default: 0
        /// </summary>
        public int pageNumber { get; set; } = 0;

        /// <summary>
        /// Number of items per page
        /// Default: 10
        /// </summary>
        public int pageSize { get; set; } = 10;

        /// <summary>
        /// Parent category ID (null = get root categories)
        /// </summary>
        public int? parentId { get; set; }
    }

    /// <summary>
    /// Request to load articles
    /// </summary>
    public class ArticleLoadReq
    {
        /// <summary>
        /// Language code for response: "lo" (Lao), "en" (English)
        /// Default: "lo"
        /// </summary>
        public string? lang { get; set; } = "lo";

        /// <summary>
        /// Page number (0-based index)
        /// Default: 0
        /// </summary>
        public int pageNumber { get; set; } = 0;

        /// <summary>
        /// Number of items per page
        /// Default: 10
        /// </summary>
        public int pageSize { get; set; } = 10;

        /// <summary>
        /// Filter by category ID (optional)
        /// </summary>
        public int? categoryId { get; set; }

        /// <summary>
        /// Filter by featured articles only
        /// </summary>
        public bool? isFeatured { get; set; }
    }
}
