package domain import ( "time" ) // AuditLog represents a single audit event type AuditLog struct { Timestamp time.Time `json:"timestamp"` UserID string `json:"user_id"` EventType string `json:"event_type"` // e.g., "login_success", "login_failed", "otp_sent" Status string `json:"status"` // e.g., "success", "failure" IPAddress string `json:"ip_address"` UserAgent string `json:"user_agent"` DeviceID string `json:"device_id,omitempty"` Details string `json:"details,omitempty"` // JSON string or simple text } // AuditRepository defines interface for storing logs type AuditRepository interface { Create(log *AuditLog) error // FindAll(filter Filter) ([]*AuditLog, error) // Future scope }