import { ReactNode, forwardRef } from 'react';
import { cn } from '@/lib/utils';

export interface DocumentWrapperProps {
  children: ReactNode;
  /** 텍스트 크기 (기본: text-xs) */
  fontSize?: 'text-[10px]' | 'text-[11px]' | 'text-xs' | 'text-sm';
  /** print-area 클래스 자동 추가 (기본: true) */
  printArea?: boolean;
  /** 추가 className */
  className?: string;
}

/**
 * 문서 A4 래퍼
 *
 * 모든 문서 컴포넌트의 최외곽 컨테이너.
 * 일관된 배경색, 패딩, 최소 높이, 프린트 클래스를 제공합니다.
 *
 * @example
 * <DocumentWrapper>
 *   <DocumentHeader title="발주서" />
 *   <DocumentTable>...</DocumentTable>
 * </DocumentWrapper>
 *
 * @example
 * // 작은 폰트 + 커스텀 클래스
 * <DocumentWrapper fontSize="text-[11px]" className="leading-tight">
 *   ...
 * </DocumentWrapper>
 */
export const DocumentWrapper = forwardRef<HTMLDivElement, DocumentWrapperProps>(
  function DocumentWrapper({ children, fontSize = 'text-xs', printArea = true, className }, ref) {
    return (
      <div
        ref={ref}
        className={cn(
          'bg-white p-8 min-h-full',
          fontSize,
          printArea && 'print-area',
          className,
        )}
      >
        {children}
      </div>
    );
  },
);
