"""
시간 표시 헬퍼.

여러 모듈에서 `f"{h}시간 {m}분"` 패턴을 중복하던 것을 단일 함수로.
"""
from __future__ import annotations


def format_hours_minutes(total_minutes: int, *, omit_zero_minutes: bool = False) -> str:
    """분을 "X시간 Y분" 형식으로.

    Args:
        total_minutes: 총 분 (음수 가능 — 절댓값 표시)
        omit_zero_minutes: True면 "X시간"처럼 0분 생략

    Examples:
        >>> format_hours_minutes(90)
        '1시간 30분'
        >>> format_hours_minutes(60, omit_zero_minutes=True)
        '1시간'
        >>> format_hours_minutes(45)
        '0시간 45분'
        >>> format_hours_minutes(45, omit_zero_minutes=True)
        '45분'
    """
    minutes = abs(int(total_minutes))
    h, m = divmod(minutes, 60)
    if omit_zero_minutes:
        if h == 0:
            return f"{m}분"
        if m == 0:
            return f"{h}시간"
    return f"{h}시간 {m}분"
