Skip to content

[FEATURE] - 구독 관리 API 추가 개발 #62

@qor0530

Description

@qor0530

📌 Description

추가하려는 기능에 대해 설명해주세요.
기존 멤버십 업그레이드 외에 구독 활성화/해지 기능을 추가

✅ To-do

  1. 구독 해지 API
  • PATCH /api/v1/membership/cancel 엔드포인트 생성
    • subscription_expire_date는 유지 (기간 만료까지 사용 가능)
    • auto_renewal: bool = False 플래그 추가 (선택사항)
    • 응답: 해지 완료 메시지 + 남은 사용 기간
  1. 구독 갱신 API
  • PATCH /api/v1/membership/renew 엔드포인트 생성
    • 현재 만료일 기준으로 +30일 연장
    • 결제 이력 생성
  1. 결제 트랜잭션 처리 강화
  • MembershipService.upgrade_membership에 트랜잭션 보장
    • 이미 await db.commit() 사용 중 ✅
    • 실패 시 롤백 처리 추가
  try:
      # User 업데이트
      # PaymentHistory 생성
      await db.commit()
  except Exception as e:
      await db.rollback()
      raise
  1. 자동 만료 처리 (선택사항)
  • 스케줄러 또는 배치 작업으로 만료된 구독 처리
    • subscription_expire_date < now() 인 사용자를 FREE로 변경
    • 또는 API 요청 시마다 확인하는 미들웨어 구현
  1. 구독 상태 조회 개선
  • 기존 GET /api/v1/membership/info에 필드 추가
    • days_remaining: int (남은 일수)
    • auto_renewal: bool (자동 갱신 여부)

🔔 ETC

질문이나 참고사항 또는 참고한 자료 등을 알려주세요 (선택사항)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions