netx/netx_api/collection_schemas.py
oliver 6642f4b8b5 Add collect dashboard KPIs and create-job modal.
Align collection tasks with LLDP/config-sync chrome, and refresh active-task overview when jobs change.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 14:08:13 +08:00

63 lines
1.4 KiB
Python

from __future__ import annotations
from datetime import datetime
from pydantic import BaseModel, Field
class CollectionJobCreate(BaseModel):
title: str = ""
commands: str = Field(min_length=1)
ne_ids: list[str] = Field(default_factory=list)
ume_ne_ids: list[str] = Field(default_factory=list)
class CollectionRunOut(BaseModel):
id: str
job_id: str
ne_id: str
ne_source: str = "managed"
ne_name: str
ne_ip: str
status: str
message: str
output_rel_path: str
has_output: bool
started_at: datetime | None
ended_at: datetime | None
class CollectionJobOut(BaseModel):
id: str
title: str
commands: str
status: str
ne_count: int
success_count: int
fail_count: int
output_count: int = 0
error_message: str
created_at: datetime
started_at: datetime | None
ended_at: datetime | None
last_run_at: datetime | None = None
class CollectionJobSummary(BaseModel):
id: str
title: str
status: str
ne_count: int
success_count: int
fail_count: int
created_at: datetime | None = None
started_at: datetime | None = None
ended_at: datetime | None = None
last_run_at: datetime | None = None
class CollectionDashboardOut(BaseModel):
job_count: int = 0
active_count: int = 0
running_job: CollectionJobSummary | None = None
last_job: CollectionJobSummary | None = None