fix(hosting): require merchant or prospect for site creation
- Schema: add merchant_id/prospect_id with model_validator requiring at least one. Remove from-prospect endpoint (unified into POST /sites) - Service: rewrite create() — if merchant_id use it directly, if prospect_id auto-create merchant from prospect data. Remove system merchant hack entirely. Extract _create_merchant_from_prospect helper. - Simplify accept_proposal() — merchant already exists at creation, only creates subscription and marks prospect converted - Tests: update all create calls with merchant_id, replace from-prospect tests with prospect_id + validation tests Closes docs/proposals/hosting-site-creation-fix.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -96,17 +96,6 @@ def create_site(
|
||||
return _to_response(site)
|
||||
|
||||
|
||||
@router.post("/from-prospect/{prospect_id}", response_model=HostedSiteResponse)
|
||||
def create_from_prospect(
|
||||
prospect_id: int = Path(...),
|
||||
db: Session = Depends(get_db),
|
||||
current_admin: UserContext = Depends(get_current_admin_api),
|
||||
):
|
||||
"""Create a hosted site pre-filled from prospect data."""
|
||||
site = hosted_site_service.create_from_prospect(db, prospect_id)
|
||||
db.commit()
|
||||
return _to_response(site)
|
||||
|
||||
|
||||
@router.put("/{site_id}", response_model=HostedSiteResponse)
|
||||
def update_site(
|
||||
|
||||
Reference in New Issue
Block a user