'datetime', 'welcome_gift_enabled' => 'boolean', 'is_spring_slot_1_10' => 'boolean', 'is_spring_slot_11_20' => 'boolean', 'is_spring_slot_21_30' => 'boolean', 'is_spring_slot_31_40' => 'boolean', 'is_spring_slot_41_50' => 'boolean', 'is_spring_slot_51_60' => 'boolean', 'member_system_enabled' => 'boolean', 'images' => 'array', ]; /** * Get machine images absolute URLs */ public function getImageUrlsAttribute(): array { if (empty($this->images)) { return []; } return array_map(fn($path) => \Illuminate\Support\Facades\Storage::disk('public')->url($path), $this->images); } public function logs() { return $this->hasMany(MachineLog::class); } public function machineModel() { return $this->belongsTo(MachineModel::class); } public function paymentConfig() { return $this->belongsTo(\App\Models\System\PaymentConfig::class); } public function creator() { return $this->belongsTo(\App\Models\System\User::class, 'creator_id'); } public function updater() { return $this->belongsTo(\App\Models\System\User::class, 'updater_id'); } }