audit_log.go 803 B

123456789101112131415161718192021
  1. package model
  2. import (
  3. "time"
  4. "gorm.io/datatypes"
  5. )
  6. // AuditLog records user operations for auditing.
  7. type AuditLog struct {
  8. ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
  9. Username string `gorm:"size:50;index" json:"username"`
  10. Action string `gorm:"size:50;index" json:"action"` // create/update/delete/assign/import/login/export
  11. TargetType string `gorm:"size:50;index" json:"target_type"` // merchant/user/keyword/schedule/setting/task
  12. TargetID string `gorm:"size:100" json:"target_id"`
  13. Detail datatypes.JSON `gorm:"type:json" json:"detail"`
  14. IP string `gorm:"size:45" json:"ip"`
  15. CreatedAt time.Time `gorm:"index" json:"created_at"`
  16. }
  17. func (AuditLog) TableName() string { return "audit_logs" }