diff options
Diffstat (limited to 'makima/src/db/models.rs')
| -rw-r--r-- | makima/src/db/models.rs | 86 |
1 files changed, 85 insertions, 1 deletions
diff --git a/makima/src/db/models.rs b/makima/src/db/models.rs index bc90942..eff2df0 100644 --- a/makima/src/db/models.rs +++ b/makima/src/db/models.rs @@ -2849,12 +2849,37 @@ pub struct UpdateDirectiveRequest { pub version: Option<i32>, } +/// Lightweight contract summary attached to a chain step. +#[derive(Debug, FromRow, Serialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct StepContractSummary { + pub id: Uuid, + pub name: String, + pub contract_type: String, + pub phase: String, + pub status: String, + pub task_count: i64, + pub tasks_done: i64, + pub tasks_running: i64, + pub tasks_failed: i64, +} + +/// Chain step enriched with optional contract summary. +#[derive(Debug, Serialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct ChainStepWithContract { + #[serde(flatten)] + pub step: ChainStep, + pub contract_summary: Option<StepContractSummary>, +} + /// Directive with its chains and steps for detail view. #[derive(Debug, Serialize, ToSchema)] #[serde(rename_all = "camelCase")] pub struct DirectiveWithChains { #[serde(flatten)] pub directive: Directive, + pub orchestrator_contract_summary: Option<StepContractSummary>, pub chains: Vec<ChainWithSteps>, } @@ -2903,6 +2928,8 @@ pub struct ChainStep { pub status: String, pub contract_id: Option<Uuid>, pub supervisor_task_id: Option<Uuid>, + pub monitoring_contract_id: Option<Uuid>, + pub monitoring_task_id: Option<Uuid>, pub confidence_score: Option<f64>, pub confidence_level: Option<String>, pub evaluation_count: i32, @@ -2922,5 +2949,62 @@ pub struct ChainStep { pub struct ChainWithSteps { #[serde(flatten)] pub chain: DirectiveChain, - pub steps: Vec<ChainStep>, + pub steps: Vec<ChainStepWithContract>, +} + +/// Full row from directive_evaluations table. +#[derive(Debug, Clone, FromRow, Serialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct DirectiveEvaluation { + pub id: Uuid, + pub directive_id: Uuid, + pub chain_id: Option<Uuid>, + pub step_id: Option<Uuid>, + pub contract_id: Option<Uuid>, + pub evaluation_type: String, + pub evaluation_number: i32, + pub evaluator: Option<String>, + pub passed: bool, + pub overall_score: Option<f64>, + pub confidence_level: Option<String>, + #[sqlx(json)] + pub programmatic_results: serde_json::Value, + #[sqlx(json)] + pub llm_results: serde_json::Value, + #[sqlx(json)] + pub criteria_results: serde_json::Value, + pub summary_feedback: String, + pub rework_instructions: Option<String>, + #[sqlx(json)] + pub directive_snapshot: Option<serde_json::Value>, + #[sqlx(json)] + pub deliverables_snapshot: Option<serde_json::Value>, + pub started_at: DateTime<Utc>, + pub completed_at: Option<DateTime<Utc>>, + pub created_at: DateTime<Utc>, +} + +/// Full row from directive_events table. +#[derive(Debug, Clone, FromRow, Serialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct DirectiveEvent { + pub id: Uuid, + pub directive_id: Uuid, + pub chain_id: Option<Uuid>, + pub step_id: Option<Uuid>, + pub event_type: String, + pub severity: String, + #[sqlx(json)] + pub event_data: Option<serde_json::Value>, + pub actor_type: String, + pub actor_id: Option<Uuid>, + pub created_at: DateTime<Utc>, +} + +/// Response for evaluation list endpoint. +#[derive(Debug, Serialize, ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct EvaluationListResponse { + pub evaluations: Vec<DirectiveEvaluation>, + pub total: i64, } |
