- common/anchoring 이식 패키지 신설: 원본(schedules/anchoring)에서 읽기 경로 발췌 (constants·base_table·service) + reader 이식판(Redis 미사용 — current_rates 뷰 단일 쿼리, 실패·무이력 시 정적 테이블 폴백으로 견적 생성 무중단) - _build_quotation: 목표가 산정과 앵커 산출 분리 — 칸(items.company_id × quotations.supplier_type × 가격구간) rate 로 tp*(1000-rate)//1000 정수 박제, anchor_rate_permille 동시 기록. quotation_settings.anchoring_value 계산 사용 중단 - 재생성(regenerate_next_round): target_price 만 상속, 앵커는 생성 시점 rate 재계산 (인수인계 규칙 1 — 상속 폐지) - sessions 모델 anchor_rate_permille 매핑, crud get_item_companies 신설 - 테스트 6종 신설(스키마 부재 폴백·칸별 조정 반영·유형 미지정·재생성 재계산· bracket 경계 골든 벡터) — 전체 스위트 50 통과 - negodata 담당자 승인 하 직접 적용. 6개월 압축 시뮬레이션(격주 배치 13회, 세션 522건)으로 박제→소비→재박제 루프·클램프·이월·이중소비 방지 검증 완료 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
23 lines
1.0 KiB
Python
23 lines
1.0 KiB
Python
"""앵커링 v1.2 읽기 경로 이식 패키지.
|
||
|
||
원본: `schedules/anchoring/src/anchoring` (자립 모듈). 견적/세션 생성 시
|
||
칸(회사 × 협력사유형 × 가격구간) rate 를 조회해 앵커링가를 정수 연산으로 박제하는 데
|
||
필요한 부분만 이식했다 — 명세: `schedules/anchoring/docs/인수인계.md` §1.
|
||
|
||
값 조정(격주 배치)·표본 판정은 이식 대상이 아니다(schedules/anchoring 서비스 담당).
|
||
상수·계산식을 고칠 일이 생기면 원본 모듈과 반드시 함께 고친다(단독 수정 금지).
|
||
"""
|
||
from common.anchoring.base_table import get_base_rate_permille, load_base_table
|
||
from common.anchoring.constants import SAMPLEABLE_SUPPLIER_TYPES
|
||
from common.anchoring.reader import fetch_current_rates
|
||
from common.anchoring.service import calc_anchor_price, calc_bracket_index
|
||
|
||
__all__ = [
|
||
"SAMPLEABLE_SUPPLIER_TYPES",
|
||
"calc_anchor_price",
|
||
"calc_bracket_index",
|
||
"fetch_current_rates",
|
||
"get_base_rate_permille",
|
||
"load_base_table",
|
||
]
|