- database.py: PostgreSQL 연결 설정 및 세션 관리 - models.py: Project, File, Material SQLAlchemy 모델 정의 - schemas.py: Pydantic 요청/응답 스키마 정의 - 완전한 데이터베이스 연동 구조 완성
37 lines
868 B
Python
37 lines
868 B
Python
from pydantic import BaseModel
|
|
from datetime import datetime
|
|
from typing import Optional, List
|
|
from decimal import Decimal
|
|
|
|
# 프로젝트 스키마
|
|
class ProjectBase(BaseModel):
|
|
official_project_code: Optional[str] = None
|
|
project_name: str
|
|
client_name: Optional[str] = None
|
|
design_project_code: Optional[str] = None
|
|
design_project_name: Optional[str] = None
|
|
description: Optional[str] = None
|
|
notes: Optional[str] = None
|
|
|
|
class ProjectCreate(ProjectBase):
|
|
pass
|
|
|
|
class ProjectUpdate(ProjectBase):
|
|
project_name: Optional[str] = None
|
|
|
|
class Project(ProjectBase):
|
|
id: int
|
|
is_code_matched: bool
|
|
status: str
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
# 응답 스키마
|
|
class ProjectResponse(BaseModel):
|
|
projects: List[Project]
|
|
total: int
|
|
message: str
|