import re, sys

filepath = r'C:\xampp\htdocs\kokoro\backend\routes\api.php'
with open(filepath, 'r') as f:
 content = f.read()

lines = content.split('\n')
cleaned = []
for line in lines:
 skip = False
 for kw in ['VendorOnboardingController', 'VendorApplicationController',
 'VendorDocumentController', 'Vendor onboarding (PC-07-01)',
 'Vendor onboarding desk (PC-07-01)', '| Admin']:
 if kw in line:
 skip = True
 break
 cleaned.append(line)

content = '\n'.join(cleaned)

import_block = (
 "\nuse App\\Http\\Controllers\\Api\\V1\\Vendor\\VendorOnboardingController;\n"
 "use App\\Http\\Controllers\\Api\\V1\\Admin\\VendorApplicationController;\n"
 "use App\\Http\\Controllers\\Api\\V1\\Admin\\VendorDocumentController;\n"
)

pos = content.find("use App\\Http\\Controllers\\Api\\V1\\Rider\\DeliveryController;")
if pos >= 0:
 end = pos + len("use App\\Http\\Controllers\\Api\\V1\\Rider\\DeliveryController;")
 content = content[:end] + '\n' + import_block + content[end:]
else:
 print('DeliveryController import not found')
 sys.exit(1)

vor = (
 "\n // --- Vendor onboarding (PC-07-01) --------------------------------\n"
 " Route::post('onboarding/apply', [VendorOnboardingController::class, 'apply']);\n"
 " Route::get('onboarding/status', [VendorOnboardingController::class, 'status']);\n"
 " Route::post('onboarding/documents', [VendorOnboardingController::class, 'uploadDocument']);\n"
 " Route::get('onboarding/documents', [VendorOnboardingController::class, 'listDocuments']);\n"
)
avr = (
 "\n // --- Vendor onboarding desk (PC-07-01) ----------------------------\n"
 " Route::middleware('permission:' . Permissions::VENDORS_APPROVE)->group(function (): void {\n"
 " Route::get('vendor/applications', [VendorApplicationController::class, 'index']);\n"
 " Route::get('vendor/applications/{vendorApplication}', [VendorApplicationController::class, 'show']);\n"
 " Route::post('vendor/applications/{vendorApplication}/approve', [VendorApplicationController::class, 'approve']);\n"
 " Route::post('vendor/applications/{vendorApplication}/reject', [VendorApplicationController::class, 'reject']);\n"
 " Route::post('vendor/applications/{vendorApplication}/hold', [VendorApplicationController::class, 'hold']);\n\n"
 " Route::middleware('permission:' . Permissions::VENDORS_DOCUMENTS_VERIFY)->group(function (): void {\n"
 " Route::get('vendor/documents', [VendorDocumentController::class, 'index']);\n"
 " Route::post('vendor/documents/{kycDocument}/verify', [VendorDocumentController::class, 'verify']);\n"
 " Route::post('vendor/documents/{kycDocument}/reject', [VendorDocumentController::class, 'reject']);\n"
 " });\n"
 " });\n"
)

m1 = re.search(
 r"Route::put\('deals/\{deal\}', \[DiningConfigurationController::class, 'updateDeal'\]\);\n\s*\}\);\n\s*\}\);\n",
 content
)
if m1:
 content = content[:m1.end()] + vor + content[m1.end():]
else:
 print('Pattern 1 not found')
 sys.exit(1)

m2 = re.search(
 r"Route::post\('riders/documents/\{document\}/review', \[RiderVerificationController::class, 'review'\]\);\n\s*\}\);\n",
 content
)
if m2:
 content = content[:m2.end()] + avr + content[m2.end():]
else:
 print('Pattern 2 not found')
 sys.exit(1)

with open(filepath, 'w') as f:
 f.write(content)

print('Done')
