63 lines
2.1 KiB
PHP
63 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\JobSource;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class JobSourceSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$sources = [
|
|
[
|
|
'name' => 'Remotive',
|
|
'api_url' => 'https://remotive.com/api',
|
|
'api_key' => null, // No API key required
|
|
'is_active' => true,
|
|
'rate_limit' => 60, // requests per hour
|
|
'configuration' => [
|
|
'description' => 'Remote jobs API - Free, no authentication required',
|
|
'docs' => 'https://remotive.com/api-documentation',
|
|
],
|
|
],
|
|
[
|
|
'name' => 'The Muse',
|
|
'api_url' => 'https://www.themuse.com/api/public',
|
|
'api_key' => null, // Optional API key for higher limits
|
|
'is_active' => true,
|
|
'rate_limit' => 100, // requests per hour
|
|
'configuration' => [
|
|
'description' => 'The Muse job board API - Free tier available',
|
|
'docs' => 'https://www.themuse.com/developers/api/v2',
|
|
],
|
|
],
|
|
[
|
|
'name' => 'Adzuna',
|
|
'api_url' => 'https://api.adzuna.com/v1/api/jobs',
|
|
'api_key' => env('ADZUNA_API_KEY'), // Format: app_id:app_key
|
|
'is_active' => env('ADZUNA_API_KEY') ? true : false,
|
|
'rate_limit' => 100, // requests per hour
|
|
'configuration' => [
|
|
'country' => 'us',
|
|
'description' => 'Adzuna job search API - Requires free API key',
|
|
'docs' => 'https://developer.adzuna.com/overview',
|
|
'signup' => 'https://developer.adzuna.com/signup',
|
|
],
|
|
],
|
|
];
|
|
|
|
foreach ($sources as $source) {
|
|
JobSource::updateOrCreate(
|
|
['name' => $source['name']],
|
|
$source
|
|
);
|
|
}
|
|
|
|
$this->command->info('Job sources seeded successfully!');
|
|
}
|
|
}
|