package response

import (
	articleCategoriesResponse "campaign-pool-be/app/module/article_categories/response"
	articleFilesResponse "campaign-pool-be/app/module/article_files/response"
	"time"
)

type ArticlesResponse struct {
	ID              uint       `json:"id"`
	Title           string     `json:"title"`
	Slug            string     `json:"slug"`
	Description     string     `json:"description"`
	HtmlDescription string     `json:"htmlDescription"`
	CategoryId      int        `json:"categoryId"`
	CategoryName    string     `json:"categoryName"`
	TypeId          int        `json:"typeId"`
	Tags            string     `json:"tags"`
	ThumbnailUrl    string     `json:"thumbnailUrl"`
	PageUrl         *string    `json:"pageUrl"`
	CreatedById     *uint      `json:"createdById"`
	CreatedByName   *string    `json:"createdByName"`
	ShareCount      *int       `json:"shareCount"`
	ViewCount       *int       `json:"viewCount"`
	CommentCount    *int       `json:"commentCount"`
	AiArticleId     *int       `json:"aiArticleId"`
	OldId           *uint      `json:"oldId"`
	StatusId        *int       `json:"statusId"`
	IsBanner        *bool      `json:"isBanner"`
	IsPublish       *bool      `json:"isPublish"`
	PublishedAt     *time.Time `json:"publishedAt"`
	IsActive        *bool      `json:"isActive"`
	CreatedAt       time.Time  `json:"createdAt"`
	UpdatedAt       time.Time  `json:"updatedAt"`

	ArticleFiles      []*articleFilesResponse.ArticleFilesResponse           `json:"files"`
	ArticleCategories []*articleCategoriesResponse.ArticleCategoriesResponse `json:"categories"`
}

type ArticleSummaryStats struct {
	TotalToday    int `json:"totalToday"`
	TotalThisWeek int `json:"totalThisWeek"`
	TotalAll      int `json:"totalAll"`
	TotalViews    int `json:"totalViews"`
	TotalShares   int `json:"totalShares"`
	TotalComments int `json:"totalComments"`
}

type ArticlePerUserLevelStats struct {
	UserLevelID   uint   `json:"userLevelId"`
	UserLevelName string `json:"userLevelName"`
	TotalArticle  int64  `json:"totalArticle"`
}

type ArticleMonthlyStats struct {
	Year    int   `json:"year"`
	Month   int   `json:"month"`
	View    []int `json:"view"`
	Comment []int `json:"comment"`
	Share   []int `json:"share"`
}
