올스틸 새 OS

올스틸 새 OS — 시스템 구조

저장소: db 테스트 16 green 생성 2026-06-05 00:39 UTC JSON
아키텍처 (계층 의존)
graph TD
  API[api 어댑터] --> SVC[services]
  SVC --> CORE[core 앵커·파이프라인]
  SVC --> DOM[domain/steel 철강지식]
  SVC --> PERS[persistence DB]
  DOM --> CORE
  PERS --> CORE
계층
apiHTTP 어댑터 (얇음, services 만 호출)
routes · schemas · structure
services서비스-우선 — 비즈니스 로직 경계
spec · price · material · party · order · stores
core철강 모르는 일반 앵커·파이프라인 (내구 자산)
spec · material · registry · pricing · party · order
domain/steel철강 지식 도메인 팩 (코어 수정 없이 추가)
shapes · ops · standard_tables · config · materials
persistenceDB 저장소 — SQLAlchemy sync only
models · mappers · db_stores
데이터 모델 (앵커 관계)
graph LR
  PARTY[Party 고객·거래처]
  SPEC[SpecObject 사양]
  ORDER[Order 견적=주문]
  MAT[Material 재질]
  BRK[Breakdown 가격분해]
  PROJ[Project 철골공사]
  NOTE[ProjectNote 협의기록]
  ORDER -->|party_id| PARTY
  ORDER -->|lines spec_id+수량| SPEC
  SPEC -->|material_code| MAT
  SPEC -->|price.compute| BRK
  PROJ -->|발주처 party_id| PARTY
  NOTE -->|project_id| PROJ
주문 상태머신 (견적=주문)
stateDiagram-v2
  [*] --> draft
  draft --> cancelled
  draft --> quoted
  quoted --> cancelled
  quoted --> draft
  quoted --> ordered
  ordered --> cancelled
  ordered --> completed
엔티티 (코어 dataclass)
Party core
고객·거래처 통합 앵커 (tail-8 매칭)
id : str
name : str
kind : str
phone : Optional[str]
email : Optional[str]
tier : str
memo : Optional[str]
created_at : Optional[str]
updated_at : Optional[str]
SpecObject core
4분야 통합 사양객체 앵커
id : str
category : str
kind : Optional[str]
name : str
geometry : Geometry
material_code : str
process_chain : list[ProcessStep]
attachments : list[Component]
sku_code : Optional[str]
lineage : Lineage
status : str
promoted : bool
derived : Optional[Derived]
Order core
견적=주문 한 엔티티 + 상태머신
id : str
party_id : str
status : str
channel : str
lines : list[OrderLine]
memo : Optional[str]
created_at : Optional[str]
updated_at : Optional[str]
OrderLine core
주문 라인 — 척추 가격 스냅샷
spec_id : str
quantity : int
channel : str
breakdown : Breakdown
Material core
재질 마스터 (비중·소재단가)
code : str
name : str
category : str
density : float
base_cost : float
props : Optional[dict]
Breakdown core
가격 분해 — 단계별 감사 로그
unit_weight : float
total_weight : float
material_cost : float
process_cost : float
cost : float
price : dict[str, float]
weight_source : str
lines : list[dict]
Project core
철골 공사 — 협의~시공 라이프사이클 추적
id : str
name : str
party_id : Optional[str]
client_name : Optional[str]
location : Optional[str]
tonnage : Optional[float]
contract_amount : Optional[float]
period_from : Optional[str]
period_to : Optional[str]
stage : str
status : str
summary : Optional[str]
created_at : Optional[str]
updated_at : Optional[str]
ProjectNote core
공사 협의/요구사항/이슈 기록
id : str
project_id : str
kind : str
title : str
body : str
verdict : str
status : str
counterpart : Optional[str]
occurred_at : Optional[str]
created_at : Optional[str]
API 엔드포인트 (openapi)
METHODPATH도메인
GET/
GET/assets/ui.css
GET/assets/ui.js
GET/health
GET/materialmaterial
GET/material/{code}material
POST/orderorder
GET/orderorder
GET/order/{order_id}order
POST/order/{order_id}/linesorder
POST/order/{order_id}/transitionorder
GET/partyparty
POST/partyparty
POST/party/mergeparty
POST/party/upsertparty
GET/party/{party_id}party
POST/price/computeprice
GET/projectproject
POST/projectproject
PATCH/project/notes/{note_id}project
GET/project/stagesproject
GET/project/{project_id}project
PATCH/project/{project_id}project
POST/project/{project_id}/notesproject
GET/project/{project_id}/notesproject
POST/project/{project_id}/stageproject
GET/projectsweb
GET/quoteweb
GET/specspec
POST/specspec
GET/spec/{spec_id}spec
POST/spec/{spec_id}/promotespec
GET/structurestructure
GET/structure.jsonstructure
빌드 상태
✓ 척추 가격엔진(결정론)✓ 상거래 Party·Order✓ API 어댑터✓ DB 영속화(PostgreSQL)✓ TLS/HTTPS✓ 간단 프론트(/quote)✓ 철골 공사(/projects 협의추적)
○ 견적 가격 실값(ERP 포팅)○ 인증○ MCP 어댑터○ 도메인 placeholder 실데이터○ Alembic 마이그레이션○ 고객 워크스페이스(채널 인입)