diff --git a/src/components/admin/ParkForm.tsx b/src/components/admin/ParkForm.tsx index ac159073..5d545fb8 100644 --- a/src/components/admin/ParkForm.tsx +++ b/src/components/admin/ParkForm.tsx @@ -209,10 +209,16 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }: if (tempNewOperator) { submissionContent.new_operator = tempNewOperator; submissionContent.park.operator_id = null; + + // If operator is also owner, use same entity for both + if (operatorIsOwner) { + submissionContent.new_property_owner = tempNewOperator; + submissionContent.park.property_owner_id = null; + } } - // Add new property owner if created - if (tempNewPropertyOwner) { + // Add new property owner if created (and not already set above) + if (tempNewPropertyOwner && !operatorIsOwner) { submissionContent.new_property_owner = tempNewPropertyOwner; submissionContent.park.property_owner_id = null; } diff --git a/src/lib/entitySubmissionHelpers.ts b/src/lib/entitySubmissionHelpers.ts index ef60b355..15c2e7e2 100644 --- a/src/lib/entitySubmissionHelpers.ts +++ b/src/lib/entitySubmissionHelpers.ts @@ -294,7 +294,14 @@ async function submitCompositeCreation( } if (uploadedPrimary.data.property_owner_id?.startsWith('temp-')) { const ownerIndex = tempIdMap.get('temp-property-owner'); - if (ownerIndex !== undefined) primaryData._temp_property_owner_ref = ownerIndex; + const operatorIndex = tempIdMap.get('temp-operator'); + + if (ownerIndex !== undefined) { + primaryData._temp_property_owner_ref = ownerIndex; + } else if (operatorIndex !== undefined) { + // Property owner references operator (operator is owner scenario) + primaryData._temp_property_owner_ref = operatorIndex; + } delete primaryData.property_owner_id; } } else if (uploadedPrimary.type === 'ride') { @@ -367,6 +374,12 @@ export async function submitParkCreation( if (data._compositeSubmission) { const dependencies: CompositeSubmissionDependency[] = []; + // Check if operator and owner are the same new entity + const operatorIsOwner = + data._compositeSubmission.new_operator && + data._compositeSubmission.new_property_owner && + data._compositeSubmission.new_operator === data._compositeSubmission.new_property_owner; + if (data._compositeSubmission.new_operator) { dependencies.push({ type: 'company', @@ -376,7 +389,8 @@ export async function submitParkCreation( }); } - if (data._compositeSubmission.new_property_owner) { + // Only add separate property owner if different from operator + if (data._compositeSubmission.new_property_owner && !operatorIsOwner) { dependencies.push({ type: 'company', data: { ...data._compositeSubmission.new_property_owner, company_type: 'property_owner' },