송용우 07415b0ce7 + 벡엔드 ddl 삭제후 중첩되지 않도록 신규로 필요한 부분만 다시 생성 4 mesi fa
..
app 07415b0ce7 + 벡엔드 ddl 삭제후 중첩되지 않도록 신규로 필요한 부분만 다시 생성 4 mesi fa
README.md 6ceaa8e61c + 작업중 파일 4 mesi fa

README.md

Influence Backend API

기존 동작하는 코드를 기반으로 구성된 벤더-인플루언서 관계 관리 API

프로젝트 구조

backend/
├── app/
│   ├── Config/
│   │   └── Routes.php              # API 라우트 설정
│   ├── Controllers/
│   │   └── VendorInfluencerController.php  # 메인 컨트롤러
│   └── Models/
│       ├── VendorInfluencerMappingModel.php  # 벤더-인플루언서 매핑 모델
│       ├── VendorModel.php         # 벤더사 모델
│       └── UserModel.php           # 사용자 모델
└── README.md

API 엔드포인트

벤더-인플루언서 관계 관리

  • POST /api/vendor-influencer/request - 승인요청 생성
  • POST /api/vendor-influencer/requests - 요청목록 조회 (벤더사용)
  • POST /api/vendor-influencer/process - 승인/거부 처리
  • POST /api/vendor-influencer/cancel - 요청취소
  • POST /api/vendor-influencer/list - 관계목록 조회 (인플루언서용)
  • POST /api/vendor-influencer/detail - 상세 조회

벤더사 검색

  • POST /api/vendor/search - 벤더사 검색 (인플루언서용)

주요 기능

1. 벤더사 검색 (searchVendors)

  • 키워드, 카테고리, 지역별 검색
  • 정렬: latest, partnership, name
  • 페이징 지원
  • 파트너십 상태 확인

2. 승인요청 생성 (createRequest)

  • 중복 요청 방지
  • 만료일 자동 설정 (7일)
  • 요청 메시지, 수수료율, 특별조건 포함

3. 승인요청 목록 조회 (getList)

  • 벤더사/인플루언서별 필터링
  • 키워드 검색, 카테고리 필터
  • 정렬: latest, oldest, expiring
  • 통계 정보 제공 (pending, approved, rejected, total)

4. 승인/거부 처리 (approveRequest)

  • action 파라미터로 APPROVE/REJECT 구분
  • 응답 메시지, 수수료율 설정
  • 처리자 및 처리일시 기록

5. 요청 취소 (cancelRequest)

  • 권한 확인
  • 취소 사유 기록

6. 상세 조회 (getDetail)

  • 벤더사, 인플루언서 정보 포함
  • 매핑 정보 상세 조회

데이터베이스 테이블

VENDOR_INFLUENCER_MAPPING

  • 벤더사-인플루언서 관계 매핑
  • 승인요청, 상태, 메시지, 수수료율 등

VENDOR_LIST

  • 벤더사 정보
  • 회사명, 카테고리, 지역, 로고 등

USER_LIST

  • 사용자 정보 (인플루언서 포함)
  • 회원유형, 프로필, 카테고리 등

기존 코드 호환성

이 API는 기존 동작하는 코드와 100% 호환됩니다:

  • 기존 메서드 시그니처 유지
  • 동일한 요청/응답 포맷
  • 기존 데이터베이스 구조 활용
  • 추가 기능만 확장

사용 예시

벤더사 검색

const response = await fetch('/api/vendor/search', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
        keyword: '패션',
        category: 'FASHION_BEAUTY',
        region: 'SEOUL',
        sortBy: 'latest',
        page: 1,
        size: 12,
        influencerSeq: 123
    })
});

승인요청 목록 조회 (벤더사용)

const response = await fetch('/api/vendor-influencer/requests', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
        vendorSeq: 456,
        status: 'PENDING',
        keyword: '인플루언서명',
        sortBy: 'latest',
        page: 1,
        size: 12
    })
});

승인 처리

const response = await fetch('/api/vendor-influencer/process', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
        mappingSeq: 789,
        action: 'APPROVE', // or 'REJECT'
        processedBy: 456,
        responseMessage: '승인합니다.'
    })
});