/**
 * 견적 수정 페이지
 */

"use client";

import { useRouter, useParams } from "next/navigation";
import { useState, useEffect } from "react";
import { QuoteRegistration, QuoteFormData, INITIAL_QUOTE_FORM } from "@/components/quotes/QuoteRegistration";
import { toast } from "sonner";
import { ContentLoadingSpinner } from "@/components/ui/loading-spinner";

// 샘플 견적 데이터 (TODO: API에서 가져오기)
const SAMPLE_QUOTE: QuoteFormData = {
  id: "Q2024-001",
  registrationDate: "2025-10-29",
  writer: "드미트리",
  clientId: "client-1",
  clientName: "인천건설 - 최담당",
  siteName: "인천 송도 현장", // 직접 입력
  manager: "김영업",
  contact: "010-1234-5678",
  dueDate: "2025-11-30",
  remarks: "스크린 셔터 부품구성표 기반 자동 견적",
  items: [
    {
      id: "item-1",
      floor: "1층",
      code: "A",
      productCategory: "screen",
      productName: "SCR-001",
      openWidth: "2000",
      openHeight: "2500",
      guideRailType: "wall",
      motorPower: "single",
      controller: "basic",
      quantity: 1,
      wingSize: "50",
      inspectionFee: 50000,
    },
  ],
};

export default function QuoteEditPage() {
  const router = useRouter();
  const params = useParams();
  const quoteId = params.id as string;

  const [quote, setQuote] = useState<QuoteFormData | null>(null);
  const [isLoading, setIsLoading] = useState(true);

  useEffect(() => {
    // TODO: API에서 견적 데이터 가져오기
    const fetchQuote = async () => {
      setIsLoading(true);
      try {
        // 임시: 샘플 데이터 사용
        await new Promise((resolve) => setTimeout(resolve, 300));
        setQuote({ ...SAMPLE_QUOTE, id: quoteId });
      } catch (error) {
        toast.error("견적 정보를 불러오는데 실패했습니다.");
        router.push("/sales/quote-management");
      } finally {
        setIsLoading(false);
      }
    };

    fetchQuote();
  }, [quoteId, router]);

  const handleBack = () => {
    router.push("/sales/quote-management");
  };

  const handleSave = async (formData: QuoteFormData) => {
    // TODO: API 연동
    console.log("견적 수정 데이터:", formData);

    // 임시: 성공 시뮬레이션
    await new Promise((resolve) => setTimeout(resolve, 500));

    toast.success("견적이 수정되었습니다. (API 연동 필요)");
  };

  if (isLoading) {
    return <ContentLoadingSpinner text="견적 정보를 불러오는 중..." />;
  }

  return (
    <QuoteRegistration
      onBack={handleBack}
      onSave={handleSave}
      editingQuote={quote}
    />
  );
}
