*/ protected $fillable = ['name', 'kbli', 'activities', 'area', 'location', 'number', 'date', 'no_tapak', 'no_skkl', 'no_ukl', 'building_function', 'sub_building_function', 'number_of_floors', 'land_area', 'site_bcr']; protected $casts = [ 'area' => 'decimal:6', 'land_area' => 'decimal:6', 'site_bcr' => 'decimal:6', 'number_of_floors' => 'integer', 'date' => 'date' ]; /** * Get building function text for detection */ public function getBuildingFunctionText(): string { return $this->building_function ?? $this->activities ?? ''; } /** * Get area for calculation (prioritize area, fallback to land_area) */ public function getCalculationArea(): float { return (float) ($this->area ?? $this->land_area ?? 0); } }