package handler import ( "net/http" "strconv" "sql-platform/internal/model" "github.com/gin-gonic/gin" ) // GET /api/v1/audit-logs func ListAuditLogs(c *gin.Context) { page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20")) if page < 1 { page = 1 } if pageSize < 1 || pageSize > 100 { pageSize = 20 } var total int64 model.DB.Model(&model.AuditLog{}).Count(&total) var logs []model.AuditLog offset := (page - 1) * pageSize model.DB.Order("id DESC").Offset(offset).Limit(pageSize).Find(&logs) c.JSON(http.StatusOK, gin.H{ "items": logs, "total": total, "page": page, "page_size": pageSize, }) }