feat: add maintenance_schedules table, schema, and CRUD endpoints
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
34
backend/app/schemas/maintenance_schedule.py
Normal file
34
backend/app/schemas/maintenance_schedule.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from uuid import UUID
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class MaintenanceScheduleCreate(BaseModel):
|
||||
tree_id: UUID
|
||||
cron_expression: str = Field(..., min_length=9, max_length=100)
|
||||
timezone: str = Field("UTC", max_length=100)
|
||||
target_list_id: Optional[UUID] = None
|
||||
|
||||
|
||||
class MaintenanceScheduleUpdate(BaseModel):
|
||||
cron_expression: Optional[str] = Field(None, min_length=9, max_length=100)
|
||||
timezone: Optional[str] = Field(None, max_length=100)
|
||||
target_list_id: Optional[UUID] = None
|
||||
is_active: Optional[bool] = None
|
||||
|
||||
|
||||
class MaintenanceScheduleResponse(BaseModel):
|
||||
id: UUID
|
||||
tree_id: UUID
|
||||
created_by: Optional[UUID]
|
||||
cron_expression: str
|
||||
timezone: str
|
||||
target_list_id: Optional[UUID]
|
||||
is_active: bool
|
||||
next_run_at: Optional[datetime]
|
||||
last_run_at: Optional[datetime]
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
Reference in New Issue
Block a user