package system

import "time"

// OperationRecordInfo 操作记录信息
type OperationRecordInfo struct {
	ID           uint      `json:"ID"`
	Ip           string    `json:"ip"`
	Method       string    `json:"method"`
	Path         string    `json:"path"`
	Status       int       `json:"status"`
	Latency      int64     `json:"latency"`
	Agent        string    `json:"agent"`
	ErrorMessage string    `json:"error_message"`
	Body         string    `json:"body"`
	Resp         string    `json:"resp"`
	UserID       uint      `json:"user_id"`
	CreatedAt    time.Time `json:"created_at"`
	User         UserInfo  `json:"user,omitempty"`
}

// CreateOperationRecordRequest 创建操作记录请求
type CreateOperationRecordRequest struct {
	Ip           string `json:"ip"`
	Method       string `json:"method"`
	Path         string `json:"path"`
	Status       int    `json:"status"`
	Latency      int64  `json:"latency"`
	Agent        string `json:"agent"`
	ErrorMessage string `json:"error_message"`
	Body         string `json:"body"`
	Resp         string `json:"resp"`
	UserID       uint   `json:"user_id"`
}

// GetOperationRecordListRequest 获取操作记录列表请求
type GetOperationRecordListRequest struct {
	Page     int    `json:"page" form:"page"`
	PageSize int    `json:"pageSize" form:"pageSize"`
	Method   string `json:"method" form:"method"`
	Path     string `json:"path" form:"path"`
	Status   int    `json:"status" form:"status"`
	UserID   uint   `json:"user_id" form:"user_id"`
}

// GetOperationRecordListReply 获取操作记录列表响应
type GetOperationRecordListReply struct {
	List     []OperationRecordInfo `json:"list"`
	Total    int64                 `json:"total"`
	Page     int                   `json:"page"`
	PageSize int                   `json:"pageSize"`
}
