/**
 * 단가 등록 페이지
 *
 * 경로: /sales/pricing-management/create?itemId=xxx
 * API: POST /api/v1/pricing
 *
 * item_type_code는 품목 정보에서 자동으로 가져옴 (FG, PT, SM, RM, CS 등)
 */

import { PricingFormClient } from '@/components/pricing';
import { getItemInfo, createPricing } from '@/components/pricing/actions';
import type { PricingData } from '@/components/pricing';

interface CreatePricingPageProps {
  searchParams: Promise<{
    itemId?: string;
    itemCode?: string;
  }>;
}

export default async function CreatePricingPage({ searchParams }: CreatePricingPageProps) {
  const params = await searchParams;
  const itemId = params.itemId || '';

  // 품목 정보 조회
  const itemInfo = itemId ? await getItemInfo(itemId) : null;

  if (!itemInfo && itemId) {
    return (
      <div className="container mx-auto py-6 px-4">
        <div className="text-center py-12">
          <h2 className="text-xl font-semibold mb-2">품목 정보를 찾을 수 없습니다</h2>
          <p className="text-muted-foreground">
            올바른 품목 정보로 다시 시도해주세요.
          </p>
        </div>
      </div>
    );
  }

  // 품목 정보 없이 접근한 경우 (목록에서 바로 등록)
  if (!itemInfo) {
    return (
      <div className="container mx-auto py-6 px-4">
        <div className="text-center py-12">
          <h2 className="text-xl font-semibold mb-2">품목을 선택해주세요</h2>
          <p className="text-muted-foreground">
            단가 목록에서 품목을 선택한 후 등록해주세요.
          </p>
        </div>
      </div>
    );
  }

  // 서버 액션: 단가 등록
  // item_type_code는 data.itemType에서 자동으로 가져옴
  async function handleSave(data: PricingData) {
    'use server';

    const result = await createPricing(data);

    if (!result.success) {
      throw new Error(result.error || '단가 등록에 실패했습니다.');
    }

    console.log('[CreatePricingPage] 단가 등록 성공:', result.data);
  }

  return (
    <PricingFormClient
      mode="create"
      itemInfo={itemInfo}
      onSave={handleSave}
    />
  );
}
