| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # backend/app/schemas.py
- from pydantic import BaseModel
- from typing import Optional, List
- from datetime import datetime
- class CategoryBase(BaseModel):
- name: str
- description: Optional[str] = None
- color: Optional[str] = "#3498DB"
- icon: Optional[str] = "el-icon-DataBoard"
- class CategoryCreate(CategoryBase):
- pass
- class CategoryUpdate(CategoryBase):
- name: Optional[str] = None
- class Category(CategoryBase):
- id: int
- created_at: datetime
- spider_count: Optional[int] = 0
-
- class Config:
- from_attributes = True
- class SpiderBase(BaseModel):
- name: str
- description: Optional[str] = None
- cron_expression: str = "0 0 * * *"
- enabled: bool = True
- timeout: int = 300
- category_id: int
- class SpiderCreate(SpiderBase):
- code_content: Optional[str] = None
- class SpiderUpdate(BaseModel):
- name: Optional[str] = None
- description: Optional[str] = None
- cron_expression: Optional[str] = None
- enabled: Optional[bool] = None
- timeout: Optional[int] = None
- category_id: Optional[int] = None
- code_content: Optional[str] = None
- class Spider(SpiderBase):
- id: int
- filename: str
- file_path: str
- created_at: datetime
- category: Optional[Category] = None
-
- class Config:
- from_attributes = True
- class TaskExecutionLogBase(BaseModel):
- status: str
- trigger_method: str
- class TaskExecutionLogCreate(TaskExecutionLogBase):
- spider_id: int
- class TaskExecutionLog(TaskExecutionLogBase):
- id: int
- spider_id: int
- started_at: datetime
- finished_at: Optional[datetime]
- log_content: Optional[str]
- spider: Optional[Spider] = None
-
- class Config:
- from_attributes = True
- class ListResponse(BaseModel):
- total: int
- items: List
- class SuccessResponse(BaseModel):
- success: bool
- message: str
|