"""문장 분할 (Phase 3.5a — regex 기반).

Phase 3.5b 에서 KSS 라이브러리 기반으로 업그레이드 예정.
"""

import re

MIN_SENTENCE_CHARS = 15


def split_sentences(text: str) -> list[str]:
    """한국어/영어 혼합 텍스트를 문장 단위로 분할.

    규칙:
    - 마침표/느낌표/물음표 + 공백/줄바꿈
    - 한국어 종결 어미 (다. 함. 음. 됨.) 패턴
    - MIN_SENTENCE_CHARS 미만은 이전 문장에 병합
    """
    # 1차 분할: punctuation + whitespace
    raw = re.split(r'(?<=[.!?。])\s+|(?<=[다됨음함]\.)\s+|\n{2,}', text)

    # 2차: 너무 짧은 것 병합
    merged: list[str] = []
    for part in raw:
        part = part.strip()
        if not part:
            continue
        if merged and len(part) < MIN_SENTENCE_CHARS:
            merged[-1] = merged[-1] + " " + part
        else:
            merged.append(part)

    return merged if merged else [text.strip()] if text.strip() else []
