37 lines
865 B
Python

from __future__ import annotations
from datetime import datetime
from typing import Optional, Dict, Any
from pydantic import BaseModel, Field, ConfigDict
class TaskBase(BaseModel):
action: str
target: str
playbook: Optional[str] = None
status: str = Field(default="pending")
result_data: Optional[Dict[str, Any]] = None
error_message: Optional[str] = None
class TaskCreate(TaskBase):
pass
class TaskUpdate(BaseModel):
status: Optional[str] = None
started_at: Optional[datetime] = None
completed_at: Optional[datetime] = None
error_message: Optional[str] = None
result_data: Optional[Dict[str, Any]] = None
class TaskOut(TaskBase):
id: str
started_at: Optional[datetime] = None
completed_at: Optional[datetime] = None
created_at: datetime
model_config = ConfigDict(from_attributes=True)