## Система скриптов
- Все действия должны выполняться от имени авторизованого пользователя.
- Cкриптами может управлять только администратор или выше.

### SCRIPT_STRUCT
```json
	{
		"id": 11,
		"alias": "bad_weather_light",
		"filename": "bad_weather_light.php",
		"path": "/home/smartserver/scripts",
		"state": "enabled", // | disabled
		"added_by": 12,// user_id
		"created_by": "Eugene Sukhodolskiy", // Автор скрипта, брать будет из самого скрипта
		"create_at": "2025-06-02 23:35:11"
	}
	```

---

### GET `/api/v1/scripts/list`
Получить список скриптов

#### Пример ответа
```json
	{
		"status": "ok",
		"scripts": [
			"SCRIPT_STRUCT"
			// ...
		],
		"total": 10
	}
	```

---

### GET `/api/v1/scripts/id/{{id}}` OR GET `/api/v1/scripts/alias/{{alias}}`
Получить выбраный скрипт

#### Пример ответа
```json
	{
		"status": "ok",
		"scripts": "SCRIPT_STRUCT"
	}
	```

---

### POST `/api/v1/scripts/new`
Зарегистрировать в системе новый скрипт
- По умолчанию, новый добавленый скрипт - не активен, имеет `state=disabled`

#### Пример запроса
```json
	{
		"alias": "bad_weather_light",
		"filename": "bad_weather_light.php",
		"path": "/home/smartserver/scripts"
	}
	```

#### Пример НЕ успешного ответа. Невалидные поля
```json
	{
		"status": "error",
		"field": "alias",
		"message": "Alias already exists" // | "File not exists"
	}
	```

---

### POST `/api/v1/scripts/id/{{id}}/update`
Редактировать скрипт

#### Пример запроса
```json
	{
		"alias": "bad_weather_light",
		"filename": "bad_weather_light.php",
		"path": "/home/smartserver/scripts",
		"id": 11 // id существующего скрипта
	}
	```

#### Пример НЕ успешного ответа. Невалидные поля
```json
	{
		"status": "error",
		"field": "alias",
		"message": "Alias already exists" // | "File not exists" | "Script by id not found"
	}
	```

---

### GET `/api/v1/scripts/id/{{id}}/enable`
Включить скрипт

#### Пример ответа
```json
	{
		"status": "ok",
		"scripts": "SCRIPT_STRUCT"
	}
	```

---

### GET `/api/v1/scripts/id/{{id}}/disable`
Отключить скрипт

#### Пример ответа
```json
	{
		"status": "ok",
		"scripts": "SCRIPT_STRUCT"
	}
	```

---

### GET `/api/v1/scripts/id/{{id}}/remove`
Удалить скрипт из системы. (Сам скрипт при этом вполне может оставаться в файловой системе)

#### Пример ответа
```json
	{
		"status": "ok",
		"scripts": "SCRIPT_STRUCT"
	}
	```

---

### POST `/api/v1/scripts/id/{{id}}/run` OR POST `/api/v1/scripts/alias/{{alias}}/run`
Запустить выполнение скрипта. 
- При этом проверяется от имени какого пользователя был запущен скрипт. 
- Если прав пользователя не хватает - скрипт не запуститься.
- Можно передать параметры, если скрипт этого ожидает.

#### Пример запроса
```json
	{
		"params": {
			// ...
		}
	}
	```

#### Пример ответа
```json
	{
		"status": "ok",
		"script": "SCRIPT_STRUCT",
		"result": {
			// ...
		}
	}
	```

