reviewlog

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 6, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DDL = []string{
	`CREATE TABLE IF NOT EXISTS goncho_review_items (
		id TEXT PRIMARY KEY,
		kind TEXT NOT NULL CHECK(kind IN ('conflict','stale')),
		status TEXT NOT NULL CHECK(status IN ('open','resolved')),
		workspace_id TEXT NOT NULL,
		peer_id TEXT NOT NULL DEFAULT '',
		session_key TEXT NOT NULL DEFAULT '',
		subject_id TEXT NOT NULL,
		related_id TEXT NOT NULL DEFAULT '',
		reason TEXT NOT NULL,
		evidence_ids_json TEXT NOT NULL DEFAULT '[]',
		created_at INTEGER NOT NULL,
		resolution TEXT NOT NULL DEFAULT '',
		resolved_by TEXT NOT NULL DEFAULT '',
		resolution_reason TEXT NOT NULL DEFAULT '',
		resolved_at INTEGER
	)`,
	`ALTER TABLE goncho_review_items ADD COLUMN resolution TEXT NOT NULL DEFAULT ''`,
	`ALTER TABLE goncho_review_items ADD COLUMN resolved_by TEXT NOT NULL DEFAULT ''`,
	`ALTER TABLE goncho_review_items ADD COLUMN resolution_reason TEXT NOT NULL DEFAULT ''`,
	`CREATE INDEX IF NOT EXISTS idx_goncho_review_items_status ON goncho_review_items(workspace_id, status, created_at DESC)`,
	`CREATE INDEX IF NOT EXISTS idx_goncho_review_items_scope ON goncho_review_items(workspace_id, peer_id, session_key, created_at DESC)`,
	`CREATE INDEX IF NOT EXISTS idx_goncho_review_items_subject ON goncho_review_items(subject_id, created_at DESC)`,
}

Functions

This section is empty.

Types

type ContextUnavailableEvidence

type ContextUnavailableEvidence struct {
	Field      string `json:"field"`
	Capability string `json:"capability"`
	Reason     string `json:"reason"`
}

func ReviewRequiredUnavailableEvidence

func ReviewRequiredUnavailableEvidence(items []ReviewItem, sessionKeys ...string) []ContextUnavailableEvidence

type ReviewItem

type ReviewItem struct {
	ID               string           `json:"id"`
	Kind             ReviewKind       `json:"kind"`
	Status           ReviewStatus     `json:"status"`
	WorkspaceID      string           `json:"workspace_id"`
	PeerID           string           `json:"peer_id,omitempty"`
	SessionKey       string           `json:"session_key,omitempty"`
	SubjectID        string           `json:"subject_id"`
	RelatedID        string           `json:"related_id,omitempty"`
	Reason           string           `json:"reason"`
	EvidenceIDs      []string         `json:"evidence_ids,omitempty"`
	CreatedAt        time.Time        `json:"created_at"`
	Resolution       ReviewResolution `json:"resolution,omitempty"`
	ResolvedBy       string           `json:"resolved_by,omitempty"`
	ResolutionReason string           `json:"resolution_reason,omitempty"`
	ResolvedAt       *time.Time       `json:"resolved_at,omitempty"`
}

func CreateReviewItem

func CreateReviewItem(ctx context.Context, db *sql.DB, p ReviewItemCreateParams) (ReviewItem, error)

func ResolveReviewItem

func ResolveReviewItem(ctx context.Context, db *sql.DB, p ReviewResolutionParams) (ReviewItem, error)

func ReviewItemsForContextSession

func ReviewItemsForContextSession(items []ReviewItem, sessionKey string) []ReviewItem

type ReviewItemCreateParams

type ReviewItemCreateParams struct {
	Kind        ReviewKind `json:"kind"`
	WorkspaceID string     `json:"workspace_id,omitempty"`
	PeerID      string     `json:"peer_id,omitempty"`
	SessionKey  string     `json:"session_key,omitempty"`
	SubjectID   string     `json:"subject_id"`
	RelatedID   string     `json:"related_id,omitempty"`
	Reason      string     `json:"reason"`
	EvidenceIDs []string   `json:"evidence_ids,omitempty"`
	CreatedAt   time.Time  `json:"created_at,omitempty"`
}

type ReviewKind

type ReviewKind string
const (
	ReviewKindConflict ReviewKind = "conflict"
	ReviewKindStale    ReviewKind = "stale"
)

type ReviewList

type ReviewList struct {
	Items []ReviewItem `json:"items"`
	Count int          `json:"count"`
}

func ListReviewItems

func ListReviewItems(ctx context.Context, db *sql.DB, q ReviewQuery) (ReviewList, error)

type ReviewQuery

type ReviewQuery struct {
	WorkspaceID string       `json:"workspace_id,omitempty"`
	PeerID      string       `json:"peer_id,omitempty"`
	SessionKey  string       `json:"session_key,omitempty"`
	SubjectID   string       `json:"subject_id,omitempty"`
	RelatedID   string       `json:"related_id,omitempty"`
	Kind        ReviewKind   `json:"kind,omitempty"`
	Status      ReviewStatus `json:"status,omitempty"`
	Limit       int          `json:"limit,omitempty"`
}

type ReviewResolution

type ReviewResolution string
const (
	ReviewResolutionAccepted   ReviewResolution = "accepted"
	ReviewResolutionRejected   ReviewResolution = "rejected"
	ReviewResolutionSuperseded ReviewResolution = "superseded"
	ReviewResolutionVerified   ReviewResolution = "verified"
)

type ReviewResolutionParams

type ReviewResolutionParams struct {
	ID               string           `json:"id"`
	Resolution       ReviewResolution `json:"resolution"`
	ResolvedBy       string           `json:"resolved_by"`
	ResolutionReason string           `json:"resolution_reason"`
	ResolvedAt       time.Time        `json:"resolved_at,omitempty"`
}

type ReviewStatus

type ReviewStatus string
const (
	ReviewStatusOpen     ReviewStatus = "open"
	ReviewStatusResolved ReviewStatus = "resolved"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL