---
# System prepended metadata

title: Phone Numberings

---

# Phone Numberings

## Modelo
```
{
  "id": "string",
  "prefix": "string",
  "phoneType": "MOBILE/LANDLINE",
  "operator": {
    "id": "string: id de la marca con ext_ si es externo para evitar ids duplicados",
    "name": "string",
    "external": boolean
  },
  "network-host": "string",
  "status": "ACTIVE/FREE/ONGOING"
}
```

## Datos de prueba
668712312 --> el rango de numeración no pertenece a ningún operador
668612312 --> parlem
667612312 --> vodafone
661612312 --> orange
606434875 --> movistar
633647614 --> yoigo
633647713 --> llamaya

## Casos de prueba en front
llamaya y 633647851 -> no activo
masmovil y 633647851 -> Ya activo (El telefono se está portando a llamaya pero aún no está activo)
llamaya y 667612312 -> GT MOBILE
llamaya y 633647859 -> XPHERA MOVILES
llamaya y 633647710 -> Numero ya pertenece a la marca
llamaya y 668712312 -> El rango de numeración no pertenece a ningún operador
masmovil y 633647710 -> VACIO HIJOS DE PUTAAAAAA

## Lógica en front: 
```
Si status == ACTIVE  y operator.name == org
    error: Ya pertenece a la marca --> mensaje de error
sino Si status == ACTIVE 
    mostrar operator.name --> se muestra el operador y se le permite continuar

Si status == IDLE
    error: El rango de numeración no pertenece a ningún operador --> se le permite elegir la marca a mano
    
Si status == ONGOING
    error: Ya existe una portabilidad en vuelo sobre este teléfono --> no valida el teléfono
``` 
    
    

## Casos
### Teléfono activo en operador externo 
/org/llamaya/phone-numberings/667612312
```
{
  "id": "667612312",
  "prefix": "+34",
  "phoneType": "MOBILE",
  "operator": {
    "id": "ext_003",
    "name": "GT MOBILE",
    "external": true
  },
      "network-host": "",
  "status": "ACTIVE"
}
```

### Teléfono Activo en Operador Interno
/org/llamaya/phone-numberings/633647713
- Hace el flujo normal y el front descubre que es la misma marca que para la que se intenta hacer la portabilidad. 

- el socket me devuelve Ya activo se está haciendo la portabilidad desde la marca en la que se llama. Tengo que rellenar los datos de la marca que me llama en currentOperator.
```
{
  "id": "633647713",
  "prefix": "+34",
  "phoneType": "MOBILE",
  "operator": {
    "id": "6",
    "name": "llamaya",
    "external": false
  },
  "status": "ACTIVE",
  "networkHost": "ORANGE",

}
```

### Telefono libre: numeración no asignada a ningún operador
/org/llamaya/phone-numberings/668712312
```
{
  "id": "666555444",
  "prefix": "+34",
  "phoneType": "MOBILE",
  "operator": {
    "id": "",
    "name": "",
    "network-host": "",
    "external": false
  },
  "status": "IDLE"
}
```

### Teléfono portandose a una marca del grupo

```
{
  "id": "633647851",
  "prefix": "+34",
  "phoneType": "MOBILE",
  "operator": {
    "id": "",
    "name": "",
    "network-host": "",
    "external": true
  },
  "status": "ONGOING"
}
```

### Portabilidad entre marcas
/org/llamaya/phone-numberings/633647851
/org/llamaya/phone-numberings/633647577

- el socket me devuelve No activo se está haciendo la portabilidad a alguna marca del grupo, pero no puedo saber a cuál. 

```
{
  "id": "666555444",
  "prefix": "+34",
  "phoneType": "MOBILE",
  "currentOperator": {
    "id": "15",
    "name": "yoigo",
    "network-host": "YOIGO",
    "external": false
  },
  "destinationOperator": {
    "id": "2",
    "name": "masmovil",
    "network-host": "YOIGO",
    "external": false
  }
  "status": "ONGOING"
}
```

### Portabilidad entre marcas con red diferente
```
{
  "id": "666555444",
  "prefix": "+34",
  "phoneType": "MOBILE",
  "currentOperator": {
    "id": "2",
    "name": "masmovil",
    "network-host": "ORANGE",
    "external": false
  },
  "destinationOperator": {
    "id": "2",
    "name": "masmovil",
    "network-host": "YOIGO",
    "external": false
  }
  "status": "ONGOING"
}
```



### Telefono fijo
```
{
  "id": "910232345",
  "prefix": "+34",
  "phoneType": "LANDLINE",
  "currentOperator": {
    "id": "",
    "name": "",
    "network-host": "",
    "external": false
  },
  "destinationOperator": {
    "id": "",
    "name": "",
    "network-host": "",
    "external": false
  },
  "status": "ACTIVE"
}
```


