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

"""
项目相关的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