id = $id; $this->propertyId = $propertyId; $this->name = $name; $this->slug = $slug; $this->active = $active; $this->context = $context; $this->webdavConfig = $webdavConfig; $this->thresholds = $thresholds; } // Getters public function getId(): int { return $this->id; } public function getPropertyId(): string { return $this->propertyId; } public function getName(): string { return $this->name; } public function getSlug(): string { return $this->slug; } public function isActive(): bool { return $this->active; } public function getContext(): ?array { return $this->context; } public function getWebdavConfig(): ?array { return $this->webdavConfig; } public function getThresholds(): ?array { return $this->thresholds; } // Setters public function setActive(bool $active): void { $this->active = $active; } /** * Create from JSON */ public static function fromJson(array $data): self { return new self( (int)($data['id'] ?? 0), (string)($data['property_id'] ?? ''), (string)($data['name'] ?? ''), (string)($data['slug'] ?? ''), (bool)($data['active'] ?? true), $data['context'] ?? null, $data['webdav_config'] ?? null, $data['thresholds'] ?? null ); } /** * Convert to array */ public function toArray(): array { return [ 'id' => $this->id, 'property_id' => $this->propertyId, 'name' => $this->name, 'slug' => $this->slug, 'active' => $this->active, 'context' => $this->context, 'webdav_config' => $this->webdavConfig, 'thresholds' => $this->thresholds, ]; } }