Skip to content

[프로젝트 판매] 선택형 권리 범위를 제거하고 프로젝트 전체 양도로 변경 #8

Description

@aryu1217

배경

프로젝트 판매 정책을 단순화한다. 판매자가 일부 자산과 일부 권리를 골라 판매하는 모델을 사용하지 않는다.

SELL 프로젝트가 구매되면 프로젝트에 등록된 양도 가능한 전체 자산과 프로젝트 운영·수정·상업적 이용에 필요한 권리가 구매자에게 일괄 이전된다. 프론트에서 판매 대상 자산, 판매에 포함하는 권리, 판매에서 제외하는 권리를 선택하거나 서술하게 하면 실제 정책과 어긋나고 구매자가 일부만 이전되는 거래로 오해할 수 있다.

관련 Backend 기존 이슈 #12, #17은 선택 자산·권리 범위를 전제로 작성되어 있으므로 새 전체 이전 계약으로 교체해야 한다.

제품 문구와 정책 문서 변경

docs/product-context.md, docs/business-model.md, 등록·마켓 화면 문구를 다음 원칙으로 통일한다.

  • 프로젝트 판매는 프로젝트 전체 양도다.
  • 등록된 양도 가능 자산을 일부만 제외하거나 별도로 선택하지 않는다.
  • 구매 완료 후 구매자가 프로젝트와 전체 자산의 새 소유자가 된다.
  • 판매자는 법적 기록과 거래 내역을 제외한 프로젝트 수정·재판매·원본 자산 접근 권한을 잃는다.
  • 제3자 자료, 팀 공동 자산 등 판매자가 전체 이전 권한을 확보하지 못한 자산이 있으면 SELL로 등록할 수 없다.
  • 상세 리포트 열람권 구매와 프로젝트 전체 양도는 계속 별개의 거래다.

모든 권리처럼 법적으로 무제한인 표현은 피하고, 화면에는 플랫폼에 등록된 양도 가능한 프로젝트 전체 자산과 관련 권리가 이전된다고 정확히 설명한다.

프로젝트 등록 화면 변경

대상 파일:

  • features/project-registration/model/types.ts
  • features/project-registration/model/default-draft.ts
  • features/project-registration/model/validation.ts
  • features/project-registration/components/steps/purpose-step.tsx
  • features/project-registration/components/steps/review-step.tsx
  • features/project-registration/api/register-project.ts

변경 사항:

  • saleAssetIds, saleRightsScope 입력과 검증을 제거한다.
  • 판매 목적에서 개별 판매 대상 자산 선택 UI를 제거한다.
  • 가격 방식과 희망 판매가는 유지한다.
  • 판매자가 모든 등록 자산에 대한 전체 양도 권한을 확보했음을 확인하는 필수 체크를 제공한다.
  • THIRD_PARTY_INCLUDED, UNCONFIRMED, 동의가 확인되지 않은 TEAM_OWNED 자산이 있으면 판매 등록을 막고 수정 방법을 안내한다.
  • 검토 단계에는 이전되는 프로젝트명, 전체 자산 개수·종류와 전체 양도 효과를 요약한다.
  • Backend 요청에서 선택 자산 ID와 자유서술 권리 범위를 보내지 않는다.

마켓 목록·구매 흐름 변경

대상 파일:

  • features/project-market/types.ts
  • features/project-market/components/project-market-card.tsx
  • features/project-market/components/project-market-controls.tsx
  • features/project-market/components/project-purchase-button.tsx
  • 관련 API mapper/schema

변경 사항:

  • 판매 권리 범위, 포함/제외 권리 표시와 필터를 제거한다.
  • 모든 판매 카드에 정책 값 프로젝트 전체 양도를 일관되게 표시한다.
  • 공개 카드에는 전체 자산 개수와 유형만 표시하며 원본 URL은 노출하지 않는다.
  • 구매 확인창에서 가격, 전체 양도, 구매 후 판매자 권한 종료를 명시한다.
  • 구매 성공 후 동일 프로젝트를 다시 구매할 수 있는 UI를 노출하지 않는다.
  • 이미 판매됨, 자기 프로젝트, 잔액 부족, 중복 요청과 세션 만료 오류를 실제 Backend 응답으로 구분한다.

이전 로컬 초안 처리

브라우저에 저장된 기존 등록 초안에는 saleAssetIds, saleRightsScope가 남아 있을 수 있다.

  • draft version을 올리거나 명시적 migration을 추가한다.
  • 제거된 필드를 다시 UI에 복원하지 않는다.
  • 기존 입력을 새 전체 양도 동의로 임의 변환하지 않는다.

완료 조건

  • 프론트 문서와 화면 어디에도 일부 자산·권리 선택형 판매 정책이 남지 않는다.
  • 판매 등록에서 saleAssetIds, saleRightsScope를 입력하거나 전송하지 않는다.
  • 권리 미확인·제3자 포함 자산이 있는 프로젝트는 판매 등록할 수 없다.
  • 등록 검토와 구매 확인에서 프로젝트 전체 양도 효과가 명확히 표시된다.
  • 마켓 카드에 프로젝트 전체 양도와 전체 자산 요약이 표시된다.
  • 구매 로딩에는 공통 LoadingSpinner를 사용하고 중복 제출을 막는다.
  • 기존 초안 migration으로 제거된 판매 필드가 재등장하지 않는다.
  • TypeScript, ESLint와 production build가 통과한다.

연관 이슈

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions