'use client'

import { useServey } from '@/hooks/useSurvey'
import { useParams, useSearchParams } from 'next/navigation'
import { useEffect, useState } from 'react'
import DetailForm from './DetailForm'
import { SurveyBasicInfo } from '@/types/Survey'

export default function DataTable() {
  const params = useParams()
  const id = params.id

  const searchParams = useSearchParams()
  const isTemp = searchParams.get('isTemporary')

  const { surveyDetail, isLoadingSurveyDetail } = useServey(Number(id))
  const [isTemporary, setIsTemporary] = useState(isTemp === 'true')

  const { validateSurveyDetail } = useServey(Number(id))

  useEffect(() => {
    if (surveyDetail?.detailInfo) {
      const validate = validateSurveyDetail(surveyDetail.detailInfo)
      if (validate.trim() !== '') {
        setIsTemporary(false)
      }
    }
  }, [surveyDetail])

  if (isLoadingSurveyDetail) {
    return <div>Loading...</div>
  }

  return (
    <>
      <div className="sale-data-table-wrap">
        <table className="sale-data-table">
          <colgroup>
            <col style={{ width: '80px' }} />
            <col />
          </colgroup>
          <tbody>
            <tr>
              <th>登録番号</th>
              {isTemporary ? (
                <td>
                  <span className="text-red-500">仮保存</span>
                </td>
              ) : (
                <td>{surveyDetail?.id}</td>
              )}
            </tr>
            <tr>
              <th>登録日</th>
              <td>{surveyDetail?.regDt ? new Date(surveyDetail.regDt).toLocaleString() : ''}</td>
            </tr>
            <tr>
              <th>更新日時</th>
              <td>{surveyDetail?.uptDt ? new Date(surveyDetail.uptDt).toLocaleString() : ''}</td>
            </tr>
            <tr>
              <th>提出可否</th>
              <td>
                {surveyDetail?.submissionStatus && surveyDetail?.submissionDate ? (
                  <>
                    {/* TODO: 제출한 판매점 ID 추가 필요 */}
                    <div>{new Date(surveyDetail.submissionDate).toLocaleString()}</div>
                    <div>{surveyDetail.store}</div>
                  </>
                ) : (
                  '-'
                )}
              </td>
            </tr>
            <tr>
              <th>ダウンロード</th>
              <td>
                <button className="data-down">
                  HWJ現地調査票確認<i className="down-icon"></i>
                </button>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
      <DetailForm surveyInfo={surveyDetail as SurveyBasicInfo} mode="READ" />
    </>
  )
}
