You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
906 B
38 lines
906 B
"""
|
|
项目相关的Pydantic模式
|
|
"""
|
|
from pydantic import BaseModel
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
|
|
class ProjectBase(BaseModel):
|
|
"""项目基础模式"""
|
|
name: str
|
|
description: Optional[str] = None
|
|
language: str
|
|
repository_url: Optional[str] = None
|
|
project_path: Optional[str] = None
|
|
config: Optional[str] = None
|
|
|
|
class ProjectCreate(ProjectBase):
|
|
"""创建项目模式"""
|
|
pass
|
|
|
|
class ProjectUpdate(BaseModel):
|
|
"""更新项目模式"""
|
|
name: Optional[str] = None
|
|
description: Optional[str] = None
|
|
repository_url: Optional[str] = None
|
|
project_path: Optional[str] = None
|
|
config: Optional[str] = None
|
|
|
|
class ProjectResponse(ProjectBase):
|
|
"""项目响应模式"""
|
|
id: int
|
|
is_active: bool
|
|
created_at: datetime
|
|
updated_at: Optional[datetime] = None
|
|
|
|
class Config:
|
|
from_attributes = True
|