Files
goGin/app/controllers/swagger_models.go
Beyhan Oğur 2a5b661443 first commit
2026-04-26 21:46:42 +03:00

138 lines
5.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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"`
}