# 경조사비 ↔ 대시보드 가지급금 연동 요청

> **작성일**: 2026-03-19
> **요청자**: FE 개발팀
> **대상**: 백엔드 개발팀
> **우선순위**: 정책 확인 후 결정

---

## 1. 현황

### 현재 구조

경조사비 관련 데이터가 **2개의 별도 테이블**에서 관리되고 있으며, 대시보드와 경조사비 관리 페이지가 서로 다른 데이터를 조회합니다.

| 구분 | 대시보드 가지급금 "경조사" | 경조사비 관리 페이지 |
|------|----------------------|-----------------|
| **테이블** | `loans` (category = `congratulatory`) | `condolence_expenses` |
| **API** | `GET /api/v1/loans/dashboard` | `GET /api/v1/condolence-expenses` |
| **개념** | 경조사 관련 가지급금 (선지급 → 정산) | 경조사비 직접 지출 기록 |
| **날짜 기준** | `loan_date` (대출일) | `event_date` (경조사일) |
| **금액 의미** | `amount - settlement_amount` (미정산 잔액) | `cash_amount + gift_amount` (지출 총액) |
| **FE 페이지** | 대시보드 > 가지급금 현황 카드 | 회계관리 > 경조사비 |

### 발생 이슈

1. 경조사비 관리 페이지에서 등록한 데이터가 대시보드 가지급금 "경조사" 항목에 반영되지 않음
2. 사용자 관점에서 "경조사비를 등록했는데 대시보드에 안 보인다"는 혼란 발생 가능
3. 두 시스템의 "경조사" 데이터가 별개로 존재하여 일관성 부족

---

## 2. 정책 결정 필요 사항

아래 3가지 방안 중 선택이 필요합니다.

### 방안 A: 대시보드에 `condolence_expenses` 합산

```
대시보드 가지급금 "경조사" = loans(congratulatory) + condolence_expenses 합산
```

- **장점**: 사용자가 등록한 경조사비가 즉시 대시보드에 반영
- **단점**: 가지급금(미정산)과 지출(확정)이 혼합되어 금액 의미가 모호해짐
- **수정 범위**: `LoanService::getCategoryBreakdown()` 수정

### 방안 B: 대시보드에 별도 항목 추가

```
가지급금 현황:
  카드     1,150만
  경조사    30만      ← loans 테이블 (기존)
  경조사비   10만      ← condolence_expenses 테이블 (신규)
  상품권    50만
  접대비    45만
```

- **장점**: 데이터 출처가 명확, 이중 집계 없음
- **단점**: 카드가 5→6개로 증가, UI 조정 필요
- **수정 범위**: `LoanService::dashboard()` + FE `CardManagementSection` 수정

### 방안 C: `condolence_expenses` 등록 시 `loans` 자동 생성

```
경조사비 등록 → loans 테이블에 category=congratulatory로 자동 삽입
```

- **장점**: 단일 데이터 소스, 대시보드 자동 반영
- **단점**: 서비스 간 결합도 증가, 양쪽 삭제/수정 시 동기화 복잡
- **수정 범위**: `CondolenceExpenseService::store/update/destroy()` + `LoanService` 연동

### 방안 D: 현행 유지 (별개 관리)

- **장점**: 수정 없음, 각 시스템 독립 운영
- **단점**: 사용자 혼란 지속
- **수정 범위**: 없음 (문서/가이드로 안내)

---

## 3. 참고: 현재 코드 위치

### 백엔드 (sam-api)

| 파일 | 역할 |
|------|------|
| `app/Services/LoanService.php` 라인 524-660 | `dashboard()`, `getCategoryBreakdown()` |
| `app/Models/Tenants/Loan.php` 라인 52-78 | 카테고리 상수 (CATEGORY_CONGRATULATORY) |
| `app/Services/CondolenceExpenseService.php` | 경조사비 CRUD + summary |

### 프론트엔드 (sam-react)

| 파일 | 역할 |
|------|------|
| `src/hooks/useCEODashboard.ts` 라인 118-134 | 가지급금 데이터 fetch (`/loans/dashboard`) |
| `src/lib/api/dashboard/transformers/expense.ts` 라인 203-211 | cm2(경조사) 카드 변환 |
| `src/components/business/CEODashboard/sections/CardManagementSection.tsx` | 가지급금 UI |

---

## 4. 요청 사항

1. **방안 A~D 중 선택** 후 FE팀에 전달
2. 선택된 방안에 따라 **API 수정 범위** 확정
3. 수정 완료 후 FE 연동 작업 진행

---

**최종 업데이트**: 2026-03-19