/* ============================================================================= * M02_DF_Rule.ts * 선 규칙 · 끝수 → 엑셀 수식 — 우리 스프레드시트 엔진 한 벌로 셈 · 선 위 규칙 글(쉬운 말) · DOM 없음 * ========================================================================== */ import type { CfRound, CfRule } from "./M02_DF_Model"; /** 규칙을 지난 값 — 통과 안 됨 · 표에 없는 조건 · 둘 이상 맞음은 value null + why */ export interface CfRuleResult { value: number | string | boolean | null; why: "통과 안 됨" | "표에 없는 조건" | "표에 여럿 맞음" | "오류" | null; /** 받는 칸에 들어갈 엑셀 수식(보이기 · 시험) */ formula: string; } /** 선 위에 늘 보일 규칙 글 */ export function ruleLabel(_rule: CfRule): string { throw new Error("준비 중"); } /** 규칙 적용 — value = 보낸 알약 값(표면 머리 줄 포함 칸 덩어리) · conds = 조건 알약 값(lookup · gate) */ export function applyRule( _rule: CfRule, _value: unknown, _conds: Record = {}, ): CfRuleResult { throw new Error("준비 중"); } /** 끝수 적용 — 엔진 ROUND · ROUNDUP · ROUNDDOWN */ export function applyRound(_round: CfRound, _value: number): number { throw new Error("준비 중"); }