212 lines
6.6 KiB
PHP
212 lines
6.6 KiB
PHP
|
|
<?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(),
|
|||
|
|
]
|
|||
|
|
));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|