'integer', 'total_distance_km' => 'float', ]; } public function getRouteKeyName(): string { return 'uuid'; } protected static function booted(): void { static::creating(function (self $r): void { if (empty($r->uuid)) { $r->uuid = (string) Str::uuid(); } }); } public function area(): BelongsTo { return $this->belongsTo(ServiceArea::class, 'area_id'); } public function defaultDumpsite(): BelongsTo { return $this->belongsTo(Dumpsite::class, 'default_dumpsite_id'); } public function createdBy(): BelongsTo { return $this->belongsTo(User::class, 'created_by_admin_id'); } public function stops(): HasMany { return $this->hasMany(RouteStop::class)->orderBy('sequence'); } }