Токен-аутентификация Sanctum (login/logout по устройствам), эндпоинты /api/v1 для зон/устройств/правил автоматизации с тем же RBAC (owner/viewer), что и в веб-версии — контроллеры переиспользуют существующие Policy и FormRequest. Устройства отдают живой статус из Device Shadow (Redis) и историю телеметрии из ClickHouse, плюс управление (turn-on/turn-off/set-level) через device-control-service.
30 lines
1.0 KiB
PHP
30 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Resources;
|
|
|
|
use App\Models\AutomationRule;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
|
|
/** @mixin AutomationRule */
|
|
class AutomationRuleResource extends JsonResource
|
|
{
|
|
/** @return array<string, mixed> */
|
|
public function toArray(Request $request): array
|
|
{
|
|
return [
|
|
'id' => $this->id,
|
|
'zone' => new ZoneResource($this->whenLoaded('zone')),
|
|
'target_device' => new DeviceResource($this->whenLoaded('targetDevice')),
|
|
'condition_source_device' => new DeviceResource($this->whenLoaded('conditionSourceDevice')),
|
|
'condition_sensor_type' => $this->condition_sensor_type,
|
|
'condition_operator' => $this->condition_operator->value,
|
|
'condition_value' => $this->condition_value,
|
|
'action_type' => $this->action_type,
|
|
'action_params' => $this->action_params,
|
|
'is_active' => $this->is_active,
|
|
'created_at' => $this->created_at,
|
|
];
|
|
}
|
|
}
|