Naboo

Cada desarrollo es un subdominio individual. La nomenclatura que se estuvo manejando es la siguiente:
1.- Definir un slug para el desarrollo. Ej. Sí el desarrollo se llama Capital Desarrollo, definiríamos el slug como capital.
2.- El subdominio utilizará el slug, Ej. capital.naboo.mx
3.- Las instancias de naboo están almacenadas en una carpeta llamada crm. Todas tienen como nombre de carpeta el slug utilizado para el subdominio seguido de un sufijo app. Ej. capital-app.

Instalación

Por defecto, con lo anterior se crea un usuario Administrador, con las siguientes credenciales:

Correo: soporte@naboo.mx
Contraseña: 123456

Distribución de directorios

Los directorios más importantes para cada instancia de naboo son los que se encuentran en: storage/app/development. Ya que ahí está almacenada las lotificaciones de cada desarrollo. Suponiendo tenemos registrado dos desarrollos, nuestros directorios tendrían la siguiente estructura:

    storage
    └──app
        └───development
            └───primer-desarrollo
                |   lotificacion.json
            └───segundo-desarrollo
                | lotificacion.json

En el storage/public/images están ubicados los archivos relacionados a los planos de cada desarrollo.

    storage
    └──app
        └───public
            └───images
                └───primer-desarrollo
                    | plano.svg
                    | plano_fondo.png

Lotificación (JSON)

Atributo Tipo Descripción
version double Define como interpretar el json. La versión anterior no contaba con todos los atributos que la versión 2 (estable).
lotificacion array Arreglo de objetos con la información de cada (#lote)
colores object Define los colores que tendrán al iniciar el mapa. Los valores aceptaos son: bgDisponible, bgApartado, bgVendido, disponible, apartado, vendido, bgSelected, selected
corrida boolean Especifica si es posible generar las corridas financieras (mantener true si es versión 2)

Lote (JSON)

Atributo Tipo Descripción
id integer Identificador único para el lote.
nombre string Nombre a visualizar del lote
precio double Precio base del lote (Por lo general es el precio de contado). Pueden haber escenarios en el que el precio base no es el de contado sino el de algún plan de financiamiento. Significa que tienen creado planes de financiamiento con descuentos.
metros double Metros cuadrados del lote
status string Disponibilidad del lote, valores aceptados: disponible, apartado, vendido

Planes de financiamiento (Mysql)

Atributo Tipo Descripción
id integer Identificador único
nombre varchar Nombre a visualizar
tipo varchar Tipo de financiamiento, valores aceptados: contado, financiamiento
porcentaje_descuento double Monto a descontar al precio base
porcentaje_interes double Monto a incrementar al precio base
tipo_enganche varchar Modelo en el que se descontará el enganche al precio toal, los valores aceptados son: porcentaje, cantidad
enganche double Valor a descontar del precio total
cuota_apertura double Descontinuado
mensualidad integer Cantidad de meses a financiar (en caso de aplicar)
pago_mensual double Monto a pagar mensualmente (descontinuado)
apartado_minimo double Monto a pagar para apartar
vigencia varchar Texto para vigencia
restricciones varchar Texto para restricciones
monto_anualidad double Monto de pago por anualidad
anualidad integer Cantidad de anualidades disponibles para el plan
e_pago_diferido integer Cantidad de pagos a diferir el enganche
saldo double Porcentaje del saldo que se espera

Modificación información modal (lotificación)

Sí es necesario modificar algunos de los campos del modal que se generá, será necesario actualizar el .js correspondiente, ya que el modal y el mapa del cotización se generán automáticamente con JS.
El archivo a modificar es el que se encuentra en: /resources/js/panel/CalculadoraLocker.js. El modal es generado en la función createNabooQuoter(_lotes).
Para hacer válidos nuestros cambios, será necesario ejecutar el siguiente comando:

    npm run prod

El comando anterior nos generará un archivo en /public/app-assets/js/custom/calc.js.

Instalar una instancia de naboo en un sitio web

Para poder visualizar un cotizador en un sitio web, necesitaremos varios elementos. El primero es la apikey del desarrollo; esa se encuentra en la base de datos de la tabla developments (se crea automáticamente al crear un nuevo desarrollo), supongamos que es: xqd045EyATnXiELU1aaINOPONK1N1el9.

Necesitamos tener listo el subdominio, y haber finalizado el proceso de instalación para la instancia de naboo. Supongamos que estaremos trabajando en el subdominio: https://emedos.naboo.mx. El script que se encargá de generar el cotizador se encontraría en: https://emedos.naboo.mx/app-assets/js/custom/calc.js

Luego necesitamos generar un base64 con la url de la api que consultaremos, por ejemplo, supongamos que tenemos nuestro subdominio listo https://emedos.naboo.mx/api/. Esto lo codificamos a base64 y otbenemos el siguiente valor que será nuestro appId: aHR0cHM6Ly9lbWVkb3MubmFib28ubXgvYXBpLw==

Una vez teniendo listo estos dos datos, en el sitio web que deseamos instalar definimos un elemento dentro del <body> con la siguiente estructura (Sustituir los valores, del appId, apikey y el JS que usaremos con los que obtuvimos):

    <div id="masterplan" style="background:url('https://3dbionotes.cnb.csic.es/images/loading.gif');background-repeat: no-repeat;background-position: center;background-size: contain;min-height: 40rem;">
        <!-- Contenido creado dinamicamente con JS (se debe mantener vacío)     -->
    </div>

Después de cerrar la etiqueta </body> agregar los siguientes scripts:

    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    <!-- Modificar esta url con el subdominio que corresponde!!! -->
    <script src="https://emedos.naboo.mx/app-assets/js/custom/calc.js"></script>
    <script>
        window.onload = () => {
            let calc = new CalculadoraLocker({
                appId: 'aHR0cHM6Ly9lbWVkb3MubmFib28ubXgvYXBpLw==',
                apikey: 'xqd045EyATnXiELU1aaINOPONK1N1el9',
                target: '#masterplan'
            });
        }
    </script>

Una vez teniendo esto el mapa debe ser visible en el sitio web.