138 lines
5.3 KiB
Go
138 lines
5.3 KiB
Go
package controllers
|
||
|
||
import "time"
|
||
|
||
// Note: these structs are only used for Swagger documentation generation.
|
||
// They intentionally avoid embedding gorm.Model to keep swag parser happy.
|
||
|
||
type CategorySimple struct {
|
||
ID uint `json:"id" example:"1"`
|
||
Title string `json:"title" example:"News"`
|
||
Slug string `json:"slug" example:"news"`
|
||
ParentID *uint `json:"parent_id,omitempty"`
|
||
}
|
||
|
||
// AdminCategoryListItem admin listesinde deleted_at ile ayırt etmek için
|
||
type AdminCategoryListItem struct {
|
||
ID uint `json:"id" example:"1"`
|
||
Title string `json:"title" example:"News"`
|
||
Slug string `json:"slug" example:"news"`
|
||
ParentID *uint `json:"parent_id,omitempty"`
|
||
DeletedAt *time.Time `json:"deleted_at,omitempty"`
|
||
}
|
||
|
||
type TagSimple struct {
|
||
ID uint `json:"id" example:"1"`
|
||
Name string `json:"name" example:"golang"`
|
||
}
|
||
|
||
// AdminTagListItem admin listesinde deleted_at ile ayırt etmek için
|
||
type AdminTagListItem struct {
|
||
ID uint `json:"id" example:"1"`
|
||
Name string `json:"name" example:"golang"`
|
||
DeletedAt *time.Time `json:"deleted_at,omitempty"`
|
||
}
|
||
|
||
type PostResponse struct {
|
||
ID uint `json:"id" example:"1"`
|
||
Title string `json:"title" example:"My post title"`
|
||
Slug string `json:"slug" example:"my-post-title"`
|
||
Images string `json:"images"`
|
||
Content string `json:"content"`
|
||
Categories []CategorySimple `json:"categories,omitempty"`
|
||
Tags []TagSimple `json:"tags,omitempty"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
type PostListResponse struct {
|
||
Items []PostResponse `json:"items"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PerPage int `json:"per_page"`
|
||
}
|
||
|
||
// New swagger-only types
|
||
type CommentSimple struct {
|
||
ID uint `json:"id" example:"1"`
|
||
UserID uint `json:"user_id" example:"2"`
|
||
PostID uint `json:"post_id" example:"1"`
|
||
Body string `json:"body" example:"Nice post"`
|
||
Created time.Time `json:"created_at"`
|
||
}
|
||
|
||
type CategoryViewSimple struct {
|
||
ID uint `json:"id" example:"1"`
|
||
CategoryID uint `json:"category_id" example:"1"`
|
||
IPAddress string `json:"ip_address" example:"127.0.0.1"`
|
||
Created time.Time `json:"created_at"`
|
||
}
|
||
|
||
// Setting swagger-only types
|
||
type SettingResponse struct {
|
||
ID uint `json:"id" example:"1"`
|
||
Title string `json:"title" example:"Site Başlığı"`
|
||
MetaTitle string `json:"meta_title" example:"Meta Başlık"`
|
||
MetaDescription string `json:"meta_description" example:"Site açıklaması"`
|
||
Phone string `json:"phone" example:" +90 555 555 55 55"`
|
||
URL string `json:"url" example:"https://example.com"`
|
||
Email string `json:"email" example:"info@example.com"`
|
||
Facebook string `json:"facebook" example:"https://facebook.com/example"`
|
||
X string `json:"x" example:"https://x.com/example"`
|
||
Instagram string `json:"instagram" example:"https://instagram.com/example"`
|
||
Whatsapp string `json:"whatsapp" example:"https://wa.me/90555"`
|
||
Pinterest string `json:"pinterest" example:"https://pinterest.com/example"`
|
||
Linkedin string `json:"linkedin" example:"https://linkedin.com/company/example"`
|
||
Slogan string `json:"slogan" example:"En iyi içerik"`
|
||
Address string `json:"address" example:"Adres örneği"`
|
||
Copyright string `json:"copyright" example:"© 2026 Example"`
|
||
MapEmbed string `json:"map_embed"`
|
||
WLogo string `json:"w_logo"`
|
||
BLogo string `json:"b_logo"`
|
||
IsActive bool `json:"is_active"`
|
||
// image transform / metadata fields (match app/database/models/setting.go)
|
||
WWidth int `json:"w_width"`
|
||
WHeight int `json:"w_height"`
|
||
WQuality int `json:"w_quality"`
|
||
WFormat string `json:"w_format"`
|
||
BWidth int `json:"b_width"`
|
||
BHeight int `json:"b_height"`
|
||
BQuality int `json:"b_quality"`
|
||
BFormat string `json:"b_format"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
UpdatedAt time.Time `json:"updated_at"`
|
||
}
|
||
|
||
type SettingListResponse struct {
|
||
Items []SettingResponse `json:"items"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PerPage int `json:"per_page"`
|
||
}
|
||
|
||
// Hero swagger-only types
|
||
type HeroResponse struct {
|
||
ID uint `json:"id" example:"1"`
|
||
Color string `json:"color" example:"#ffffff"`
|
||
Title string `json:"title" example:"Hero Başlık"`
|
||
Text1 string `json:"text1" example:"Kısa açıklama"`
|
||
Text2 string `json:"text2" example:"İkinci metin"`
|
||
Text4 string `json:"text4" example:"Yardımcı metin"`
|
||
Text5 string `json:"text5" example:"Ek metin"`
|
||
Image string `json:"image" example:"/uploads/heroes/img.jpg"`
|
||
IsActive bool `json:"is_active"`
|
||
Width int `json:"width" example:"1920"`
|
||
Height int `json:"height" example:"1080"`
|
||
Quality int `json:"quality" example:"80"`
|
||
Format string `json:"format" example:"jpeg"`
|
||
Created time.Time `json:"created_at"`
|
||
Updated time.Time `json:"updated_at"`
|
||
}
|
||
|
||
type HeroListResponse struct {
|
||
Items []HeroResponse `json:"items"`
|
||
Total int64 `json:"total"`
|
||
Page int `json:"page"`
|
||
PerPage int `json:"per_page"`
|
||
}
|