feat: editorial article list

This commit is contained in:
Florian Sylvain committed 2026-11-02 07:28:44 +01:00
1 parent a0b3c58c52
commit a671b81f80
103 files changed
+6493 -1805

No files matched your search

@@ -37,6 +37,8 @@ type Filters struct {
Size int
Q string
Status string
Lang *string
AuthorID *uint32
Sort Sort
Unpaged bool
}
@@ -93,6 +95,10 @@ type Repository interface {
FindPage(filters Filters) (PageResult, error)
CountByVisibility(onlineOnly bool) (Counts, error)
CountVisibleTo(userID uint32) (Counts, error)
CountVersions(filters Filters) (Counts, error)
FindStoryPage(filters StoryFilters) (StoryPage, error)
CountStories(filters StoryFilters) (StoryCounts, error)
ListByStories(storyIDs []uint32) ([]Article, error)
Get(id uint32) (Article, error)
GetByName(name string) (Article, error)
GetAll() ([]Article, error)
@@ -0,0 +1,44 @@
package article
const (
TabAll = "all"
TabMissing = "missing"
)
type StoryFilters struct {
SkipMissing bool
OnlyOnline bool
VisibleTo *uint32
SiteID *uint32
Lang string
Missing bool
Status string
AuthorID *uint32
Q string
VersionIDs *[]uint32
Sort Sort
Page int
Size int
}
func (f StoryFilters) PerLanguage() bool {
return f.Lang != "" && !f.Missing
}
type StoryRef struct {
StoryID uint32
ArticleID uint32
}
type StoryPage struct {
Refs []StoryRef
Total int
}
type StoryCounts struct {
All int `json:"all"`
Online int `json:"online"`
Draft int `json:"draft"`
Suggestions int `json:"suggestions"`
Missing int `json:"missing"`
}