Skip to content

feat: 기사 견적 반려 API - #39

Merged
soooob43 merged 1 commit into
devfrom
feature/received-estimate-requests
Jul 27, 2026
Merged

soooob43 merged 1 commit into
devfrom
feature/received-estimate-requests

Conversation

@soooob43

@soooob43 soooob43 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

📌 작업 내용

기사님이 고객의 견적 요청을 반려하고 반려 사유 저장할 수 있는 API 구현

✅ 변경 사항

  • POST /api/estimates/requests/:estimateRequestId/reject 견적 요청 반려 API 추가
  • 반려 사유 최소 10자, 최대 1000자 유효성 검사 추가
  • 기사 프로필, 요청 상태, 만료 여부, 서비스 가능 이사 유형 검증
  • 이미 견적을 전송했거나 반려한 요청에 대한 중복 처리 방지
  • 견적 전송과 반려에서 사용하는 견적 요청 조회 Repository 함수 공통화(메소드 이름만 변경했음)
  • 반려 API 테스트용 활성 견적 요청 시드 데이터 추가 및 동작 확인

🧪 테스트

  • 서버 실행 확인
  • API 동작 확인
  • DB 연동 확인
  • 로그 확인
  • 기타:

테스트 방법

  1. GET http://localhost:5000/api/estimates/requests?limit=10 목록 조회하여 반려할 request ID 찾기
  2. POST http://localhost:5000/api/estimates/requests/4/reject id 넣어서 반려 요청 전송
    ** body:
    {
    "reason": "~이유로 반려합니다."
    }

📷 스크린샷 (선택)

image

반려 전송 후
image

🔥 체크리스트

  • 코드 컨벤션을 준수했습니다.
  • 불필요한 console.log를 제거했습니다.
  • ESLint 오류가 없습니다.
  • 변경 사항을 직접 테스트했습니다.
  • 관련 문서를 업데이트했습니다. (필요 시)

🙏 To Reviewer

Summary by CodeRabbit

  • 새로운 기능
    • 기사가 견적 요청을 반려할 수 있는 기능을 추가했습니다.
    • 반려 사유를 입력하고 제출할 수 있으며, 10~1,000자 범위로 검증됩니다.
    • 유효하지 않거나 이미 처리된 견적 요청은 반려할 수 없습니다.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 5d39dac3-9648-407e-bfc5-483041ee9304

📥 Commits

Reviewing files that changed from the base of the PR and between 05dc410 and d0e2631.

📒 Files selected for processing (6)
  • src/modules/estimate/estimate.controller.ts
  • src/modules/estimate/estimate.repository.ts
  • src/modules/estimate/estimate.route.ts
  • src/modules/estimate/estimate.service.ts
  • src/modules/estimate/estimate.type.ts
  • src/modules/estimate/estimate.validator.ts

📝 Walkthrough

Walkthrough

기사의 견적 요청 반려 기능을 추가했습니다. 반려 사유를 검증하고, 요청 상태·만료·서비스 가능 여부·중복 이력을 확인한 뒤 반려 정보를 저장합니다.

Changes

견적 요청 반려

Layer / File(s) Summary
반려 입력 계약과 검증
src/modules/estimate/estimate.type.ts, src/modules/estimate/estimate.validator.ts
반려 사유의 입력 타입을 추가하고, 공백 제거 및 10~1000자 검증을 적용합니다.
반려 검증과 저장
src/modules/estimate/estimate.service.ts, src/modules/estimate/estimate.repository.ts
기사와 견적 요청 조건 및 기존 이력을 확인한 뒤 트랜잭션으로 반려 레코드를 생성합니다. 견적 전송 조회 메서드도 기사 작업용 이름으로 변경합니다.
반려 엔드포인트 연결
src/modules/estimate/estimate.route.ts, src/modules/estimate/estimate.controller.ts
POST /requests/:estimateRequestId/reject 라우트를 추가하고, 검증된 요청을 서비스로 전달해 성공 응답을 반환합니다.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Mover
  participant estimateRouter
  participant estimateController
  participant moverEstimateRequestService
  participant moverEstimateRequestRepository
  Mover->>estimateRouter: POST /requests/:estimateRequestId/reject
  estimateRouter->>estimateController: 인증 및 Body 검증 후 호출
  estimateController->>moverEstimateRequestService: rejectEstimate(...)
  moverEstimateRequestService->>moverEstimateRequestRepository: 요청 및 기사 정보 조회
  moverEstimateRequestService->>moverEstimateRequestRepository: 반려 레코드 생성
  moverEstimateRequestService-->>estimateController: 결과 반환
  estimateController-->>Mover: 201 success 응답
Loading

Possibly related PRs

Suggested reviewers: obebe-creator, juengseulki

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed 주요 변경인 기사 견적 반려 API를 정확히 짚고 있어 간결하고 명확합니다.
Description check ✅ Passed 필수 섹션과 테스트/변경 사항/스크린샷이 대부분 채워져 템플릿 요구를 충족합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/received-estimate-requests

Comment @coderabbitai help to get the list of available commands.

@Obebe-creator Obebe-creator left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR확인했습니다!

기존 견적 제안 API 흐름 유지하며 계층 구도도 컨벤션과 맞게 잘 작성된 것으로 보입니다.
특별히 수정 요청 드릴 부분은 없어 보입니다

@soooob43
soooob43 merged commit 85d43ed into dev Jul 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants