'datetime', 'finish_time' => 'datetime', ]; protected function requestedMachines(): Attribute { return Attribute::make( get: fn($value) => json_decode($value) ); } public function histories(): HasMany { return $this->hasMany(MissionHistory::class); } public function roadPatrol(): HasOne { return $this->hasOne(RoadPatrol::class); } public function roadItems(): HasMany { return $this->hasMany(RoadItemsProject::class); } public function rahdaran(): MorphToMany { return $this->morphToMany(Rahdaran::class, 'rahdarable', 'rahdarables', 'rahdarable_id', 'rahdar_id', )->withPivot('is_driver'); } public function machine(): BelongsTo { return $this->belongsTo(CMMSMachine::class, 'machine_id'); } public function getMissionAreaForFms(): array { return collect($this->area['coordinates']) ->map(fn ($point) => [ 'Latitude' => $point[1], // lat 'Longitude' => $point[0], // lng ]) ->values() ->toArray(); } }