package domain

import (
	"context"
	"time"
)

type OathkeeperAccessLog struct {
	Timestamp time.Time
	RequestID string
	Method    string
	Path      string
	Status    int
	LatencyMs int
	ClientID  string
	RP        string
	Action    string
	Target    string
	Subject   string
	ClientIP  string
	UserAgent string
	Decision  string
	TraceID   string
	SpanID    string
	Raw       string
}

type OathkeeperLogRepository interface {
	FindPageBySubject(ctx context.Context, subject string, limit int, cursor *AuditCursor) ([]OathkeeperAccessLog, error)
	Ping(ctx context.Context) error
}
