Files
History_Api/internal/models/wiki.go
2026-05-11 11:02:57 +07:00

73 lines
1.7 KiB
Go

package models
import (
"history-api/internal/dtos/response"
"time"
)
type WikiContentSample struct {
ID string `json:"id"`
Title string `json:"title"`
CreatedAt *time.Time `json:"created_at"`
}
type WikiEntity struct {
ID string `json:"id"`
Title string `json:"title"`
Slug string `json:"slug"`
ContentSample []WikiContentSample `json:"content_sample"`
ProjectID string `json:"project_id"`
IsDeleted bool `json:"is_deleted"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
}
func (w *WikiEntity) ToResponse() *response.WikiResponse {
if w == nil {
return nil
}
var contentSample []response.WikiContentSample
for _, c := range w.ContentSample {
contentSample = append(contentSample, response.WikiContentSample{
ID: c.ID,
Title: c.Title,
CreatedAt: c.CreatedAt,
})
}
return &response.WikiResponse{
ID: w.ID,
Title: w.Title,
Slug: w.Slug,
ContentSample: contentSample,
ProjectID: w.ProjectID,
IsDeleted: w.IsDeleted,
CreatedAt: w.CreatedAt,
UpdatedAt: w.UpdatedAt,
}
}
func WikisEntityToResponse(ws []*WikiEntity) []*response.WikiResponse {
out := make([]*response.WikiResponse, 0)
if ws == nil {
return out
}
for _, w := range ws {
if w == nil {
continue
}
out = append(out, w.ToResponse())
}
return out
}
type WikiContentEntity struct {
ID string `json:"id"`
WikiID string `json:"wiki_id"`
Title string `json:"title"`
Content string `json:"content"`
IsDeleted bool `json:"is_deleted"`
CreatedAt *time.Time `json:"created_at"`
}