<?php

namespace Database\Seeders;

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

use App\Models\PageRedirect;

class PageRedirectsSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        if (!PageRedirect::all()->count()) {
            /* we want to have deepest levels sorted above parents so that
             * the parent rule doesn't match before a specific sub page
             */

            $redirects = collect([
                ['url_regex' => '^news/single-page-news/article/(.*)$', 'redirect' => 'blogs/$1'],

                // about-brentwood
                ['url_regex' => '^about-brentwood/university-placement', 'redirect' => '17'], // why-brentwood/university-placement
                ['url_regex' => '^about-brentwood/our-location', 'redirect' => '7'], // why-brentwood/campus
                ['url_regex' => '^about-brentwood/heads-welcome', 'redirect' => '2'], // why-brentwood
                ['url_regex' => '^about-brentwood/about-boarding', 'redirect' => '5'], // student-life/boarding
                ['url_regex' => '^about-brentwood/transformative-learning', 'redirect' => '16'], // academics
                ['url_regex' => '^about-brentwood/our-approach/principles-of-community', 'redirect' => '191'], // why-brentwood/philosophy/mission-vision-values
                ['url_regex' => '^about-brentwood/our-approach/social-responsibility', 'redirect' => '192'], // policies/social-responsibility
                ['url_regex' => '^about-brentwood/our-approach/history', 'redirect' => '9'], // why-brentwood/legacy
                ['url_regex' => '^about-brentwood/our-approach/mission-vision-and-values/?(.*)$', 'redirect' => '191'], // why-brentwood/philosophy/mission-vision-values
                ['url_regex' => '^about-brentwood/our-approach/strategic-plan-2013-2023', 'redirect' => '8'], // why-brentwood/philosophy
                ['url_regex' => '^about-brentwood/our-approach', 'redirect' => '8'], // why-brentwood/philosophy
                ['url_regex' => '^about-brentwood/?(.*)$', 'redirect' => '2'], // why-brentwood

                // admissions
                ['url_regex' => '^admissions/meet-the-admissions-team', 'redirect' => '58#c-7ed649cb-903a-4562-9981-f7c4ebfde22c'], // admissions/info-sesssion#meet-the-admissions-team
                ['url_regex' => '^admissions/financial-information/fees', 'redirect' => '57'], // admissions/financial-information
                ['url_regex' => '^admissions/financial-information/?(.*)$', 'redirect' => '57'], // admissions/financial-information
                ['url_regex' => '^admissions/application-process/?(.*)$', 'redirect' => '56'], // admissions/application-process
                ['url_regex' => '^admissions/choosing-brentwood/?(.*)$', 'redirect' => '2'], // why-brentwood
                ['url_regex' => '^admissions/?(.*)$', 'redirect' => '55'], // admissions

                // boarding-life
                ['url_regex' => '^boarding-life/tours-and-trips', 'redirect' => '88'], // events/trips
                ['url_regex' => '^boarding-life/campus-facilities/maeda-health-centre', 'redirect' => '13#c-3bda6f66-f274-492c-b9cb-286ed15d0360'], // student-life/student-services
                ['url_regex' => '^boarding-life/campus-facilities/rowing-training-facilities', 'redirect' => '145#c-b6e9ec01-8e57-4b16-b50d-5e65ea8f7a1d'], // athletics/facilities
                ['url_regex' => '^boarding-life/campus-facilities/foote-athletic-centre', 'redirect' => '145#c-5b8efc81-3854-40d9-afd1-8fd58f9841e4'], // athletics/facilities
                ['url_regex' => '^boarding-life/campus-facilities/t-gil-bunch-centre-for-performing-arts', 'redirect' => '148#c-2a3c4a93-184a-4ee8-ad06-c3b088f29b6b'], // arts/facilities
                ['url_regex' => '^boarding-life/campus-facilities/art-and-mary-jane-crooks-hall', 'redirect' => '13#c-99c6dde8-7323-4a34-8a15-52afb5b21044'], // student-life/student-services
                ['url_regex' => '^boarding-life/campus-facilities/art-and-humanities-centre', 'redirect' => '148#c-0cdd6e20-a8e6-4bca-9f7b-800be99e5dee'], // arts/facilities
                ['url_regex' => '^boarding-life/campus-facilities/?(.*)$', 'redirect' => '7'], // why-brentwood/campus
                ['url_regex' => '^boarding-life/student-services/?(.*)$', 'redirect' => '13'], // student-life/student-services
                ['url_regex' => '^boarding-life/leadership/?(.*)$', 'redirect' => '15'], // student-life/leadership
                ['url_regex' => '^boarding-life/campus-map', 'redirect' => '5#c-1b4dd61a-6e76-485f-b2c8-325868e8ab99'], // student-life/boarding
                ['url_regex' => '^boarding-life/boarding-houses/?(.*)$', 'redirect' => '5#c-1b4dd61a-6e76-485f-b2c8-325868e8ab99'], // student-life/boarding
                ['url_regex' => '^boarding-life/oceanfront-campus/?(.*)$', 'redirect' => '7'], // why-brentwood/campus
                ['url_regex' => '^boarding-life/?(.*)$', 'redirect' => '10'], // student-life

                // academics
                ['url_regex' => '^academics/grade-12/?(.*)$', 'redirect' => '137#c-eab4e4ed-c07d-4e4f-8b90-e1e5cf840733'], // academics/courses
                ['url_regex' => '^academics/grade-11/?(.*)$', 'redirect' => '137#c-27d6af90-de11-4303-a874-62719b512962'], // academics/courses
                ['url_regex' => '^academics/grade-10/?(.*)$', 'redirect' => '137#c-ea8e7651-b507-4aae-b365-965e97b7339d'], // academics/courses
                ['url_regex' => '^academics/grade-9/?(.*)$', 'redirect' => '137#c-ea56f70f-41f1-4328-8397-f4b7fb8df734'], // academics/courses
                ['url_regex' => '^academics/grade-8-day-program', 'redirect' => '23'], // academics/grade-8
                ['url_regex' => '^academics/advanced-placement-ap', 'redirect' => '18'], // academics/ap-courses
                ['url_regex' => '^academics/departments/?(.*)$', 'redirect' => '137'], // academics/courses
                ['url_regex' => '^academics/university-placement/?(.*)$', 'redirect' => '17'], // why-brentwood/university-placement
                ['url_regex' => '^academics/learning-at-brentwood', 'redirect' => '16'], // academics
                ['url_regex' => '^academics/academic-plan', 'redirect' => '16'], // academics
                ['url_regex' => '^academics/?(.*)$', 'redirect' => '16'], // academics

                // athletics
                ['url_regex' => '^athletics/strength-and-conditioning', 'redirect' => '37'], // athletics/strength--conditioning
                ['url_regex' => '^athletics/skiing-and-snowboarding', 'redirect' => '11'], // student-life/activities/skiing--snowboarding
                ['url_regex' => '^athletics/lifesaving-and-swimming', 'redirect' => '171'], // athletics/yoga
                ['url_regex' => '^athletics/dynamic-movement-yoga', 'redirect' => '41'], // athletics/yoga
                ['url_regex' => '^athletics/foote-athletic-centre', 'redirect' => '145#c-5b8efc81-3854-40d9-afd1-8fd58f9841e4'], // athletics/facilities
                ['url_regex' => '^athletics/?(.*)$', 'redirect' => '24'], // athletics

                // arts
                ['url_regex' => '^arts/?(.*)$', 'redirect' => '42'], // arts

                // giving
                ['url_regex' => '^giving/advancement-events?(.*)$', 'redirect' => '74#c-d1a8f08f-75c9-44c0-a4fa-7fb3dd6aac34'], // giving#upcoming-socials
                ['url_regex' => '^giving/new-centre-for-innovation-and-learning', 'redirect' => '74#c-c5ac070c-c305-4e15-824c-b30ee908f225'], // giving#cil
                ['url_regex' => '^giving/meet-the-a-team', 'redirect' => '74#c-f7ab0955-0865-4639-af76-61377b036c1a'], // giving#contact-us
                ['url_regex' => '^giving/brentwood-college-foundation/capital-giving', 'redirect' => '74#c-d2ad00f6-7a31-4442-a15e-6e9b53ab71a3'], // giving#current-priorities
                ['url_regex' => '^giving/brentwood-college-foundation/student-impact-fund', 'redirect' => '74#c-490e7553-fbef-420e-a9fc-285013f62a6f'], // giving#student-impact-fund
                ['url_regex' => '^giving/?(.*)$', 'redirect' => '74'], // giving

                // alumni
                ['url_regex' => '^alumni/subscribe', 'redirect' => '73#c-cdb14481-db85-4237-8692-f5acb1972f49'], // alumni#staying-connected
                ['url_regex' => '^alumni/archives/?(.*)$', 'redirect' => '175'], // alumni/archives-and-publications
                ['url_regex' => '^alumni/brentonian-magazine/?(.*)$', 'redirect' => '175'], // alumni/archives-and-publications
                ['url_regex' => '^alumni/yearbooks/?(.*)$', 'redirect' => '175'], // alumni/archives-and-publications
                ['url_regex' => '^alumni/brentonian-connect', 'redirect' => '73#c-fc8605ca-5b03-4641-9337-8d35571772e0'], // alumni#brentonian-connect
                ['url_regex' => '^alumni/events/?(.*)$', 'redirect' => '73#c-7a7a67fb-1e3f-4186-8f8d-bdddfdca90c6'], // alumni#upcoming-events
                ['url_regex' => '^alumni/?(.*)$', 'redirect' => '73'], // alumni

                ['url_regex' => '^resources/contact-us', 'redirect' => '173'], // contact-us
                ['url_regex' => '^resources/employment', 'redirect' => '86'], // careers
                ['url_regex' => '^resources/?(.*)$', 'redirect' => '70'], // parents
                ['url_regex' => '^directions-to-brentwood', 'redirect' => '95'], // directions
                ['url_regex' => '^events-rentals', 'redirect' => '76'], // facility-rentals
            ]);

            foreach ($redirects as $count => $data) {
                $page_redirect = new PageRedirect();
                $page_redirect->url_regex = $data['url_regex'];
                $page_redirect->redirect = $data['redirect'];
                $page_redirect->sort_order = $count;
                $page_redirect->save();
            }

            $this->command->info($redirects->count().' Redirects Created');
        }
    }
}
