# Crear un horario único

Guardar el teléfono en la nube una vez programada la tarea.
Especificación de parámetros de plantilla
1. Origen de los parámetros
Las claves de los parámetros deben extraerse del campo `parameter` que devuelven las siguientes API:

- Obtener páginas de plantillas de mercado
- Obtener páginas de plantillas personales

1. Estructura de datos

- Enviar parámetros en formato de objeto JSON: `{"clave1": "valor1", "clave2": "valor2"}`
- Los valores finales de los parámetros deben deserializarse según la lógica de negocio antes de su uso.

1. Parámetros de tipo común
Para los siguientes tipos de parámetros, pasar los valores directamente en el formato correspondiente:

- Cadena: `{"nombre": "John"}`
- Decimal/número: `{"cantidad": 100.50}`
- Booleano: `{"habilitado": true}`

1. Parámetros de tipo de medio
Para parámetros de medios como imágenes o vídeos, además de la información básica, se debe incluir una clave fija `"__Extra__"`. Formato de ejemplo:


```json
{
"__Extra__": {
"pic": {
"name": "pic_name",
"size": 204800

},
"video": {
"name": "video_name",
"size": 204800000
}

},
"pic": "https://get.morelogin.com/prod/cloudPhoneTaskVideo/1556061681934880/1c62314c7e2b4d298abe8d5452d7c050/test.png",
"video": "morelogin://cloudfile?ids=1,2"
}
```
1. Ejemplo de configuración de parámetros
El siguiente ejemplo muestra cómo configurar el parámetro `templateParameter` al guardar un plan usando una plantilla de mercado:

- Paso 1: Recuperar parámetros de la plantilla
Llamar a la API de plantillas de mercado:
`GET /api/cloudphone/rpa/template/market/page`
Extraer el campo `parameter` de la respuesta, por ejemplo:


```json
"parameter": "{\"videoDownloadUrl\":{\"type\":\"video\",\"extra\":{\"name\":\"Select" Vídeo\",\"tipo\":\"vídeo\",\"obligatorio\":verdadero,\"valor_predeterminado\":{\"habilitado\":falso},\"índice\":1,\"límite_tamaño\":{\"valor\":200,\"unidad\":\"MB\"},\"tipo_formato\":[\"mp4\",\"mov\"]}},\"descripción_vídeo\":{\"tipo\":\"cadena\",\"extra\":{\"nombre\":\"Vídeo Leyenda\",\"tipo\":\"cadena\",\"obligatorio\":false,\"carácter\":{\"habilitado\":true,\"valor\":1000},\"multilínea\":{\"habilitado\":true,\"valor\":3},\"valor\predeterminado\":{\"habilitado\":false},\"índice\":2}},\"url\de\portada\":{\"tipo\":\"imagen\",\"extra\":{\"nombre\":\"Portada" Imagen\",\"tipo\":\"imagen\",\"obligatorio\":false,\"valor_predeterminado\":{\"habilitado\":false},\"índice\":3,\"límite_tamaño\":{\"valor\":5,\"unidad\":\"MB\"},\"tipo_formato\":[\"jpg\",\"png\",\"jpeg\"]}},\"habilitarAIGC\":{\"tipo\":\"booleano\",\"extra\":{\"nombre\":\"Etiqueta_AI\",\"tipo\":\"booleano\",\"obligatorio\":false,\"valor_predeterminado\":{\"habilitado\":false},\"índice\":4}},\"id_producto\":{\"tipo\":\"cadena\",\"extra\":{\"nombre\":\"Producto ID\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":50},\"placeholder\":\"El ID del producto solo admite dígitos, con un máximo de 50 caracteres."\"defaultValue\":{\"enabled\":false},\"index\":5}},\"productTitle\":{\"type\":\"string\",\"extra\":{\"name\":\"Producto Título\",\"tipo\":\"cadena\",\"obligatorio\":falso,\"carácterValidado\":{\"habilitado\":verdadero,\"valor\":30},\"valorPredeterminado\":{\"habilitado\":falso},\"índice\":6}},\"obtenerClientes Potenciales\":{\"tipo\":\"booleano\",\"extra\":{\"nombre\":\"Obtener "Clientes potenciales\",\"tipo\":\"booleano\",\"obligatorio\":falso,\"valor_predeterminado\":{\"habilitado\":falso},\"índice\":7}},\"comentario\":{\"tipo\":\"cadena\",\"extra\":{\"nombre\":\"Comentario\",\"tipo\":\"cadena\",\"obligatorio\":falso,\"caracter_validado\":{\"habilitado\":verdadero,\"valor\":200},\"multilínea\":{\"habilitado\":verdadero,\"valor\":3},\"valor_predeterminado\":{\"habilitado\":falso},\"índice\":8}}}"
```
- **Paso 2: Construir el JSON de parámetros**
Construir el objeto JSON según los requisitos de los parámetros:


```json
{
"__Extra__": {
"videoDownloadUrl": {
"name": "video_name.mp4",
"size": 204800000
}

},
"videoDownloadUrl": "morelogin://cloudfile?ids=1,2"
}
``` - __Paso 3: Escapar la cadena JSON__
Convierte el objeto JSON a un formato de cadena escapada:
```json
"{\"__Extra__\": {\"videoDownloadUrl\": {\"name\": \"video_name.mp4\",\"size\": 204800000}},\"videoDownloadUrl\": "morelogin://cloudfile?ids=1,2"
Paso 4: Llamada a la API
Pase la cadena escapada como valor del parámetro `templateParameter` a la API de destino.
```

Endpoint: POST /api/cloudphone/rpa/onceTask/save
Version: 1.0.0

## Request fields (application/json):

  - `cloudPhoneId` (integer, required)
    ID de teléfono en la nube

  - `scheduleName` (string, required)
    Nombre del horario

  - `templateId` (integer, required)
    ID de plantilla, plantilla personal o ID de plantilla de mercado

  - `templateParameter` (string)
    Los parámetros de la plantilla se definen en plantillas personales o plantillas de mercado. Los parámetros en la plantilla se definen como: {"Test":{"extra":{"type":string","required":true,"multiline":{"enabled":false},"name":Test","index":1},"type":string"}} Al solicitar parámetros, el parámetro que se pasa es: {"Test":xxxx"}

  - `description` (string)
    Descripción del horario

## Response 200 fields (application/json):

  - `code` (integer, required)
    Código de respuesta: 0 indica éxito, >0 indica fallo

  - `msg` (string, required)
    Mensaje de error

  - `requestId` (string, required)
    ID de seguimiento de la solicitud

  - `data` (integer, required)
    ID de horarios

