<?php

//HOW TO GUIDE
//1. https://www.accordmortgages.com/products?view=print
//2. Open the network tab in the developer tools
//3. Filter the network requests by Fetch/XHR
//4. Refresh Page
//5. Click request similar to "accord-mortgage-resi.json" in the network tab
//6. Click preview tab, right click on products: object and click "Copy object"
//7. Paste the object in file called "accord_mortgages_resi.json"
//8. Repeat steps 2-7 for:
//   - "accord_mortgages_btl.json" (Save in file called "accord_mortgages_btl.json") (https://www.accordmortgages.com/btl/products?view=print)
//   - "PTAL-NEW-Product-list.json" (Save in file called "accord_mortgages_resi_existing.json") (https://www.accordmortgages.com/products/existing-customers?view=print)
//9. Run this script to generate the CSV file (Type url in browser: https://rate-guides.mortgage-quote.me/accord_mortgages.php)


// add error reporting
error_reporting(E_ALL);
ini_set('display_errors', 1);


$resiProducts = json_decode(file_get_contents('accord_mortgages_resi.json'), true);



$filename = 'accord_mortgages_resi.csv';

$file = fopen($filename, 'w');

$csvHeaders = [
    'plan_code',
    'initial_rate',
    'rate_type',
    'ltv',
    'end_date',
    'mortgage_term',
    'mortgage_type',
    'product_fee',
    'valuation_fee',
    'completion_fee',
    'processing_fee',
    'free_valuation',
    'minimum_loan',
    'maximum_loan',
    'cashback',
    'availableForNewBuild',
    'erc_details',
    'propersition_code',
    'free_legals',
    'offset'
];

fputcsv($file, $csvHeaders);



foreach ($resiProducts as $product) {
    if ($product['newBuild'] === "houses") {
        $newBuild = 1;
    } elseif ($product['availableForNewBuild'] === true) {
        $newBuild = 2;
    } else {
        $newBuild = 0;
    }

    $csvRow = [
        $product['productCode'],
        $product['interestRate1'],
        $product['rate1Type'],
        $product['maxLtv'],
        $product['endDate'],
        $product['term'],
        implode(',', $product['appTypes']),
        $product['productFee'],
        $product['valuationFee'],
        $product['compFee'],
        $product['processingFee'],
        $product['freeVal'],
        $product['minLoanProduct'],
        $product['maxLoanProduct'],
        $product['cashback'],
        $newBuild,
        implode(',', $product['ercRanks']),
        $product['propositionCode'],
        $product['freeLegal'],
        $product['offset'] ?? false
    ];

    fputcsv($file, $csvRow);
};

fclose($file);

echo 'Accord Resi CSV file created successfully';


//BTL
$btlProducts = json_decode(file_get_contents('accord_mortgages_btl.json'), true);

$filename = 'accord_mortgages_btl.csv';

$file = fopen($filename, 'w');

$csvHeaders = [
    'plan_code',
    'initial_rate',
    'rate_type',
    'ltv',
    'end_date',
    'mortgage_term',
    'mortgage_type',
    'product_fee',
    'valuation_fee',
    'completion_fee',
    'processing_fee',
    'free_valuation',
    'minimum_loan',
    'maximum_loan',
    'cashback',
    'availableForNewBuild',
    'erc_details',
    'propersition_code',
    'free_legals',
    'offset'
];

fputcsv($file, $csvHeaders);

foreach ($btlProducts as $product) {
    $csvRow = [
        $product['productCode'],
        $product['interestRate1'],
        $product['rate1Type'],
        $product['maxLtv'],
        $product['endDate'],
        $product['term'],
        implode(',', $product['appTypes']),
        $product['productFee'],
        $product['valuationFee'],
        $product['compFee'],
        $product['processingFee'],
        $product['freeVal'],
        $product['minLoanProduct'],
        $product['maxLoanProduct'],
        $product['cashback'],
        $product['availableForNewBuild'] ?? false,
        implode(',', $product['ercRanks']),
        $product['propositionCode'],
        $product['freeLegal'],
        $product['offset'] ?? false
    ];

    fputcsv($file, $csvRow);
};

fclose($file);

echo '<br>';
echo 'Accord BTL CSV file created successfully';

//Resi Existing
$resiExistingProducts = json_decode(file_get_contents('accord_mortgages_resi_existing.json'), true);

$filename = 'accord_mortgages_resi_existing.csv';

$file = fopen($filename, 'w');

$csvHeaders = [
    'plan_code',
    'initial_rate',
    'rate_type',
    'ltv',
    'end_date',
    'mortgage_term',
    'mortgage_type',
    'product_fee',
    'valuation_fee',
    'completion_fee',
    'processing_fee',
    'free_valuation',
    'minimum_loan',
    'maximum_loan',
    'cashback',
    'availableForNewBuild',
    'erc_details',
    'free_legals',
    'offset'
];

fputcsv($file, $csvHeaders);

foreach ($resiExistingProducts as $product) {
    $csvRow = [
        $product['productCode'],
        $product['interestRate1'],
        $product['rate1Type'],
        $product['maxLtv'],
        $product['endDate'],
        $product['term'],
        implode(',', $product['appTypes']),
        $product['productFee'],
        $product['valuationFee'],
        $product['compFee'],
        $product['processingFee'],
        $product['freeVal'],
        $product['minLoanProduct'],
        $product['maxLoanProduct'],
        $product['cashback'],
        $product['availableForNewBuild'] ?? false,
        implode(',', $product['ercRanks']),
        $product['freeLegal'],
        $product['offset'] ?? false
    ];

    fputcsv($file, $csvRow);
};

fclose($file);

echo '<br>';
echo 'Accord Resi Existing CSV file created successfully';
