nex_docus/backend/app/schemas/git_repo.py

42 lines
1.1 KiB
Python

"""
Git仓库相关的 Pydantic Schema
"""
from pydantic import BaseModel, Field
from typing import Optional
from datetime import datetime
class GitRepoBase(BaseModel):
name: str = Field(..., max_length=50, description="仓库别名")
repo_url: str = Field(..., max_length=255, description="Git仓库地址")
branch: str = Field("main", max_length=50, description="Git分支")
username: Optional[str] = Field(None, description="Git用户名")
token: Optional[str] = Field(None, description="Git访问令牌")
is_default: int = Field(0, description="是否默认仓库")
class GitRepoCreate(GitRepoBase):
"""创建Git仓库 Schema"""
pass
class GitRepoUpdate(BaseModel):
"""更新Git仓库 Schema"""
name: Optional[str] = None
repo_url: Optional[str] = None
branch: Optional[str] = None
username: Optional[str] = None
token: Optional[str] = None
is_default: Optional[int] = None
class GitRepoResponse(GitRepoBase):
"""Git仓库响应 Schema"""
id: int
project_id: int
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True