Files
kulakpos_web/public/restaurant/Modules/RestaurantDelivery/database/seeders/RestaurantRiderSeeder.php

212 lines
6.6 KiB
PHP
Raw Normal View History

2026-03-15 17:08:23 +07:00
<?php
namespace Modules\RestaurantDelivery\Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class RestaurantRiderSeeder extends Seeder
{
public function run(): void
{
$riders = [
// ======================
// Rider 1 Motorcycle (Active)
// ======================
[
'uuid' => Str::uuid(),
'restaurant_id' => 1,
'user_id' => 23,
'first_name' => 'Rakib',
'last_name' => 'Hossain',
'phone' => '01710000001',
'email' => 'rakib.rider@gmail.com',
'photo' => null,
'date_of_birth' => '1998-04-15',
'national_id' => '19982654789012345',
'emergency_contact' => '01790000001',
'type' => 'freelance',
'status' => 'active',
'vehicle_type' => 'motorcycle',
'vehicle_number' => 'DHAKA-METRO-LA-123456',
'vehicle_model' => 'Bajaj Discover 125',
'vehicle_color' => 'Black',
'license_number' => 'DL-45879632',
'license_expiry' => '2027-06-30',
'is_verified' => true,
'verified_at' => now(),
'verified_by' => 'admin',
'verification_documents' => json_encode([
'nid' => 'nid_rakib.jpg',
'license' => 'license_rakib.jpg',
]),
'commission_type' => 'percentage',
'commission_rate' => 70,
'current_latitude' => 23.7461,
'current_longitude' => 90.3742,
'last_location_update' => now(),
'rating' => 4.85,
'rating_count' => 124,
'total_deliveries' => 320,
'successful_deliveries' => 305,
'cancelled_deliveries' => 10,
'failed_deliveries' => 5,
'acceptance_rate' => 95.00,
'completion_rate' => 96.50,
'is_online' => true,
'last_online_at' => now(),
'bank_name' => 'bKash',
'mobile_wallet_provider' => 'bKash',
'mobile_wallet_number' => '01710000001',
'assigned_zones' => json_encode([1, 2]),
'meta' => json_encode(['shift' => 'day']),
],
// ======================
// Rider 2 Bicycle (Budget)
// ======================
[
'uuid' => Str::uuid(),
'restaurant_id' => 1,
'user_id' => 24,
'first_name' => 'Sajid',
'last_name' => 'Ahmed',
'phone' => '01820000002',
'email' => null,
'type' => 'freelance',
'status' => 'active',
'vehicle_type' => 'bicycle',
'is_verified' => true,
'verified_at' => now(),
'verified_by' => 'admin',
'commission_type' => 'fixed',
'commission_rate' => 50,
'current_latitude' => 23.8223,
'current_longitude' => 90.3654,
'last_location_update' => now(),
'rating' => 4.60,
'rating_count' => 52,
'total_deliveries' => 140,
'successful_deliveries' => 135,
'cancelled_deliveries' => 3,
'failed_deliveries' => 2,
'is_online' => true,
'last_online_at' => now(),
'assigned_zones' => json_encode([3]),
'meta' => json_encode(['shift' => 'morning']),
],
// ======================
// Rider 3 Car (Premium / Gulshan)
// ======================
[
'uuid' => Str::uuid(),
'restaurant_id' => 1,
'user_id' => null,
'first_name' => 'Mahmud',
'last_name' => 'Khan',
'phone' => '01930000003',
'email' => 'mahmud.khan@gmail.com',
'type' => 'internal',
'status' => 'active',
'vehicle_type' => 'car',
'vehicle_number' => 'DHAKA-METRO-GA-987654',
'vehicle_model' => 'Toyota Axio',
'vehicle_color' => 'White',
'is_verified' => true,
'verified_at' => now(),
'verified_by' => 'super_admin',
'commission_type' => 'hybrid',
'commission_rate' => 60,
'base_commission' => 40,
'per_km_rate' => 6,
'current_latitude' => 23.7930,
'current_longitude' => 90.4043,
'last_location_update' => now(),
'rating' => 4.95,
'rating_count' => 210,
'total_deliveries' => 410,
'successful_deliveries' => 405,
'is_online' => false,
'went_offline_at' => now()->subHours(2),
'bank_name' => 'Dutch Bangla Bank',
'bank_account_name' => 'Mahmud Khan',
'bank_account_number' => '1234567890',
'assigned_zones' => json_encode([2, 4]),
'meta' => json_encode(['vehicle_class' => 'premium']),
],
// ======================
// Rider 4 Pending Verification
// ======================
[
'uuid' => Str::uuid(),
'restaurant_id' => 1,
'user_id' => null,
'first_name' => 'Arif',
'last_name' => 'Hasan',
'phone' => '01640000004',
'type' => 'third_party',
'status' => 'pending',
'vehicle_type' => 'motorcycle',
'is_verified' => false,
'commission_type' => 'percentage',
'commission_rate' => 65,
'rating' => 5.00,
'rating_count' => 0,
'is_online' => false,
'assigned_zones' => json_encode([1]),
'meta' => json_encode(['note' => 'Awaiting documents']),
],
];
foreach ($riders as $rider) {
DB::table('restaurant_riders')->insert(array_merge(
$rider,
[
'created_at' => now(),
'updated_at' => now(),
]
));
}
}
}