62 lines
2.2 KiB
Go
62 lines
2.2 KiB
Go
package response
|
|
|
|
import (
|
|
articleCategoriesResponse "narasi-ahli-be/app/module/article_categories/response"
|
|
articleFilesResponse "narasi-ahli-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"`
|
|
}
|