<?php

namespace Tests;

use App\Models\Location;
use App\Models\PlatformLocation;

trait SeedsVerifiedCountries
{
    protected function seedVerifiedCountries(): void
    {
        $ids = [
            'meta' => ['US' => 'US', 'GB' => 'GB', 'DE' => 'DE', 'FR' => 'FR', 'JP' => 'JP', 'IN' => 'IN'],
            'google' => ['US' => 'geoTargetConstants/2840', 'GB' => 'geoTargetConstants/2826', 'DE' => 'geoTargetConstants/2276'],
            'linkedin' => ['US' => 'urn:li:geo:103644278', 'DE' => 'urn:li:geo:101282230'],
        ];

        foreach ($ids as $platform => $countries) {
            foreach ($countries as $code => $id) {
                $location = Location::query()->firstOrCreate(
                    ['iso_code' => $code],
                    [
                        'type' => 'country',
                        'name' => config('countries.'.$code),
                        'country_code' => $code,
                        'source' => 'iso_3166_1',
                        'source_key' => $code,
                    ],
                );

                PlatformLocation::query()->create([
                    'location_id' => $location->id,
                    'platform' => $platform,
                    'external_id' => $id,
                    'provider_name' => $location->name,
                    'status' => 'verified',
                    'verified_at' => now(),
                ]);
            }
        }
    }
}
