'datetime', 'planned_return_at' => 'datetime', 'actual_departure_at' => 'datetime', 'actual_return_at' => 'datetime', 'total_labor_cost' => 'integer', 'total_expense_cost' => 'integer', 'total_cost' => 'integer', ]; public function business() { return $this->belongsTo(Business::class); } public function equipment() { return $this->belongsTo(Equipment::class, 'equipment_id'); } public function destinationLocation() { return $this->belongsTo(BusinessLocation::class, 'destination_location_id'); } public function leadUser() { return $this->belongsTo(User::class, 'lead_user_id'); } public function creator() { return $this->belongsTo(User::class, 'created_by'); } public function crewMembers() { return $this->hasMany(MissionCrewMember::class, 'mission_id'); } public function items() { return $this->hasMany(MissionItem::class, 'mission_id'); } public function expenses() { return $this->hasMany(MissionExpense::class, 'mission_id'); } public function activeMission(): bool { return ! in_array($this->status, ['closed', 'cancelled'], true); } }