>|null $source_evidence */ class InvestmentZone extends DomainRecord { protected $hidden = ['editorial_draft', 'operational_details']; protected $casts = ['operational_details' => 'array', 'operational_details' => 'array', 'version_no' => 'integer', 'published_at' => 'datetime', 'aliases' => 'array', 'activities' => 'array', 'resources' => 'array', 'historical_territory' => 'array', 'area_components' => 'array', 'source_evidence' => 'array', 'area_value' => 'decimal:4', 'data_as_of' => 'date', 'sources_consulted_at' => 'date']; /** @return BelongsTo */ public function primaryTerritory(): BelongsTo { return $this->belongsTo(GeoLocation::class, 'primary_territory_id'); } /** @return BelongsToMany */ public function documentedLocations(): BelongsToMany { return $this->belongsToMany(GeoLocation::class, 'investment_zone_locations', 'zone_id', 'geo_location_id') ->withPivot(['id', 'scope_type', 'source_reference', 'legal_source_id', 'valid_from', 'valid_until', 'validation_status', 'editor_id', 'reviewer_id', 'version_no']) ->withTimestamps(); } }