syntax = "v1" // 公共响应结构 type BaseResponse { Code int `json:"code"` Message string `json:"message"` } // 分页请求 type PageRequest { Page int `form:"page,default=1"` PageSize int `form:"page_size,default=10"` } // 分页响应 type PageResponse { Total int64 `json:"total"` Page int `json:"page"` Size int `json:"size"` } // 用户信息 type User { Id int64 `json:"id"` Username string `json:"username"` Email string `json:"email"` Avatar string `json:"avatar"` Status int `json:"status"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } // 照片信息 type Photo { Id int64 `json:"id"` Title string `json:"title"` Description string `json:"description"` FilePath string `json:"file_path"` ThumbnailPath string `json:"thumbnail_path"` UserId int64 `json:"user_id"` CategoryId int64 `json:"category_id"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } // 分类信息 type Category { Id int64 `json:"id"` Name string `json:"name"` Description string `json:"description"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } // 前端公共展示类型 // 前端公共照片信息 (去除敏感信息) type PublicPhoto { Id int64 `json:"id"` Title string `json:"title"` Description string `json:"description"` FilePath string `json:"file_path"` ThumbnailPath string `json:"thumbnail_path"` CategoryId int64 `json:"category_id"` CategoryName string `json:"category_name,optional"` Featured bool `json:"featured"` ViewCount int64 `json:"view_count,optional"` CreatedAt int64 `json:"created_at"` } // 前端公共分类信息 (去除敏感信息) type PublicCategory { Id int64 `json:"id"` Name string `json:"name"` Description string `json:"description"` CoverImage string `json:"cover_image,optional"` PhotoCount int64 `json:"photo_count,optional"` CreatedAt int64 `json:"created_at"` } // 前端公共分类详情 (包含照片) type PublicCategoryWithPhotos { Id int64 `json:"id"` Name string `json:"name"` Description string `json:"description"` CoverImage string `json:"cover_image,optional"` PhotoCount int64 `json:"photo_count"` Photos []PublicPhoto `json:"photos,optional"` CreatedAt int64 `json:"created_at"` } // 前端用户信息 (精简版) type FrontendUser { Id int64 `json:"id"` Username string `json:"username"` Email string `json:"email"` Avatar string `json:"avatar"` CreatedAt int64 `json:"created_at"` } // 管理后台类型 // 管理员信息 type Admin { Id int64 `json:"id"` Username string `json:"username"` Email string `json:"email"` Avatar string `json:"avatar"` Role string `json:"role"` // super_admin, admin Status int `json:"status"` // 1:启用 0:禁用 LastLogin int64 `json:"last_login,optional"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } // 管理后台用户信息 (包含更多字段) type AdminUser { Id int64 `json:"id"` Username string `json:"username"` Email string `json:"email"` Avatar string `json:"avatar"` Status int `json:"status"` // 1:启用 0:禁用 Role string `json:"role"` // user, vip, admin LastLogin int64 `json:"last_login,optional"` LoginCount int64 `json:"login_count,optional"` PhotoCount int64 `json:"photo_count,optional"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } // 管理后台用户详情 (包含统计信息) type AdminUserDetail { AdminUser Stats AdminUserStats `json:"stats"` } type AdminUserStats { TotalPhotos int64 `json:"total_photos"` TotalViews int64 `json:"total_views"` TotalLikes int64 `json:"total_likes"` TotalComments int64 `json:"total_comments"` StorageUsed int64 `json:"storage_used"` RecentActivity int64 `json:"recent_activity"` } // 管理后台照片信息 (包含更多字段) type AdminPhoto { Id int64 `json:"id"` Title string `json:"title"` Description string `json:"description"` FilePath string `json:"file_path"` ThumbnailPath string `json:"thumbnail_path"` UserId int64 `json:"user_id"` UserName string `json:"user_name,optional"` CategoryId int64 `json:"category_id"` CategoryName string `json:"category_name,optional"` Tags string `json:"tags,optional"` Featured bool `json:"featured"` Status string `json:"status"` // published, draft, deleted FileSize int64 `json:"file_size,optional"` Format string `json:"format,optional"` Width int `json:"width,optional"` Height int `json:"height,optional"` ViewCount int64 `json:"view_count,optional"` LikeCount int64 `json:"like_count,optional"` CommentCount int64 `json:"comment_count,optional"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } // 管理后台照片详情 (包含统计和 EXIF 信息) type AdminPhotoDetail { AdminPhoto ExifData string `json:"exif_data,optional"` Stats AdminPhotoStats `json:"stats"` } type AdminPhotoStats { ViewHistory []AdminPhotoViewHistory `json:"view_history,optional"` DownloadCount int64 `json:"download_count,optional"` ShareCount int64 `json:"share_count,optional"` RecentViews int64 `json:"recent_views"` // 最近7天浏览量 } type AdminPhotoViewHistory { Date string `json:"date"` Views int64 `json:"views"` } // 管理后台分类信息 (包含更多字段) type AdminCategory { Id int64 `json:"id"` Name string `json:"name"` Description string `json:"description"` SortOrder int `json:"sort_order"` // 排序权重 Status string `json:"status"` // active, inactive CoverImage string `json:"cover_image,optional"` PhotoCount int64 `json:"photo_count,optional"` ViewCount int64 `json:"view_count,optional"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } // 管理后台分类详情 (包含统计信息) type AdminCategoryDetail { AdminCategory Stats AdminCategoryStats `json:"stats"` } type AdminCategoryStats { TotalPhotos int64 `json:"total_photos"` PublishedPhotos int64 `json:"published_photos"` DraftPhotos int64 `json:"draft_photos"` FeaturedPhotos int64 `json:"featured_photos"` TotalViews int64 `json:"total_views"` RecentViews int64 `json:"recent_views"` // 最近7天浏览量 GrowthRate float64 `json:"growth_rate"` // 增长率 }