2026-06-12 PinPoint 작업일지입니다. 오늘은 6건의 작업을 진행했습니다.
`consultation-management`
현상/기능
- 현장소장 배정 팝업에서 이름·연락처·업체명만 검색되던 것을 모든 컬럼 검색 + 키워드 2개(공백 구분, AND) 지원
작업
- 파일: `src/app/consultation-management/components/`
- 내용
- 활성 소장 목록 전체 로드 후 클라이언트 필터 적용
- 이름·연락처·지역(시/구)·업체명·진행현장 건수 대상 검색
- 공백으로 구분된 키워드 최대 2개, 모두 일치(AND) 시 결과 표시
- 검색 placeholder·빈 결과 메시지 갱신
- 완료 여부: 코드 수정 완료 — 팝업에서 `서울 강남`, `홍길동 010` 등 검색 테스트 필요
`landing` (`src/app/`)
현상/기능
- 랜딩 `ContactSection`의 파트너 모집·고객 문의가 `customer_receptions`에 구분 없이 저장됨 → 컬럼 분리 및 저장 시 구분
현상/기능
- 파트너 신청 시 「문의 진행 알림 수신 동의」 체크 불필요
작업
- 파일
- 내용
- `prisma/migrations/20260612000000_add_customer_receptions_reception_type.sql`
- `prisma/procedures/customer_receptions.sql`
- `src/lib/`
- `src/components/landing/`
- `src/app/api/customer-receptions/submit/`
- `src/app/api/customer-receptions/`
- `src/app/api/customer-receptions/[id]/`
- `src/app/api/customers/[id]/receptions/`
- `customer_receptions.reception_type` 컬럼 추가 (`고객문의` / `파트너모집`)
- 기존 `inquiry_route='파트너'` 데이터 이관 후 `inquiry_route`는 홈페이지 경로만 사용
- `create_customer_reception` / `update_customer_reception` / 목록 조회 SP 반영
- 랜딩 제출 시 `receptionType` 전송, 알림 분기도 해당 값 기준으로 변경
- 배포 필요: DB 마이그레이션 SQL + `customer_receptions.sql` 프로시저 재적용
- 완료 여부: 코드·마이그레이션 작성 완료 — DB 반영 후 랜딩 제출 테스트 필요
- 파일: `src/components/landing/`
- 내용: 파트너 폼에서 동의 체크박스·`alertAgree` 상태·메모 저장 제거 (공사문의 탭은 유지)
- 완료 여부: 완료
`consultation-management`, `partner-recruitment`
현상/기능
- 전체/일반/숨김 필터, 체크박스, 일괄 숨김·삭제 (상담관리·파트너모집)
현상/기능
- 숨김 필터 목록에서 체크 시 버튼을 「일반」으로 바꿔 `is_hidden='N'` 복원
작업
- 파일
- 내용
- `prisma/migrations/20260612200000_add_customer_receptions_is_hidden.sql`
- `prisma/procedures/customer_receptions.sql`
- `src/lib/`
- `src/hooks/`
- `src/components/`
- `src/app/api/customer-receptions/bulk/`
- `is_hidden` 컬럼·목록 필터 SP·`hide_customer_reception` 프로시저
- 표시 select(기본 일반), 검색 뒤 숨김/삭제 버튼, 행 체크박스
- 배포 필요: `is_hidden` 마이그레이션 + 프로시저 재적용
- 완료 여부: 코드 작성 완료 — DB 반영 후 동작 확인 필요
- `prisma/procedures/customer_receptions.sql` (`unhide_customer_reception`)
- `src/app/api/customer-receptions/bulk/` (`action: unhide`)
- `src/components/` (`CustomerReceptionVisibilityActionButton`)
- 표시=숨김일 때 버튼 라벨 「일반」(Eye 아이콘), 클릭 시 일괄 `unhide`
- 그 외 필터에서는 기존과 동일하게 「숨김」 버튼
- 배포 필요: `unhide_customer_reception` 프로시저 재적용
- 완료 여부: 코드 작성 완료 — DB 반영 후 숨김 목록에서 복원 테스트 필요
`partner-recruitment`
현상/기능
- 파트너 모집 관리 페이지에서 진행사항 필드·필터·목록 컬럼 제거
현상/기능
- 파트너 모집 접수 전용 관리 페이지 추가
작업
- 파일
- 내용
- 목록 진행사항 컬럼·툴바 진행사항 필터·상세 진행사항 Select 제거
- 저장 시 상담내용·메모만 전송 (DB status는 기존 값 유지)
- 완료 여부: 완료
- `src/app/partner-recruitment-management/`
- `src/app/partner-recruitment-management/components/*`
- `src/app/api/customer-receptions/partners/`
- `prisma/procedures/customer_receptions.sql` (`get_partner_receptions`)
- `prisma/migrations/20260612100000_add_partner_recruitment_menu.sql`
- `src/lib/` (파트너 알림 링크)
- `reception_type=파트너모집` 전용 목록 API·화면 (좌측 목록 + 우측 상세)
- 진행사항·상담내용·메모 수정·삭제
- 관리업무 메뉴 하위 `파트너 모집` 메뉴 추가
- 배포 필요: `get_partner_receptions` 프로시저 + 메뉴 마이그레이션 SQL
- 완료 여부: 코드 작성 완료 — DB·메뉴 반영 후 `/partner-recruitment-management` 확인 필요
전역 (DataTable)
현상/기능
- 모든 DataTable에서 긴 텍스트가 옆 컬럼과 겹침
작업
- 파일
- 내용
- `src/lib/` (신규 공통 TD/TH 스타일)
- `src/components/` (신규 말줄임+Tooltip 셀)
- `src/components/ui/` (TableCell overflow 기본값)
- 상담·현장·고객·견적·정산·수주·사용자·공사·소장·알림톡·단가·수금·파트너모집 등 20+ 페이지 테이블
- `table-fixed` 셀에 `max-w-0 overflow-hidden` + 내부 `truncate`
- `TruncatedTableCell`로 전체 텍스트 Tooltip 제공
- 완료 여부: 완료 — 화면에서 긴 데이터 셀 확인 권장
`estimate`
현상/기능
- 열 때 "서버 연결에 실패했습니다" 토스트 발생
현상/기능
- 상담조회 팝업에서 더블클릭 시 "견적 데이터를 불러오지 못했습니다." 토스트
작업
- 파일: `src/app/estimate/components/`
- 내용
- `Promise.all`로 묶인 `/api/sites` + `/api/estimates?mode=status-map` 중 보조 API 실패 시 상담 목록까지 실패 처리되던 문제 수정
- `site-management-client`와 동일하게 상담 목록 조회 후 견적 상태 맵을 별도·비동기 조회 (실패해도 목록 유지)
- JSON 파싱 실패·빈 응답 시 구체적 오류 메시지 표시
- 완료 여부: 코드 수정 완료 — 서버 배포·DB 프로시저 반영 후 재확인 필요
- 파일
- `fetchEstimateByReception` — API 오류 메시지(`json.error`) 표시, JSON 파싱 안전 처리, 견적 없음(`data:null`)은 오류 없이 신규 화면
- 상담조회 — 더블클릭 중복 선택 방지
- 서버 확인: `GET /api/estimates?mode=by-reception&receptionId=...` Network 탭 + `estimates.sql`·마이그레이션 배포
- 완료 여부: 코드 수정 완료 — 서버 재배포 후 Network 응답으로 원인 확인 필요