Files
2026-05-12 18:49:52 +08:00

69 lines
2.5 KiB
Go

package admission
import "time"
// ProbeClassification mirrors domain.ProbeClassification for internal use
type ProbeClassification string
const (
ProbeClassificationSuccess ProbeClassification = "success"
ProbeClassificationExplicitFailure ProbeClassification = "explicit_failure"
ProbeClassificationInconclusive ProbeClassification = "inconclusive"
)
// CandidateStatus mirrors domain.DiscoveryCandidateStatus
type CandidateStatus string
const (
CandidateStatusDiscovered CandidateStatus = "discovered"
CandidateStatusTesting CandidateStatus = "testing"
CandidateStatusTestPassed CandidateStatus = "test_passed"
CandidateStatusTestFailed CandidateStatus = "test_failed"
CandidateStatusRetryPending CandidateStatus = "retry_pending"
CandidateStatusIgnored CandidateStatus = "ignored"
CandidateStatusPublished CandidateStatus = "published"
CandidateStatusDeprecated CandidateStatus = "deprecated"
CandidateStatusClosed CandidateStatus = "closed"
)
// Candidate represents a discovered model tracked through the admission lifecycle
type Candidate struct {
CandidateID string `json:"candidate_id"`
AccountID int64 `json:"account_id"`
Platform string `json:"platform"`
Model string `json:"model"`
Status CandidateStatus `json:"status"`
Source string `json:"source"`
ReasonCode string `json:"reason_code,omitempty"`
DiscoveredAt time.Time `json:"discovered_at"`
UpdatedAt time.Time `json:"updated_at"`
Version int64 `json:"version"`
}
// TestResult records the outcome of an admission test run
type TestResult struct {
CandidateID string `json:"candidate_id"`
Status CandidateStatus `json:"status"`
TestedAt time.Time `json:"tested_at"`
FailureCode string `json:"failure_code,omitempty"`
FailureSummary string `json:"failure_summary,omitempty"`
Passed bool `json:"passed"`
}
// TestCase defines a single test case within an admission test run
type TestCase struct {
ID string `json:"id"`
Name string `json:"name"`
Endpoint string `json:"endpoint"`
Method string `json:"method"`
Headers map[string]string `json:"headers,omitempty"`
Body string `json:"body,omitempty"`
TimeoutSecs int `json:"timeout_secs"`
}
// TestSuite defines a collection of test cases for a model type
type TestSuite struct {
Platform string `json:"platform"`
Cases []TestCase `json:"cases"`
}