Files
jobifygarden/database/seeders/JobSourceSeeder.php
T

63 lines
2.1 KiB
PHP
Raw Normal View History

2026-04-03 00:23:01 +03:00
<?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!');
}
}