Christian T Vidal пре 2 година
родитељ
комит
675ae618a8

+ 234 - 0
mobeesia/adm/constants.py

@@ -0,0 +1,234 @@
+from django.conf import settings
+
+from mobeesia.settings.development import AGENDA_ID
+
+
+class CTS():
+
+    ENV = settings.ENV
+
+    IOT_TYPE = settings.IOT_TYPE
+    
+    STORAGE_TYPE = settings.STORAGE_TYPE
+
+    AMBIENTE_EC2 = settings.AMBIENTE_EC2
+
+    GIT_PREF_USER = settings.GIT_PREF_USER
+
+    DATABASE_TYPE = settings.DATABASE_TYPE
+
+    AWS_ACCESS_KEY_ID = settings.AWS_ACCESS_KEY_ID
+    AWS_SECRET_ACCESS_KEY = settings.AWS_SECRET_ACCESS_KEY
+    AWS_S3_GEOINFODRIVERS = settings.AWS_S3_GEOINFODRIVERS
+    AWS_S3_INFODRIVERS = settings.AWS_S3_INFODRIVERS
+    AWS_S3_REGION_NAME = settings.AWS_S3_REGION_NAME
+    AWS_S3_DIR = settings.AWS_S3_DIR
+
+    AZURE_ST_ACCESS_ID = settings.AZURE_ST_ACCESS_ID
+    AZURE_ST_ACCESS_KEY_ID = settings.AZURE_ST_ACCESS_KEY_ID
+    AZURE_ST_GEOINFODRIVERS = settings.AZURE_ST_GEOINFODRIVERS
+    AZURE_ST_INFODRIVERS = settings.AZURE_ST_INFODRIVERS
+    AZURE_ST_GEOFENCES = settings.AZURE_ST_GEOFENCES
+    AZURE_ST_GENERAL = settings.AZURE_ST_GENERAL
+    AZURE_ST_CAMPAIGN_GALLERY= settings.AZURE_ST_CAMPAIGN_GALLERY
+    AZURE_ST_LOG_API = settings.AZURE_ST_LOG_API
+    AZURE_ST_PBI = settings.AZURE_ST_PBI
+    AZURE_QUEUES_FST = settings.AZURE_QUEUES_FST
+
+    GCP_ST_ACCESS_ID = settings.GCP_ST_ACCESS_ID
+    GCP_ST_ACCESS_KEY_ID = settings.GCP_ST_ACCESS_KEY_ID
+    GCP_ST_GEOINFODRIVERS = settings.GCP_ST_GEOINFODRIVERS
+    GCP_ST_INFODRIVERS = settings.GCP_ST_INFODRIVERS
+    GCP_ST_GEOFENCES = settings.GCP_ST_GEOFENCES
+    GCP_ST_GENERAL = settings.GCP_ST_GENERAL
+    GCP_ST_CAMPAIGN_GALLERY= settings.GCP_ST_CAMPAIGN_GALLERY
+    GCP_ST_LOG_API = settings.GCP_ST_LOG_API
+    GCP_ST_PBI = settings.GCP_ST_PBI
+    GCP_QUEUES_ACCESS_ID = settings.GCP_QUEUES_ACCESS_ID
+    GCP_QUEUES_REGION = settings.GCP_QUEUES_REGION
+    GCP_QUEUES_FST = settings.GCP_QUEUES_FST
+    GCP_QUEUES_FUNC = settings.GCP_QUEUES_FUNC
+    GCP_DOC_AI_PROCESSOR_ID = settings.GCP_DOC_AI_PROCESSOR_ID
+
+    DOCUSIGN_ROOT_URL = settings.DOCUSIGN_ROOT_URL
+    DOCUSIGN_USERNAME = settings.DOCUSIGN_USERNAME
+    DOCUSIGN_PASSWORD = settings.DOCUSIGN_PASSWORD
+    DOCUSIGN_INTEGRATOR_KEY = settings.DOCUSIGN_INTEGRATOR_KEY
+    DOCUSIGN_URL_CALLBACK = settings.DOCUSIGN_URL_CALLBACK
+    DOCUSIGN_TEMPLATE_1 = settings.DOCUSIGN_TEMPLATE_1
+
+    MOBEES_URL_PARCEIROS = settings.MOBEES_URL_PARCEIROS
+    MOBEES_URL_RETURN_DOC = settings.MOBEES_URL_RETURN_DOC
+    TRELLO_MODEL= settings.TRELLO_KEYS
+    CHATBOT_AUTHTK = settings.CHATBOT_AUTHTK
+    MAN_ENV = settings.MAN_JIRA_ENV
+    AGENDA_ID = settings.AGENDA_ID
+    AUTOMATION_CREDS = settings.AUTOMATION_CREDS
+
+    AWS_CLOUDWTCH_ACCESS_KEY_ID = 'AKIARRV5VVVXREBIBCRJ'
+    AWS_CLOUDWTCH_SECRET_ACCESS_KEY = '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'
+    AWS_SCHEMA_NAME = 'impressoes_buzzers'
+    AWS_REGION_NAME = 'sa-east-1'
+
+    BROKER_MQTT = "a18dk9nao9n44r-ats.iot.sa-east-1.amazonaws.com"
+    BROKER_PORT = 8883
+    CNT_IOT_AZURE = "HostName=MOBEES-IOT.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=OVqB9k+8OovhZIWMJvZGltpvEB+qYvLu4t7A7V5eUyQ="
+    ADMIN_TOPIC = "mobees/admin/"
+    
+    ADMIN_PROJECT_ID_GCP = "mobees-prd"
+    ADMIN_TOPIC_GCP = "admin"
+    ADMIN_TOPIC_RET_GCP = "admin-ret-sub"
+    ADMIN_URL_PUBLISH_GCP = "https://pubsub.googleapis.com/v1/projects/mobees-prd/topics/admin:publish"
+    ADMIN_URL_AUDIENCE_GCP = "https://pubsub.googleapis.com/google.pubsub.v1.Publisher"
+
+    URL_CARGA_MIDIA_BUZZER = "https://api.mobees.com.br/cargabuzzersadmin"
+
+    SUBJECT_EMAIL_RECOVERY_PWD = "Recuperação de Senha de Acesso"
+    SUBJECT_EMAIL_MESSAGE_GENERAL = "Comunicado MOBEES"
+    SUBJECT_EMAIL_WELCOME = "Bem-vindo à MOBEES"
+
+    EMAIL_SUPORTE_USER = "Suporte Mobees <suporte@mobees.com.br>"
+    EMAIL_NOREPLY_USER = "Mobees <naoresponder@mobees.com.br>"
+    EMAIL_CONTATO_USER = "Mobees <contato@mobees.com.br>"
+    EMAIL_BCK_USER = "Backup Mobees <suporte@mobees.com.br>"
+
+    SUBJECT_EMAIL_INSCRICAO = "Cadastro confirmado!"
+    SUBJECT_EMAIL_INDICACAO = "Seu indicado se cadastrou!"
+    SUBJECT_EMAIL_AVALIACAO = "Sua avaliação foi solicitada com sucesso!"
+
+    EMAIL_SUPORTE_MOBEES = "suporte@mobees.com.br"
+
+    GIT_LOG_PATH = "/home/ubuntu/MOBEESBACKEND/gitbridge/MOBEES-LOG/"
+    GIT_ADMIN_PATH = "/home/ubuntu/MOBEESBACKEND/gitbridge/MOBEES-ADM/"
+    GIT_ADMIN_POINTER_PATH = "/home/ubuntu/MOBEESBACKEND/gitbridge/MOBEES-ADM/gitPointer.txt"
+    GIT_SERVER_PATH = '/home/ubuntu/MOBEESGIT/'
+
+    BUZZER_HOMOLOGACAO = '9996'
+    TIPO_COM_MQQTADM = 1
+
+    MIME_TYPES = {
+        'JPG': 'image/jpeg',
+        'PNG': 'image/png',
+        'WEBP': 'image/webp',
+        'SVG': 'image/svg+xml',
+        'GIF': 'image/gif',
+        'MP4': 'video/mp4',
+        'MOV': 'video/quicktime',
+        '3GP': 'video/3gpp'
+    }
+
+    SUBJECT_SLACK_MESSAGE_GENERAL = "Comunicado"
+    SLACK_HOOK_SUPORTE = "https://hooks.slack.com/services/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"
+    SLACK_HOOK_SUBSCRIPTION = "https://hooks.slack.com/services/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"
+    SLACK_HOOK_DEPLOY = "https://hooks.slack.com/services/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"
+    SLACK_HOOK_OPERACOES = "https://hooks.slack.com/services/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"
+    SLACK_HOOK_LOG_BACKEND = "https://hooks.slack.com/services/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"
+
+    TWT_TOKEN = "39973284-NJl3uJ580fix9PUiCOYOmb9GCh0jW4K7oZITrRLLR"
+    TWT_TOKEN_SECRET = "Pb4bCkM6bZaxR3uh6WKOj31PsDLKQbzaBp12VQs1j37iW"
+    TWT_CONSUMER_KEY = "KyUYAmtf49hKruNv8YBRuDBN5"
+    TWT_CONSUMER_SECRET = "jslujvTkyY3qXDOBVQbejOo1gsdkxS9QSNdEiF3m3writH78ti"
+
+    WTH_TOKEN = "1d0c5458599563415c209afb05cd5cfd"
+    WTH_HOOK = "https://api.openweathermap.org/data/2.5/onecall?lat=%s&lon=%s&appid=%s&units=metric"
+
+    ONESIGNAL_API_ID = "162a5a01-8253-46a8-bee7-664c5afd968c"
+    ONESIGNAL_AUTH_TOKEN = "Basic MTIwZTg4ZjYtZDUyYy00MGQyLTg4MDEtODE1MzY4MTBmZTMy"
+
+    TRELLO_KEY = "1d5aa77bb27618062adba45b4895a399"
+    TRELLO_TOKEN = "0b84e8f53bf9813910b639a01e285cda727e8abfe633e9f716a45255bf94e0cf"
+
+    JIRA_AUTHORIZATION = "Basic c3Vwb3J0ZUBtb2JlZXMuY29tLmJyOnB2MDZ4R21sOFNUdU9KUzBzY1JQODk1NA=="
+
+    SLOT_TYPE_DICT = { 'INS': 'Instalação', 'MAN': 'Manutenção', 'REV': 'Revisão', 'PUB': 'Ação Publicitária' }
+    
+    PRIORITY_ISSUES = ['Aquecimento', 'Continuidade','Erro de hardware GPS', 'Modem não conecta', 'Shutdown Forçado', 'Manutenção', 'Conversão', 'Erro de hardware KMT', 'Erro de RTC']
+    
+    CLOSEABLE_ISSUES = ['Aquecimento', 'Tela branca','Sensor de Luminosidade', 'Tela congelada', 'Barulho no Buzzer', 'Não desliga', 'Barulho no rack', 'Entrando água', 'Disjuntor danificado', 'Fio descolando', 'Fio com mau contato', 'Instalação', 'Retirada', 'Modem não conecta', 'Ação Publicitária', 'Troca de Veículo', 'Revisão', 'Revisão online']
+
+    UNOVERRIDABLE_ISSUES = ['Garra Solta', 'Garra Frouxa']
+
+    DRIVER_SIGNUP = {
+        'auto_selection': {
+            'on': True,
+            'count': 20,
+            'period': {
+                'min_hour': '09:00:00',
+                'max_hour': '23:00:00'
+            },
+            'models': ['Cruze', 'HB20', 'Corolla', 'Virtus', 'Voyage', 'Lancer', 'Cerato', 'Sentra', 'Cobalt', 'Civic']
+        }
+    }
+
+    DRIVER_REMINDERS = [
+        'Já conferiu as garras do seu rack hoje? 🔐',
+        'Já conferiu se tem algum Led soltando em seu Buzzer?',
+        'Cuidado ao entrar e sair de estacionamentos, condomínios e hotéis. Verifique a altura do portão e da entrada / saída. 🔝',
+        'Cuidado ao colocar seu veículo em elevadores! Informe ao mecânico para não pressionar o Buzzer no teto.',
+        'Atenção aos fios arriados nas ruas! Cuidado para não prender no Buzzer!',
+        'Vai rodar? Não deixe de ligar seu Buzzer mesmo que já tenha alcançado 160 horas de anúncios. Esse é o nosso combinado! 🤝',
+        'Não compareça na Colmeia sem agendamento ou fora do horário! 🚫',
+        'Não use um agendamento de revisão para resolver um problema de seu Buzzer. Agende um horário de manutenção. 🛠🪛',
+        'O repasse de seus ganhos é realizado sempre na data informada no App, até 23:59h. 🤑',
+        'É de sua responsabilidade realizar a revisão periódica a cada 30 dias. O App te ajuda a lembrar! ✅',
+        'Nosso atendimento é realizado exclusivamente pelo App! Não temos atendimento via WhatsApp.',
+        'O rack é exclusivo para transporte do Buzzer. Não utilize para carregar nenhum objeto além do Buzzer.',
+        'Sempre que tiver um problema com o Buzzer ou rack, procure abrir o chamado no App o mais rápido possível e procure agendar a data mais próxima possível. 🦾'
+    ]
+
+    DRIVER_DOCS_VERIFICATION = {
+        'doc_cnh': [
+            { 'key': 'nm_motorista', 'title': 'Nome' },
+            { 'key': 'cpf_motorista', 'title': 'CPF' },
+            { 'key': 'rg_motorista', 'title': 'RG' },
+            { 'key': 'cnh_motorista', 'title': 'CNH' },
+            { 'key': 'EAR', 'title': 'EAR' }
+        ],
+        'doc_veiculo': [
+            { 'key': 'marca', 'title': 'Marca' },
+            { 'key': 'modelo', 'title': 'Modelo' },
+            { 'key': 'ano', 'title': 'Ano' },
+            { 'key': 'placa', 'title': 'Placa' },
+            { 'if': 'dono=1', 'key': 'nm_motorista', 'title': 'Nome' },
+            { 'if': 'dono=1', 'key': 'cpf_motorista', 'title': 'CPF' },
+            { 'if': 'dono=0', 'key': 'nm_prop', 'title': 'Nome Proprietário' },
+            { 'if': 'dono=0', 'key': 'cpf_prop', 'title': 'CPF Proprietário' },
+        ],
+        'doc_foto_veiculo1': [
+            { 'key': 'placa', 'title': 'placa' }
+        ],
+        'doc_foto_veiculo2': [
+            { 'key': 'placa', 'title': 'placa' }
+        ],
+        'doc_foto_veiculo3': [
+            { 'key': 'placa', 'title': 'placa' }
+        ],
+        'doc_foto_veiculo4': [
+            { 'key': 'placa', 'title': 'placa' }
+        ],
+        'doc_rg_prop': [
+            { 'key': 'nm_prop', 'title': 'Nome' },
+            { 'key': 'cpf_prop', 'title': 'CPF' },
+            { 'key': 'rg_prop', 'title': 'RG' }
+        ],
+        'doc_cpf_prop': [
+            { 'key': 'cpf_prop', 'title': 'CPF' }
+        ],
+    }
+
+    LATEST_VS_APP = {
+        "android": {
+            "latest": "172",
+            "force": "172"
+        },
+        "ios": {
+            "latest": "",
+            "force": ""
+        },
+        "web": {
+            "latest": "2.10.2",
+            "force": "2.10.2"
+        }
+    }
+
+    MEDIA_STORAGE_REF = settings.MEDIA_STORAGE_REF

+ 72 - 0
mobeesia/msgservice.py

@@ -0,0 +1,72 @@
+import logging
+from urllib3 import request,PoolManager
+from urllib3.util.timeout import Timeout
+from adm.constants import CTS as cts
+import os,sys
+import json
+import logging
+
+class HandlerUtil():
+    def sendMsgHandler(self,strMsg,strCanal):
+        data = {
+                "blocks": [
+                    {
+                        "type": "section",
+                        "text": {
+                            "type": "mrkdwn",
+                            "text": strMsg
+                        }
+                    }
+                ]
+            }
+        http = PoolManager()
+        try:
+            http.request('POST', strCanal,
+                    headers={'Content-Type': 'application/json'},
+                    body=json.dumps(data), timeout=Timeout(5))
+        except BaseException as error:
+            try:
+                exc_type, exc_obj, exc_tb = sys.exc_info()
+                fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
+                strErro = "ERRO: %s | %s | %s | %s" % (error, exc_type, fname, exc_tb.tb_lineno)
+                print(strErro)
+                pass
+            except:
+                pass
+
+class MsgOperacaoHandler(logging.Handler):
+    def emit(self, record):
+        strCanal = cts.SLACK_HOOK_OPERACOES
+        strAux = cts.GIT_PREF_USER
+        if strAux!="":
+            strAux = " (" + strAux.replace("-u ","") + ")"
+        tipoMsg = cts.AMBIENTE_EC2 + strAux + " - Monitor"
+        arrAssunto = self.format(record).split("|")
+        self.formatter=None
+        strMensagem = self.format(record)
+        if len(arrAssunto)>1:
+            strMensagem = arrAssunto[1] + "\n" + strMensagem
+        icone="rotating_light"
+        if arrAssunto[0].replace("\n","").replace(" ","")=="INFO":
+            icone="clipboard"
+        strMsg = ":" + icone + ": *" + tipoMsg + " " + arrAssunto[0] + "*\n" + strMensagem
+        HandlerUtil().sendMsgHandler(strMsg,strCanal)
+
+class MsgServiceHandler(logging.Handler):
+    def emit(self, record):
+        strCanal = cts.SLACK_HOOK_LOG_BACKEND
+        strAux = cts.GIT_PREF_USER
+        if strAux!="":
+            strAux = " (" + strAux.replace("-u ","") + ")"
+        tipoMsg = cts.AMBIENTE_EC2 + strAux + " - LOG"
+        arrAssunto = self.format(record).split("|")
+        self.formatter=None
+        strMensagem = self.format(record)
+        if len(arrAssunto)>1:
+            strMensagem = arrAssunto[1] + "\n" + strMensagem
+        icone="rotating_light"
+        if arrAssunto[0].replace("\n","").replace(" ","")=="INFO":
+            icone="clipboard"
+        #strMensagem = "Arquivo:%s\nLinha:%s\nMensagem:%s\nArgs:%s\n" % (record.filename, record.lineno,record.msg, record.args)
+        strMsg = ":" + icone + ": *" + tipoMsg + " " + arrAssunto[0] + "*\n" + strMensagem
+        HandlerUtil().sendMsgHandler(strMsg,strCanal)

+ 0 - 120
mobeesia/settings.py

@@ -1,120 +0,0 @@
-"""
-Django settings for mobeesia project.
-
-Generated by 'django-admin startproject' using Django 3.0.3.
-
-For more information on this file, see
-https://docs.djangoproject.com/en/3.0/topics/settings/
-
-For the full list of settings and their values, see
-https://docs.djangoproject.com/en/3.0/ref/settings/
-"""
-
-import os
-
-# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
-
-# Quick-start development settings - unsuitable for production
-# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
-
-# SECURITY WARNING: keep the secret key used in production secret!
-SECRET_KEY = '(w+cr+gyo#ryy#t20+2aje+5z!%_p%a1+he5m0qu-qn+ny(f0f'
-
-# SECURITY WARNING: don't run with debug turned on in production!
-DEBUG = True
-
-ALLOWED_HOSTS = []
-
-
-# Application definition
-
-INSTALLED_APPS = [
-    'django.contrib.admin',
-    'django.contrib.auth',
-    'django.contrib.contenttypes',
-    'django.contrib.sessions',
-    'django.contrib.messages',
-    'django.contrib.staticfiles',
-]
-
-MIDDLEWARE = [
-    'django.middleware.security.SecurityMiddleware',
-    'django.contrib.sessions.middleware.SessionMiddleware',
-    'django.middleware.common.CommonMiddleware',
-    'django.middleware.csrf.CsrfViewMiddleware',
-    'django.contrib.auth.middleware.AuthenticationMiddleware',
-    'django.contrib.messages.middleware.MessageMiddleware',
-    'django.middleware.clickjacking.XFrameOptionsMiddleware',
-]
-
-ROOT_URLCONF = 'mobeesia.urls'
-
-TEMPLATES = [
-    {
-        'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'DIRS': [],
-        'APP_DIRS': True,
-        'OPTIONS': {
-            'context_processors': [
-                'django.template.context_processors.debug',
-                'django.template.context_processors.request',
-                'django.contrib.auth.context_processors.auth',
-                'django.contrib.messages.context_processors.messages',
-            ],
-        },
-    },
-]
-
-WSGI_APPLICATION = 'mobeesia.wsgi.application'
-
-
-# Database
-# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
-
-DATABASES = {
-    'default': {
-        'ENGINE': 'django.db.backends.sqlite3',
-        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
-    }
-}
-
-
-# Password validation
-# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
-
-AUTH_PASSWORD_VALIDATORS = [
-    {
-        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
-    },
-    {
-        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
-    },
-    {
-        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
-    },
-    {
-        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
-    },
-]
-
-
-# Internationalization
-# https://docs.djangoproject.com/en/3.0/topics/i18n/
-
-LANGUAGE_CODE = 'en-us'
-
-TIME_ZONE = 'UTC'
-
-USE_I18N = True
-
-USE_L10N = True
-
-USE_TZ = True
-
-
-# Static files (CSS, JavaScript, Images)
-# https://docs.djangoproject.com/en/3.0/howto/static-files/
-
-STATIC_URL = '/static/'

+ 19 - 0
mobeesia/settings/__init__.py

@@ -0,0 +1,19 @@
+import os
+import socket
+
+HOST = socket.gethostname().upper()
+ENV_NAME='DESENV'
+
+if 'ENV_NAME' in os.environ:
+    ENV_NAME = os.environ['ENV_NAME']
+elif 'STG' in HOST or os.path.exists("/home/azureuser/mobees-env-stg") or os.path.exists("/home/mobees/mobees-env-stg"):
+    ENV_NAME='STG'
+elif 'PROD' in HOST or os.path.exists("/home/azureuser/mobees-env-prd") or os.path.exists("/home/mobees/mobees-env-prd"):
+    ENV_NAME = 'PROD'
+
+if ENV_NAME=='PROD' or ENV_NAME=='production':
+    from .production import *
+elif ENV_NAME=='STG' or ENV_NAME=='staging':
+    from .staging import *
+else:
+    from .development import *

+ 294 - 0
mobeesia/settings/default.py

@@ -0,0 +1,294 @@
+"""
+Django settings for mobeesia project.
+
+Generated by 'django-admin startproject' using Django 3.0.2.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.0/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/3.0/ref/settings/
+"""
+
+import os
+from django.conf.locale.pt_BR import formats as pt_br_formats
+from corsheaders.defaults import default_headers
+from datetime import timedelta
+
+pt_br_formats.DATETIME_FORMAT = "Y-M-d H:i:s"
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = '=d1iqb7*a1im61xd_47s7t9n(!m#c(q_8ls*t1)z&k%n66#gm2'
+
+ALLOWED_HOSTS = ['*']
+
+# Application definition
+
+INSTALLED_APPS = [
+    'django.contrib.admin',
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.messages',
+    'django.contrib.staticfiles',
+    'rest_framework',
+    'import_export',
+    'wap.apps.WapConfig',
+    'adm.apps.AdmConfig',
+    'dashboard.apps.DashboardConfig',
+    'signer.apps.SignerConfig',
+    'go.apps.GoConfig',
+    'corsheaders',
+    'cloud_browser',
+    'django_prometheus',
+]
+
+MIDDLEWARE = [
+    'django_prometheus.middleware.PrometheusBeforeMiddleware',
+    'django.middleware.security.SecurityMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    'django.middleware.csrf.CsrfViewMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
+    'corsheaders.middleware.CorsMiddleware',
+    'django.middleware.common.BrokenLinkEmailsMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    'django_prometheus.middleware.PrometheusAfterMiddleware',
+]
+
+CORS_ORIGIN_ALLOW_ALL = True
+
+CORS_ALLOW_HEADERS = list(default_headers) + ['X-Username']
+
+CORS_ORIGIN_WHITELIST = (
+    'https://mobees.com.br',
+    'https://www.mobees.com.br',
+    'https://mobees.webflow.io',
+    'https://parceiros.mobees.com.br',
+    'https://admin.mobees.com.br',
+    'https://go.mobees.com.br',
+    'https://parceiros.stg.mobees.com.br',
+    'https://admin.stg.mobees.com.br',
+    'https://go.stg.mobees.com.br',
+    'http://localhost',
+    'http://localhost:8000',
+    'http://localhost:8080',
+    'http://localhost:9090',
+    'http://localhost:7070',
+    'http://127.0.0.1:8887',
+    'https://management.azure.com',
+    'https://login.microsoftonline.com'
+)
+
+ROOT_URLCONF = 'mobeesia.urls'
+
+TEMPLATES = [
+    {
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
+        'DIRS': ['./templates/'],
+        'APP_DIRS': True,
+        'OPTIONS': {
+            'context_processors': [
+                'django.template.context_processors.debug',
+                'django.template.context_processors.request',
+                'django.contrib.auth.context_processors.auth',
+                'django.contrib.messages.context_processors.messages',
+            ],
+        },
+    },
+]
+
+WSGI_APPLICATION = 'mobeesia.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
+
+SQLALCHEMY_QUEUEPOOL = {
+    'pool_size': 80,
+    'max_overflow': 50,
+    'timeout': 5
+}
+
+DEFAULT_FILE_STORAGE = 'adm.storage.MediaStorage'
+
+#CLOUD_BROWSER SOMENTE AWS
+CLOUD_BROWSER_VIEW_DECORATOR = "django.contrib.admin.views.decorators.staff_member_required"
+CLOUD_BROWSER_DATASTORE = "AWS"
+
+# Password validation
+# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+    {
+        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+    },
+]
+
+AUTHENTICATION_BACKENDS = [
+    'adm.authentication.MobeesBackend',
+]
+
+IMPORT_EXPORT_USE_TRANSACTIONS = True
+
+# Internationalization
+# https://docs.djangoproject.com/en/3.0/topics/i18n/
+
+LANGUAGE_CODE = 'pt-br'
+
+TIME_ZONE = 'America/Sao_Paulo'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = False
+
+REST_FRAMEWORK = {
+   'TIME_INPUT_FORMATS': ('%H:%M:%S', )
+}
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/3.0/howto/static-files/
+
+STATIC_URL = '/static/'
+STATIC_ROOT = os.path.join(BASE_DIR, "static/")
+
+# Additional locations of static files
+STATICFILES_DIRS = (
+    # location of your application, should not be public web accessible 
+    os.path.join(BASE_DIR, "adm/static/"),
+)
+
+# List of finder classes that know how to find static files in
+# various locations.
+STATICFILES_FINDERS = (
+    'django.contrib.staticfiles.finders.FileSystemFinder',
+    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
+)
+
+LOGGING = {
+    'version': 1,
+    'disable_existing_loggers': False,
+    'handlers': {
+        'file': {
+            'level': 'INFO',
+            'class':'logging.handlers.RotatingFileHandler',
+            'filename': os.path.join(BASE_DIR, 'mobeesia.log'),
+            'maxBytes': 1024*1024*15,  
+            'backupCount': 10,
+            'formatter': 'verbose',
+        },
+        'slack': {
+            'level': 'INFO',
+            'class': 'mobeesia.msgservice.MsgServiceHandler',
+            'formatter': 'verbose',
+        },
+        'slack_operacao': {
+            'level': 'INFO',
+            'class': 'mobeesia.msgservice.MsgOperacaoHandler',
+            'formatter': 'verbose',
+        },
+        'console': {
+            'level': 'INFO',
+            'filters': ['require_debug_true'],
+            'class': 'logging.StreamHandler',
+            'formatter': 'simple'
+        },
+    },
+    'filters': {
+        'require_debug_true': {
+            '()': 'django.utils.log.RequireDebugTrue',
+        },
+    },
+    'formatters': {
+        'verbose': {
+            'format': '%(levelname)s | %(asctime)s | %(message)s',
+            'datefmt' : "%Y-%m-%d %H:%M:%S"
+        },
+        'simple': {
+            'format': '{levelname} {message}',
+            'style': '{',
+        },
+    },
+    'loggers': {
+        'mobeesia': {
+            'handlers': ['file','slack'],
+            'level': 'INFO',
+            'propagate': True,
+        },
+        'operacao': {
+            'handlers': ['file','slack_operacao'],
+            'level': 'INFO',
+            'propagate': True,
+        },
+        'django': {
+            'handlers': ['console'],
+            'propagate': True,
+        },
+        'django.request': {
+            'handlers': ['file','slack','console'],
+            'level': 'ERROR',
+            'propagate': False,
+        },
+    },
+}
+
+SIMPLE_JWT = {
+    'ACCESS_TOKEN_LIFETIME': timedelta(days=365),  # minutes=30
+    'REFRESH_TOKEN_LIFETIME': timedelta(days=365),
+    'ROTATE_REFRESH_TOKENS': False,
+    'BLACKLIST_AFTER_ROTATION': True,
+    'UPDATE_LAST_LOGIN': False,
+
+    'ALGORITHM': 'HS256',
+    'SIGNING_KEY': SECRET_KEY,
+    'VERIFYING_KEY': None,
+    'AUDIENCE': None,
+    'ISSUER': None,
+
+    'AUTH_HEADER_TYPES': ('Bearer',),
+    'AUTH_HEADER_NAME': 'HTTP_AUTHORIZATION',
+    'USER_ID_FIELD': 'id_usuario',
+    'USER_ID_CLAIM': 'id_usuario',
+
+    'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',),
+    'TOKEN_TYPE_CLAIM': 'token_type',
+
+    'JTI_CLAIM': 'jti',
+
+    'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp',
+    'SLIDING_TOKEN_LIFETIME': timedelta(minutes=5),
+    'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=1),
+}
+
+EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
+EMAIL_HOST = 'smtp-relay.gmail.com'
+EMAIL_PORT = 587
+EMAIL_USE_TLS = True
+EMAIL_USE_SSL = False
+EMAIL_HOST_USER = 'suporte@mobees.com.br'
+EMAIL_HOST_PASSWORD = 'GoMobees2019!'
+
+EMAIL_HOST_CONTACT_USER = 'contato@mobees.com.br'
+EMAIL_HOST_CONTACT_PASSWORD = 'GoMobees2019!'
+
+SESSION_SAVE_EVERY_REQUEST = True

+ 605 - 0
mobeesia/settings/development.py

@@ -0,0 +1,605 @@
+from .default import *
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+####### CONFIGURAÇÃO CLOUD ##########
+ENV = 'development'
+IOT_TYPE = 'GCP'
+STORAGE_TYPE = 'GCP'
+DATABASE_TYPE = 'GCP'
+DATABASE_TYPE_REP = 'GCP-REP'
+#####################################
+
+AMBIENTE_EC2 = "DESENV"
+
+GIT_PREF_USER = ""
+
+AWS_ACCESS_KEY_ID = 'AKIAUYQGC5MFR423TDOX'
+AWS_SECRET_ACCESS_KEY = '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'
+AWS_S3_GEOINFODRIVERS = 's3://apistgmobees/geoinfodrivers'
+AWS_S3_INFODRIVERS = 's3://apistgmobees/infodrivers'
+AWS_S3_REGION_NAME = 'us-east-1'
+AWS_S3_DIR = 's3://apistgmobees/resultquery'
+
+AZURE_ST_ACCESS_ID = 'mobeesstorage'
+AZURE_ST_ACCESS_KEY_ID = 'DFDx5GqQ7vZ6DA68Boqx9Vt7yVwKubPGbUOtlLcIbbeV5xph9H/ToHb1C63DMRp+g8iX2obsh176ZeTfNrKBCw=='
+AZURE_ST_GEOINFODRIVERS = 'stg-geoinfodrivers'
+AZURE_ST_INFODRIVERS = 'stg-infodrivers'
+AZURE_ST_GEOFENCES = 'stg-geofences'
+AZURE_ST_GENERAL = 'stg-general'
+AZURE_ST_CAMPAIGN_GALLERY = 'stg-campaign-gallery'
+AZURE_ST_LOG_API = 'stg-logapi'
+AZURE_ST_PBI = 'pbi'
+AZURE_QUEUES_FST = 'fstcustomstatistic'
+
+GCP_ST_ACCESS_ID = 'mobees-stg'
+GCP_ST_ACCESS_KEY_ID = 'storage.stg.mobees.com.br'
+GCP_ST_GEOINFODRIVERS = 'geoinfodrivers'
+GCP_ST_INFODRIVERS = 'infodrivers'
+GCP_ST_GEOFENCES = 'geofences'
+GCP_ST_GENERAL = 'general'
+GCP_ST_CAMPAIGN_GALLERY = 'campaign-gallery'
+GCP_ST_LOG_API = 'logapi'
+GCP_ST_PBI = 'pbi'
+GCP_QUEUES_ACCESS_ID = 'mobees-prd'
+GCP_QUEUES_REGION = 'us-central1'
+GCP_QUEUES_FST = 'fstcustomstatistic'
+GCP_QUEUES_FUNC = 'https://func-cmd-66z3xyf4tq-uc.a.run.app'
+GCP_DOC_AI_PROCESSOR_ID = {
+    'FORM': 'e9f55c575b59a166',
+    'DOC': '749d824a412ebcc3'
+}
+
+DOCUSIGN_ROOT_URL = 'https://demo.docusign.net/restapi/v2'
+DOCUSIGN_USERNAME = 'suporte@mobees.com.br'
+DOCUSIGN_PASSWORD = '7a#G_w!2D_pxE5z'
+DOCUSIGN_INTEGRATOR_KEY = 'd6a84bd6-47c7-4b2a-81f3-8797a64088ac'
+#DOCUSIGN_URL_CALLBACK='http://localhost:8080/signer/callbacksigner'
+DOCUSIGN_URL_CALLBACK = 'https://api.stg.mobees.com.br/callbacksigner'
+DOCUSIGN_TEMPLATE_1 = '498cd0a8-87df-4098-9655-f3d4d2b9bc74'
+
+MOBEES_URL_PARCEIROS = 'https://parceiros.stg.mobees.com.br'
+MOBEES_URL_RETURN_DOC = 'https://parceiros.stg.mobees.com.br/termo-assinado'
+
+CLOUD_BROWSER_AWS_ACCOUNT = AWS_ACCESS_KEY_ID
+CLOUD_BROWSER_AWS_SECRET_KEY = AWS_SECRET_ACCESS_KEY
+CLOUD_BROWSER_CONTAINER_WHITELIST = (
+    'apistgmobees',
+)
+
+DATABASE_INFO = {
+    'GCP': {
+        'ENGINE': 'adm.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'VoXp@r2d2021@STG',
+        'HOST': '34.170.252.130',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+        'OPTIONS': {
+            'sql_mode' : 'NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION',
+        }
+    },
+    'GCP-REP': {
+        'ENGINE': 'adm.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'VoXp@r2d2021@STG',
+        'HOST': '34.170.252.130',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+        'OPTIONS': {
+            'sql_mode' : 'NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
+        }
+    },
+    'AZURE': {
+        'ENGINE': 'django_conn_pool.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user@mobees-db-stg2',
+        'PASSWORD': 'VoXp@r2d2021@STG',
+        'HOST': 'mobees-db-stg2.mysql.database.azure.com',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+    },
+    'AWS': {
+        'ENGINE': 'django_conn_pool.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'gomobees2019',
+        'HOST': 'mobeesstaging.cmrd4nfnhfza.us-east-1.rds.amazonaws.com',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+    }
+}
+
+DATABASES = {
+    'default': DATABASE_INFO[DATABASE_TYPE],
+    'replicated': DATABASE_INFO[DATABASE_TYPE_REP],
+}
+
+MEDIA_STORAGE_REF = {
+    "GEOFENCES": {
+        'GCP': GCP_ST_GEOFENCES,
+        'AZURE': AZURE_ST_GEOFENCES,
+        'AWS': ""},
+    "GENERAL": {
+        'GCP': GCP_ST_GENERAL,
+        'AZURE': AZURE_ST_GENERAL,
+        'AWS': ""
+    },
+    "CAMPAIGN_GALLERY": {
+        'GCP': GCP_ST_CAMPAIGN_GALLERY,
+        'AZURE': AZURE_ST_CAMPAIGN_GALLERY,
+        'AWS': ""
+    },
+    "PBI": {
+        'GCP': GCP_ST_PBI,
+        'AZURE': AZURE_ST_PBI,
+        'AWS': ""
+    },
+    "LOG_API":{
+        'GCP': GCP_ST_LOG_API,
+        'AZURE': AZURE_ST_PBI,
+        'AWS': ""
+    }
+}
+
+AGENDA_ID = 'c_jvpbg3780hsej07saadpg6uelo@group.calendar.google.com'
+
+MAN_JIRA_ENV = '[TESTE] '
+
+AUTOMATION_CREDS = {
+    'useradmin': 'mel',
+    'authtk': '62363863666534626561393731316461653135333530346263383832623134306631373261653437656365343032653561643365363661623832316230316635'
+}
+TRELLO_KEYS = {
+    'BOARD_BUZZERS': {
+        'board_id' :  'Vu8mCnw0',
+        'board_lists' : {
+            'Montagem': '61fa609ec3fbaf62ebe3224c',
+            'Preparação' : '61fa609ec3fbaf62ebe3224d',
+            'Instalação' : '61fa609ec3fbaf62ebe3224e',
+            'Operação' : '61fa609ec3fbaf62ebe3224f',
+            'Inativos' : '61fa609ec3fbaf62ebe32250',
+        },
+        
+        'board_labels':{
+            'Tela Preta':'61fa609fc3fbaf62ebe325f2',
+            'Ponto Verde':'61fa609fc3fbaf62ebe325f2',
+            'Troca de chip':'61fa609fc3fbaf62ebe325b9',
+            'Problema no modem':'61fa609fc3fbaf62ebe325f5',  
+            'Retorno':'61fa609fc3fbaf62ebe325fe', 
+            'Trocar Rasp':'61fa609fc3fbaf62ebe325fb',  
+            'Realinhar estrutura':'61fa609fc3fbaf62ebe325f8', 
+            'Cache':'61fa609fc3fbaf62ebe325ef',  
+            'Não desliga':'61fa609fc3fbaf62ebe325ec',  
+            'Aquecimento':'61fa609fc3fbaf62ebe325e9',
+            'GPS':'61fa609fc3fbaf62ebe325e6',
+            'Trocar SDCard':'61fa609fc3fbaf62ebe325e3',
+            'Sensor de brilho':'61fa609fc3fbaf62ebe325e0',
+            'Tela embaralhada':'61fa609fc3fbaf62ebe325dd',
+            'Tela Manchada':'61fa609fc3fbaf62ebe325da',
+            'Não Desliga':'61fa609fc3fbaf62ebe325d7',
+            'Continuidade':'61fa609fc3fbaf62ebe325d4',
+            'Erro KMT':'61fa609ec3fbaf62ebe3224b',
+            'Não Liga':'61fa609fc3fbaf62ebe325ce',
+            'Atualização':'61fa609fc3fbaf62ebe325cb',
+            'Botão':'61fa609fc3fbaf62ebe325c8',
+            'RTC':'61fa609fc3fbaf62ebe325c5',
+            'Tela branca':'61fa609fc3fbaf62ebe325c2',
+            'Tela solta':'61fa609fc3fbaf62ebe325bf',
+            'Piscando':'61fa609fc3fbaf62ebe325bc',
+            'Em teste':'61fa609fc3fbaf62ebe325b6',
+            'Não encontrado': '626fddd888bed14836a85991',
+            'Manutenção':'628cdee517add037b99d1136',
+            
+        },
+        
+        'customField': { 
+            'Motoristas': {
+                'id': '61fa60a2c3fbaf62ebe32f4b',
+                'type': 'text'
+            },
+            'Veículo': {
+                'id': '61fa60a2c3fbaf62ebe32f6d',
+                'type': 'option',
+                'options': {
+                    'Chevrolet Cobalt':'61fa60a2c3fbaf62ebe32f6e',
+                    'Chevrolet Corsa Classic':'61fa60a2c3fbaf62ebe32f6f',
+                    'Chevrolet Cruze':'61fa60a2c3fbaf62ebe32f70',
+                    'Chevrolet Onix':'61fa60a2c3fbaf62ebe32f71',
+                    'Chevrolet Onix +':'61fa60a2c3fbaf62ebe32f72',
+                    'Chevrolet Prisma':'61fa60a2c3fbaf62ebe32f73',
+                    'Fiat Argo':'61fa60a2c3fbaf62ebe32f74',
+                    'Fiat Cronos':'61fa60a2c3fbaf62ebe32f75',
+                    'Fiat Grand Siena':'61fa60a2c3fbaf62ebe32f76',
+                    'Fiat Linea':'61fa60a2c3fbaf62ebe32f77',
+                    'Fiat Uno':'61fa60a2c3fbaf62ebe32f78',
+                    'Ford Fiesta':'61fa60a2c3fbaf62ebe32f79',
+                    'Ford Ka':'61fa60a2c3fbaf62ebe32f7a',
+                    'Ford Ka +':'61fa60a2c3fbaf62ebe32f7b',
+                    'Honda City':'61fa60a2c3fbaf62ebe32f7c',
+                    'Honda Civic':'61fa60a2c3fbaf62ebe32f7d',
+                    'Hyundai HB20':'61fa60a2c3fbaf62ebe32f7e',
+                    'Hyundai HB20S':'61fa60a2c3fbaf62ebe32f7f',
+                    'Kia Cerato':'61fa60a2c3fbaf62ebe32f80',
+                    'Nissan Sentra':'61fa60a2c3fbaf62ebe32f81',
+                    'Nissan Versa':'61fa60a2c3fbaf62ebe32f82',
+                    'Renault Fluence':'61fa60a2c3fbaf62ebe32f83',
+                    'Renault Logan':'61fa60a2c3fbaf62ebe32f84',
+                    'Toyota Corolla':'61fa60a2c3fbaf62ebe32f85',
+                    'Toyota Etios':'61fa60a2c3fbaf62ebe32f86',
+                    'Toyota Yaris':'61fa60a2c3fbaf62ebe32f87',
+                    'Volkswagen Gol':'61fa60a2c3fbaf62ebe32f88',
+                    'Volkswagen Up':'61fa60a2c3fbaf62ebe32f89',
+                    'Volkswagen Virtus':'61fa60a2c3fbaf62ebe32f8a',
+                    'Volkswagen Voyage':'61fa60a2c3fbaf62ebe32f8b'
+                }
+            },
+            'Hw': {
+                'id': '61fa60a2c3fbaf62ebe32f63',
+                'type': 'option',
+                'options': {
+                    'v1.6':'61fa60a2c3fbaf62ebe32f64',
+                    'v1.7':'61fa60a2c3fbaf62ebe32f65',
+                    'v2.1':'61fa60a2c3fbaf62ebe32f66',
+                    'v2.2':'61fa60a2c3fbaf62ebe32f67'
+                }
+            }, 
+            'Local': {
+                'id': '61fa60a2c3fbaf62ebe32f4d',
+                'type': 'option',
+                'options':{
+                    'LAB':'61fa60a2c3fbaf62ebe32f4e',
+                    'GARAGEM':'61fa60a2c3fbaf62ebe32f4f',
+                    'CAIXA':'61fa60a2c3fbaf62ebe32f50'
+                }
+            },
+            'Codigo': {
+                'id': '61fa60a2c3fbaf62ebe32fab',
+                'type': 'text'
+            },   
+            'HPWA': {
+                'id': '61fa60a2c3fbaf62ebe32faf',
+                'type': 'option',
+                'options': {
+                    'TP-Link':'61fa60a2c3fbaf62ebe32fb0',
+                    'Original':'61fa60a2c3fbaf62ebe32fb1',
+                    'Multilaser':'61fa60a2c3fbaf62ebe32fb2'
+                }
+            }, 
+            'SDCard': {
+                'id': '61fa60a2c3fbaf62ebe32fb7',
+                'type': 'option',
+                'options':{ 
+                    'Ultra':'61fa60a2c3fbaf62ebe32fb8',
+                    'Extreme':'61fa60a2c3fbaf62ebe32fb9',
+                    'Multilaser':'61fa60a2c3fbaf62ebe32fba',
+                    'Multilaser Rx':'61fa60a2c3fbaf62ebe32fbb',
+                    'USB (Multilaser)':'61fa60a2c3fbaf62ebe32fbc',
+                    'USB (Sandisk)':'61fa60a2c3fbaf62ebe32fbc',
+                    'USB (Kingston)':'61fa60a2c3fbaf62ebe32fbc'
+
+                }
+            },   
+            'Operadora': {
+                'id': '61fa60a2c3fbaf62ebe32f55',
+                'type': 'option'
+            },   
+            'Linha': {
+                'id': '61fa60a2c3fbaf62ebe32fad',
+                'type': 'text'
+            },
+            'Power Suppy': {
+                'id': '61fa60a2c3fbaf62ebe32fc3',
+                'type': 'option',
+                'options': {
+                    'LM2596S - 5.3v':'61fa60a2c3fbaf62ebe32fc4',
+                    'Outra - 5.3v':'61fa60a2c3fbaf62ebe32fc5',
+                    'Resistor - 5.3v':'61fa60a2c3fbaf62ebe32fc6'
+                }
+            } 
+        }
+    },
+    
+    'BOARD_MOTORISTAS': {
+        'board_id' :  '4Ekvj0gw',
+        'board_lists' : {
+            'Motoristas': '6202c7c846ef712cfa6d158c',
+            'Revisão': '62fbf19c5098d82dd87f78ee',
+            'Faltas' : '6202c7c846ef712cfa6d158d',
+            'Issues' : '6202c7c846ef712cfa6d158e',
+            'Agendados' : '6202c7c846ef712cfa6d158f',
+            'Resolvidos' : '6202c7c846ef712cfa6d1590',
+            'Inativos' : '6202c7c846ef712cfa6d1591'
+        },
+        
+        'board_labels':{
+            'Tela preta':'6202c7ca46ef712cfa6d1eff',
+            'Ponto Verde':'6202c7ca46ef712cfa6d1eff',
+            'Barulho no rack':'6202c7ca46ef712cfa6d1e99',
+            'Instalação':'6202c7ca46ef712cfa6d1eea',
+            'Retirada':'6202c7ca46ef712cfa6d1ed5',
+            'Modem não conecta':'6202c7ca46ef712cfa6d1ec0',
+            'Rack solto':'6202c7ca46ef712cfa6d1f0b',
+            'Ação Publicitária':'6202c7ca46ef712cfa6d1ec6',
+            'Erro de hardware KMT':'6202c7ca46ef712cfa6d1ed8',
+            'Vistoria GNV':'6202c7ca46ef712cfa6d1f05',
+            'Aquecimento':'6202c7ca46ef712cfa6d1ede',
+            'Tela embaralhada':'6202c7ca46ef712cfa6d1f02',
+            'Sem energia':'6202c7ca46ef712cfa6d1ef0',
+            'Tela solta':'6202c7ca46ef712cfa6d1f08',
+            'Continuidade':'6202c7ca46ef712cfa6d1ef3',
+            'Troca de Veículo':'6202c7ca46ef712cfa6d1eed',
+            'Buzzer não desliga':'6202c7ca46ef712cfa6d1ecf',
+            'Disjuntor danificado':'6202c7ca46ef712cfa6d1eb4',
+            'Tela congelada':'6202c7ca46ef712cfa6d1eb7',
+            'Erro de hardware GPS':'6202c7ca46ef712cfa6d1ef9',
+            'Painel de LED preto':'6202c7ca46ef712cfa6d1eba',
+            'Entrando água':'6202c7ca46ef712cfa6d1ef6',
+            'Sensor de Luminosidade':'6202c7ca46ef712cfa6d1ee4',
+            'Barulho no Buzzer':'6202c7ca46ef712cfa6d1ebd',
+            'Conversão':'6202c7ca46ef712cfa6d1ec9',
+            'Tela branca':'6202c7ca46ef712cfa6d1eae',
+            'Fio descolando':'6202c7ca46ef712cfa6d1ed2',
+            'Kernel Panic':'6202c7ca46ef712cfa6d1efc',
+            'Erro de RTC':'6202c7ca46ef712cfa6d1ea2',
+            'Garra Frouxa':'6202c7ca46ef712cfa6d1e9c',
+            'Garra Solta':'6202c7ca46ef712cfa6d1e9c',
+            'Shutdown Forçado':'6202c7ca46ef712cfa6d1ea8',
+            'Fio com mau contato':'6202c7ca46ef712cfa6d1eb1',
+            'Aplicativo':'6202c7ca46ef712cfa6d1ee7',
+            'Avisar ao Fred':'6202c7ca46ef712cfa6d1edb',
+            'Rack quebrado':'6202c7ca46ef712cfa6d1e9f',
+            'Anúncios':'6202c7ca46ef712cfa6d1ee1',
+            'Painel de LED danificado':'6202c7ca46ef712cfa6d1ecc',
+            'Garra Enferrujada':'6202c7ca46ef712cfa6d1ec3',
+            'Parafuso solto':'6202c7ca46ef712cfa6d1ea5',
+            'Manutenção':'6202c7ca46ef712cfa6d1eab',
+            'Revisão online':'62fe37ec1e90a35b97117018'
+        },
+        
+        'customField': { 
+            'Buzzer': {
+                'id': '6202c80246ef712cfa6dedf6',
+                'type': 'text'
+            },
+            'Veículo': {
+                'id': '6202c80246ef712cfa6dedfa',
+                'type': 'option',
+                'options': {
+                    'Chevrolet Cobalt':'6202c80246ef712cfa6dedfb',
+                    'Chevrolet Corsa Classic':'6202c80246ef712cfa6dedfc',
+                    'Chevrolet Cruze':'6202c80246ef712cfa6dedfd',
+                    'Chevrolet Onix':'6202c80246ef712cfa6dedfe',
+                    'Chevrolet Onix +':'6202c80246ef712cfa6dedff',
+                    'Chevrolet Prisma':'6202c80246ef712cfa6dee00',
+                    'Fiat Argo':'6202c80246ef712cfa6dee01',
+                    'Fiat Cronos':'6202c80246ef712cfa6dee02',
+                    'Fiat Grand Siena':'6202c80246ef712cfa6dee03',
+                    'Fiat Linea':'6202c80246ef712cfa6dee04',
+                    'Fiat Uno':'6202c80246ef712cfa6dee05',
+                    'Ford Fiesta':'6202c80246ef712cfa6dee06',
+                    'Ford Ka':'6202c80246ef712cfa6dee07',
+                    'Ford Ka +':'6202c80246ef712cfa6dee08',
+                    'Honda City':'6202c80246ef712cfa6dee09',
+                    'Honda Civic':'6202c80246ef712cfa6dee0a',
+                    'Hyundai HB20':'6202c80246ef712cfa6dee0b',
+                    'Hyundai HB20S':'6202c80246ef712cfa6dee0c',
+                    'Kia Cerato':'6202c80246ef712cfa6dee0d',
+                    'Nissan Sentra':'6202c80246ef712cfa6dee0e',
+                    'Nissan Versa':'6202c80246ef712cfa6dee0f',
+                    'Renault Fluence':'6202c80246ef712cfa6dee10',
+                    'Renault Logan':'6202c80246ef712cfa6dee11',
+                    'Toyota Corolla':'6202c80246ef712cfa6dee12',
+                    'Toyota Etios':'6202c80246ef712cfa6dee13',
+                    'Toyota Yaris':'6202c80246ef712cfa6dee14',
+                    'Volkswagen Gol':'6202c80246ef712cfa6dee15',
+                    'Volkswagen Up':'6202c80246ef712cfa6dee16',
+                    'Volkswagen Virtus':'6202c80246ef712cfa6dee17',
+                    'Volkswagen Voyage':'6202c80246ef712cfa6dee18'
+                }
+            },
+            'Placa': {
+                'id': '6202c80246ef712cfa6dee56',
+                'type': 'text'
+            },
+            'Revisão': {
+                'id': '6202c80246ef712cfa6dee52',
+                'type': 'checkbox'
+            },
+            'Buzzer trocado': {
+                'id': '6202c80246ef712cfa6dee38',
+                'type': 'checkbox'
+            },
+            '# do novo Buzzer': {
+                'id': '6202c80246ef712cfa6dee54',
+                'type': 'text'
+            },
+            'Início da Issue': {
+                'id': '6202c80246ef712cfa6dee58',
+                'type': 'date'
+            },
+            'Início': {
+                'id': '6202c80246ef712cfa6dee3c',
+                'type': 'date'
+            },
+            'Término': {
+                'id': '6202c80246ef712cfa6dee3a',
+                'type': 'date'
+            },
+            'Horário': {
+                'id': '6202c80246ef712cfa6dee3e',
+                'type': 'option',
+                'options': {
+                    '08:00': '6202c80246ef712cfa6dee3f',
+                    '09:00': '6202c80246ef712cfa6dee40',
+                    '10:00': '6202c80246ef712cfa6dee41',
+                    '11:00': '6202c80246ef712cfa6dee42',
+                    '12:00': '6202c80246ef712cfa6dee43',
+                    '13:00': '6202c80246ef712cfa6dee44',
+                    '14:00': '6202c80246ef712cfa6dee45',
+                    '15:00': '6202c80246ef712cfa6dee46',
+                    '16:00': '6202c80246ef712cfa6dee47'
+                }
+            },
+            'Solução': {
+                'id': '6202c80246ef712cfa6dedf8',
+                'type': 'text'
+            },
+            'Agend. canc.': {
+                'id': '6202c80246ef712cfa6dee5a',
+                'type': 'checkbox'
+            },
+            'Motivo da retirada': {
+                'id': '6202c80246ef712cfa6dee5c',
+                'type': 'option',
+                'options':{
+                    'Comportamental':'6202c80246ef712cfa6dee5d',
+                    'Modelo de Remuneração':'6202c80246ef712cfa6dee5e',
+                    'Motivos pessoais':'6202c80246ef712cfa6dee5f',
+                    'Mudança de atividade':'6202c80246ef712cfa6dee60',
+                    'Novo veículo incompatível':'6202c80246ef712cfa6dee61',
+                    'Problemas técnicos':'6202c80246ef712cfa6dee62',
+                    'Rotina incompatível':'6202c80246ef712cfa6dee63',
+                    'Veículo roubado':'6202c80246ef712cfa6dee64',
+                    'Veículo vendido':'6202c80246ef712cfa6dee65'
+                }
+            },
+            'Ticket Jira': {
+                'id': '6202c80246ef712cfa6dee70',
+                'type': 'text'
+            },
+            'Ação Publicitária': {
+                'id': '6202c80246ef712cfa6dee72',
+                'type': 'option',
+                'options': {
+                    'FlashMob':'6202c80246ef712cfa6dee73',
+                    'HoloAd':'649dc0f68fa281ad12eefa65'
+                }
+            },
+            'Fato observado': {
+                'id': '6202c80246ef712cfa6dee76',
+                'type': 'option',
+                'options':{
+                    'Insatisfação explanada':'6202c80246ef712cfa6dee77',
+                    'Insatisfação pontuada':'6202c80246ef712cfa6dee78',
+                    'Postura inadequada':'6202c80246ef712cfa6dee79',
+                    'Buzzer sujo':'6202c80246ef712cfa6dee7a',
+                    'Veículo com avarias':'6202c80246ef712cfa6dee7b',
+                    'Veículo sujo':'6202c80246ef712cfa6dee7c'
+                }
+            }
+        }
+    },
+    
+    'BOARD_MANUTENCAO': {
+        'board_id' :  'c9BYyyii',
+        'board_lists' : {
+            'Aguardando': '61fa60c0fb24e167199d7d80',
+            'Em manutenção' : '61fa60c0fb24e167199d7d81',
+            'Monitoramento interno' : '61fa60c0fb24e167199d7d82',
+            'Monitoramento externo' : '61fa60c0fb24e167199d7d83',
+            'Liberado' : '61fa60c0fb24e167199d7d84'
+        },
+        
+        'board_labels':{
+            'Tela preta': '61fa60c1fb24e167199d8aa1',
+            'Ponto Verde': '61fa60c1fb24e167199d8aa1',
+            'Modem': '61fa60c1fb24e167199d8a95',
+            'Conversão': '61fa60c1fb24e167199d8a98',
+            'Erro de hardware KMT': '61fa60c1fb24e167199d8aae',
+            'Troca de chip': '61fa60c1fb24e167199d8a7d',
+            'Continuidade': '61fa60c1fb24e167199d8ab4',
+            'Tela embaralhada': '61fa60c1fb24e167199d8aa4',
+            'Aquecimento': '61fa60c1fb24e167199d8ab7',
+            'Não Liga': '61fa60c1fb24e167199d8a8c',
+            'Buzzer não desliga': '61fa60c1fb24e167199d8a6e',
+            'Erro de hardware GPS': '61fa60c1fb24e167199d8ab1',
+            'Tela solta': '61fa60c1fb24e167199d8a9e',
+            'Não Desliga': '61fa60c1fb24e167199d8a8f',
+            'Tela branca': '61fa60c1fb24e167199d8a80',
+            'Sensor de Luminosidade': '61fa60c1fb24e167199d8aba',
+            'Tela Manchada': '61fa60c1fb24e167199d8a92',
+            'USB BOOT': '61fa60c1fb24e167199d8a71',
+            'RTC': '61fa60c1fb24e167199d8a89',
+            'USB': '61fa60c1fb24e167199d8a74',
+            'Painel de LED danificado': '61fa60c1fb24e167199d8aa7',
+            'Painel de led preto': '61fa60c1fb24e167199d8a86',
+            'Tela piscando': '61fa60c1fb24e167199d8a83',
+            'Piscando': '61fa60c1fb24e167199d8a7a',
+            'Teste': '61fa60c1fb24e167199d8a77',
+            'Kernel Panic': '61fa60c1fb24e167199d8aaa',
+            'Aplicativo': '61fa60c1fb24e167199d8abd',
+            'Sem energia': '61fa60c1fb24e167199d8a9b',
+            'Não encontrado': '626fde71e0e1f75fa00bfc95'
+        },
+        
+        'customField': { 
+            'Início': {
+                'id': '61fa60cdfb24e167199db662',
+                'type': 'date'
+            },
+            'Término': {
+                'id': '61fa60cdfb24e167199db664',
+                'type': 'date'
+            },
+            'Versão': {
+                'id': '61fa60cdfb24e167199db65c',
+                'type': 'option',
+                'options':{
+                    'v1.6':'61fa60cdfb24e167199db65d',
+                    'v2.1':'61fa60cdfb24e167199db65e'
+                }
+            },
+            'Solução': {
+                'id': '61fa60cdfb24e167199db60c',
+                'type': 'option',
+                'options':{
+                    "Cabo de força da placa de led fixado" :"61fa60cdfb24e167199db60d",
+                    "Conversão" :"61fa60cdfb24e167199db60e",
+                    "Reconfiguração da placa HDMI" :"61fa60cdfb24e167199db60f",
+                    "Tela fixada - SB" :"61fa60cdfb24e167199db610",
+                    "Tela fixada - TR" :"61fa60cdfb24e167199db611",
+                    "Troca de cabo Flat" :"61fa60cdfb24e167199db612",
+                    "Troca de cabo HDMI" :"61fa60cdfb24e167199db613",
+                    "Troca de cabo Jumper" :"61fa60cdfb24e167199db614",
+                    "Troca de cabo USB-C" :"61fa60cdfb24e167199db615",
+                    "Troca de cabo USB-V3" :"61fa60cdfb24e167199db616",
+                    "Troca de conector do cabo de força" :"61fa60cdfb24e167199db617",
+                    "Troca de fonte Binazk" :"61fa60cdfb24e167199db618",
+                    "Troca de fonte Lavalee" :"61fa60cdfb24e167199db619",
+                    "Troca de fonte Step-Down" :"61fa60cdfb24e167199db61a",
+                    "Troca de fonte Step-Down da placa HDMI" :"61fa60cdfb24e167199db61b",
+                    "Troca de GPIO" :"61fa60cdfb24e167199db61c",
+                    "Troca de GPS" :"61fa60cdfb24e167199db61d",
+                    "Troca de Hub" :"61fa60cdfb24e167199db61e",
+                    "Troca de Modem" :"61fa60cdfb24e167199db61f",
+                    "Troca de placa de LED" :"61fa60cdfb24e167199db620",
+                    "Troca de placa HPWA" :"61fa60cdfb24e167199db621",
+                    "Troca de placa HDMI" :"61fa60cdfb24e167199db622",
+                    "Troca de porta USB" :"61fa60cdfb24e167199db623",
+                    "Troca de Power Delay" :"61fa60cdfb24e167199db624",
+                    "Troca de Power Manager" :"61fa60cdfb24e167199db625",
+                    "Troca de Push Button" :"61fa60cdfb24e167199db626",
+                    "Troca de Raspberry" :"61fa60cdfb24e167199db627",
+                    "Troca de SDCard" :"61fa60cdfb24e167199db628",
+                    "Troca de Sensor de Luminosidade" :"61fa60cdfb24e167199db629",
+                    "Troca de Ventoinha" :"61fa60cdfb24e167199db62a",
+                    "Chip trocado" :"61fa60cdfb24e167199db62b",
+                    "Modem não trocado" :"61fa60cdfb24e167199db62c",
+                    "Reconfiguração vidal" :"61fa60cdfb24e167199db62d",
+                    "Teste" :"61fa60cdfb24e167199db62e",
+                    "Troca de porta HDMI do Rasp" :"61fa60cdfb24e167199db62f",
+                    "Regulagem da fonte Step-Down" :"61fa60cdfb24e167199db630",
+                    "USB modem" :"61fa60cdfb24e167199db631",
+                    "USB pen-drive" :"61fa60cdfb24e167199db632",
+                    "USB Pen, Modm e HWPA" :"61fa60cdfb24e167199db633"
+                }
+            }
+        }
+    }
+}
+CHATBOT_AUTHTK = '36323162393436373830383239373465353564656634303966383632636661616637306666653266323163313839306666313333313661323463306435633265'
+

+ 619 - 0
mobeesia/settings/production.py

@@ -0,0 +1,619 @@
+from .default import *
+import getpass
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = False
+
+####### CONFIGURAÇÃO CLOUD ##########
+ENV = 'production'
+IOT_TYPE = 'GCP'
+STORAGE_TYPE = 'GCP'
+DATABASE_TYPE = 'GCP'
+DATABASE_TYPE_REP = 'GCP-REP'
+#####################################
+
+AMBIENTE_EC2 = "PROD"
+
+GIT_PREF_USER = "-u " + str(getpass.getuser())
+if str(getpass.getuser())!="root":
+    GIT_PREF_USER = ""
+
+AWS_ACCESS_KEY_ID = 'AKIARRV5VVVXREBIBCRJ'
+AWS_SECRET_ACCESS_KEY = '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'
+AWS_S3_GEOINFODRIVERS = 's3://apimobees/geoinfodrivers'
+AWS_S3_INFODRIVERS = 's3://apimobees/infodrivers'
+AWS_S3_REGION_NAME = 'sa-east-1'
+AWS_S3_DIR = 's3://apimobees/resultquery'
+
+AZURE_ST_ACCESS_ID = 'mobeesstorage'
+AZURE_ST_ACCESS_KEY_ID = 'DFDx5GqQ7vZ6DA68Boqx9Vt7yVwKubPGbUOtlLcIbbeV5xph9H/ToHb1C63DMRp+g8iX2obsh176ZeTfNrKBCw=='
+AZURE_ST_GEOINFODRIVERS = 'geoinfodrivers'
+AZURE_ST_INFODRIVERS = 'infodrivers'
+AZURE_ST_GEOFENCES = 'geofences'
+AZURE_ST_GENERAL = 'general'
+AZURE_ST_CAMPAIGN_GALLERY = 'campaign-gallery'
+AZURE_ST_LOG_API = 'logapi'
+AZURE_ST_PBI = 'pbi'
+AZURE_QUEUES_FST = 'fstcustomstatistic'
+
+GCP_ST_ACCESS_ID = 'mobees-prd'
+GCP_ST_ACCESS_KEY_ID = 'storage.mobees.com.br'
+GCP_ST_GEOINFODRIVERS = 'geoinfodrivers'
+GCP_ST_INFODRIVERS = 'infodrivers'
+GCP_ST_GEOFENCES = 'geofences'
+GCP_ST_GENERAL = 'general'
+GCP_ST_CAMPAIGN_GALLERY = 'campaign-gallery'
+GCP_ST_LOG_API = 'logapi'
+GCP_ST_PBI = 'pbi'
+GCP_QUEUES_ACCESS_ID = 'mobees-prd'
+GCP_QUEUES_REGION = 'us-central1'
+GCP_QUEUES_FST = 'fstcustomstatistic'
+GCP_QUEUES_FUNC = 'https://func-cmd-66z3xyf4tq-uc.a.run.app'
+GCP_DOC_AI_PROCESSOR_ID = {
+    'FORM': '5665380dd914a56f',
+    'DOC': 'f84441f8b259b003'
+}
+
+DOCUSIGN_ROOT_URL = 'https://na2.docusign.net/restapi/v2'
+DOCUSIGN_USERNAME = 'suporte@mobees.com.br'
+DOCUSIGN_PASSWORD = 'RptMbz2020!!'
+DOCUSIGN_INTEGRATOR_KEY = 'f2fb587a-a093-4803-8a4f-dcc9ac36b18d'
+DOCUSIGN_URL_CALLBACK = 'https://api.mobees.com.br/callbacksigner'
+DOCUSIGN_TEMPLATE_1 = 'f5d66a3a-b2a6-4d0d-bbbb-683607037308'
+
+MOBEES_URL_PARCEIROS = 'https://parceiros.mobees.com.br'
+MOBEES_URL_RETURN_DOC = 'https://parceiros.mobees.com.br/termo-assinado'
+
+CLOUD_BROWSER_AWS_ACCOUNT = AWS_ACCESS_KEY_ID
+CLOUD_BROWSER_AWS_SECRET_KEY = AWS_SECRET_ACCESS_KEY
+CLOUD_BROWSER_CONTAINER_WHITELIST = (
+    'apimobees',
+)
+
+DATABASE_INFO = {
+    'GCP': {
+        'ENGINE': 'adm.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'VoXp@hsolo2021@PROD',
+        'HOST': '35.192.150.212',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+        'OPTIONS': {
+            'sql_mode' : 'NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION',
+        }
+    },
+    'GCP-REP': {
+        'ENGINE': 'adm.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'VoXp@hsolo2021@PROD',
+        'HOST': '34.173.200.87',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+        'OPTIONS': {
+            'sql_mode' : 'NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
+        }
+    },
+    'AZURE': {
+        'ENGINE': 'django_conn_pool.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user@mobees-db-prod',
+        'PASSWORD': 'VoXp@hsolo2021@PROD',
+        'HOST': 'mobees-db-prod.mysql.database.azure.com',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+    },
+    'AWS': {
+        'ENGINE': 'django_conn_pool.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'gomobees2019',
+        'HOST': 'mobeesdspb.cwbr5easqfel.sa-east-1.rds.amazonaws.com',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+    }
+}
+
+DATABASES = {
+    'default': DATABASE_INFO[DATABASE_TYPE],
+    'replicated': DATABASE_INFO[DATABASE_TYPE_REP],
+}
+
+MEDIA_STORAGE_REF = {
+    "GEOFENCES": {
+        'GCP': GCP_ST_GEOFENCES,
+        'AZURE': AZURE_ST_GEOFENCES,
+        'AWS': ""},
+    "GENERAL": {
+        'GCP': GCP_ST_GENERAL,
+        'AZURE': AZURE_ST_GENERAL,
+        'AWS': ""
+    },
+    "CAMPAIGN_GALLERY": {
+        'GCP': GCP_ST_CAMPAIGN_GALLERY,
+        'AZURE': AZURE_ST_CAMPAIGN_GALLERY,
+        'AWS': ""
+    },
+    "PBI": {
+        'GCP': GCP_ST_PBI,
+        'AZURE': AZURE_ST_PBI,
+        'AWS': ""
+    },
+    "LOG_API":{
+        'GCP': GCP_ST_LOG_API,
+        'AZURE': AZURE_ST_PBI,
+        'AWS': ""
+    }
+}
+
+MAN_JIRA_ENV = ''
+
+AGENDA_ID = 'primary'
+
+AUTOMATION_CREDS = {
+    'useradmin': 'mel',
+    'authtk': '62363863666534626561393731316461653135333530346263383832623134306631373261653437656365343032653561643365363661623832316230316635'
+}
+
+TRELLO_KEYS = {
+    'BOARD_BUZZERS': {
+        'board_id' :  'Ue6v1DKq',
+        'board_lists' : {
+            'Montagem': '5ecdae96184ec05bf82cdc83',
+            'Preparação' : '5eccf47de2b4fb7b6aa69b42',
+            'Instalação' : '5ecdaedc7e34f0842573c375',
+            'Operação' : '5eccf48489d68842ce6bc1e3',
+            'Inativos' : '5eee2be8652f802a348cf2e7',
+        },
+        
+        'board_labels':{
+            'Tela Preta':'604b5daab25ee91a4d300695',
+            'Ponto Verde':'604b5daab25ee91a4d300695',
+            'Troca de chip':'61dd91193abd8e2a8a3cab54',
+            'Modem não conecta':'604b5d4556c07905d12da940',  
+            'Retorno':'5f87376a787b6313915d6685', 
+            'Trocar Rasp':'604b5c8ea2e4c6367ce0bcab',  
+            'Realinhar estrutura':'604b5cf60c44b385478011a4', 
+            'Cache':'604b5e5d1f50dd4e152decf7',  
+            'Não desliga':'604b60198e26003b2c573268',  
+            'Aquecimento':'604b6065860ba24e34b6c060',
+            'GPS':'6054dbff6c012f44c8e97410',
+            'Trocar SDCard':'605612d34838643e47b1d9fc',
+            'Sensor de brilho':'6061b95998c73f04d3a00057',
+            'Tela embaralhada':'6065ce2f435e781dad98b290',
+            'Tela Manchada':'606de601382da05a8369ca8d',
+            'Não Desliga':'6076eb92d825b98b0c275d96',
+            'Continuidade':'60899af2406a2665282cb828',
+            'Erro KMT':'608fdc4aeca911196ec49fdb',
+            'Não Liga':'60954ac54a403c1c5f5c71b2',
+            'Atualização':'60e851751a2416427faa0b15',
+            'Botão':'60edca542e64c72279877478',
+            'RTC':'61325bd42f26d73326bed1dc',
+            'Tela branca':'5eccf45e2bf2950175f9565d',
+            'Tela solta':'61d305a382a73838e33efc61',
+            'Piscando':'61d84d65139f5405535e734c',
+            'Em teste':'5f8736e5b15e448de5d6a4e6',
+            'Não encontrado': '6241b52ab2a276801f5d960f',
+            'Manutenção':'628cdee517add037b99d1136',
+            
+        },
+        
+        'customField': { 
+            'Motoristas': {
+                'id': '5ecdb1f756914d6058f3aa7f',
+                'type': 'text'
+            },
+            'Veículo': {
+                'id': '5eee0213e8ac68694cba8342',
+                'type': 'option',
+                'options': {
+                    'Chevrolet Cobalt':'5eee0213e8ac68694cba8343',
+                    'Chevrolet Corsa Classic':'5eee0213e8ac68694cba8344',
+                    'Chevrolet Cruze':'5eee0213e8ac68694cba8345',
+                    'Chevrolet Onix':'5eee0213e8ac68694cba8346',
+                    'Chevrolet Onix +':'5eee0213e8ac68694cba8347',
+                    'Chevrolet Prisma':'5eee0213e8ac68694cba8348',
+                    'Fiat Argo':'603951732ac018549e53d207',
+                    'Fiat Cronos':'5f3552968a6c766bf7613203',
+                    'Fiat Grand Siena':'5eee0213e8ac68694cba8349',
+                    'Fiat Linea':'5ef4ecbe5e20db7da952330b',
+                    'Fiat Uno':'60395111e561a079f453affb',
+                    'Ford Fiesta':'5eee0213e8ac68694cba834a',
+                    'Ford Ka':'5eee0213e8ac68694cba834b',
+                    'Ford Ka +':'5eee0213e8ac68694cba834c',
+                    'Honda City':'5eee0213e8ac68694cba834d',
+                    'Honda Civic':'5eee0213e8ac68694cba834e',
+                    'Hyundai HB20':'5eee0213e8ac68694cba834f',
+                    'Hyundai HB20S':'5eee1399e27aa87ef0e8cd9b',
+                    'Kia Cerato':'5eee0213e8ac68694cba8350',
+                    'Nissan Sentra':'5eee0213e8ac68694cba8351',
+                    'Nissan Versa':'5eee0213e8ac68694cba8352',
+                    'Renault Fluence':'6046262be6226184dd377b67',
+                    'Renault Logan':'5eee0213e8ac68694cba8353',
+                    'Toyota Corolla':'5eee0213e8ac68694cba8354',
+                    'Toyota Etios':'5eee0213e8ac68694cba8355',
+                    'Toyota Yaris':'5ef4fe940a757516af88b4e2',
+                    'Volkswagen Gol':'5eee0213e8ac68694cba8356',
+                    'Volkswagen Up':'5eee0213e8ac68694cba8357',
+                    'Volkswagen Virtus':'5eee0213e8ac68694cba8358',
+                    'Volkswagen Voyage':'5eee0213e8ac68694cba8359'
+                }
+            },
+            'Hw': {
+                'id': '5ece6622f687226ca8cff5d9',
+                'type': 'option',
+                'options': {
+                    'v1.6':'5fc94cd950689a2b9787635d',
+                    'v1.7':'60a7bdc5edc3541f0eaa1e8f',
+                    'v2.1':'5fd7a28ca3749d20af01ea4b',
+                    'v2.2':'60a7bdca0c6afd5ccfb3f66f'
+                }
+            }, 
+            'Local': {
+                'id': '5ece451253ee0c7fa42a9de4',
+                'type': 'option',
+                'options':{
+                    'LAB':'5eceb86e4aa46e3cf8c23110',
+                    'GARAGEM':'5ecea74fe27b2d5667600732',
+                    'CAIXA':'5f873637ab5cfc035934dde6'
+                }
+            },
+            'Codigo': {
+                'id': '5efba3857927446a1365357a',
+                'type': 'text'
+            },   
+            'HPWA': {
+                'id': '5f771251fd9baf4b8f071c29',
+                'type': 'option',
+                'options': {
+                    'TP-Link':'5f771251fd9baf4b8f071c2a',
+                    'Original':'5f771251fd9baf4b8f071c2b',
+                    'Multilaser':'61f7e418cff30f80c0d6aad4'
+                }
+            }, 
+            'SDCard': {
+                'id': '60a65273747ce11a6de36cbb',
+                'type': 'option',
+                'options':{ 
+                    'Ultra':'60a65273747ce11a6de36cbc',
+                    'Extreme':'60a65273747ce11a6de36cbd',
+                    'Multilaser':'61ae21ffe0b7293dfa12b126',
+                    'Multilaser Rx':'61ae222c3b080e3e8bd69764',
+                    'USB (Multilaser)':'61e6af73bd090f2a9d6b01e7',
+                    'USB (Sandisk)':'620b807a11add93f38493695',
+                    'USB (Kingston)':'620b8080bc7c5568b3d6c0fe'
+
+                }
+            },   
+            'Operadora': {
+                'id': '5ece659eb6004c4d6dbb7a82',
+                'type': 'option'
+            },   
+            'Linha': {
+                'id': '5f0cb795e2e1eb1db1326b3e',
+                'type': 'text'
+            },
+            'Power Suppy': {
+                'id': '61ef25bda0763b69b56018f7',
+                'type': 'option',
+                'options': {
+                    'LM2596S - 5.3v':'61ef25bda0763b69b56018f8',
+                    'Outra - 5.3v':'61efef77f223e32c6ea2e777',
+                    'Resistor - 5.3v':'61ef25bda0763b69b56018f9'
+                }
+            } 
+        }
+    },
+    
+    'BOARD_MOTORISTAS': {
+        'board_id' :  'Pp61xM9R',
+        'board_lists' : {
+            'Motoristas': '5ef92993d4f47b7077e67182',
+            'Revisão' : '630d20c1d9d3740052e3877b',
+            'Faltas' : '5fea56da29b41d30ce440c6c',
+            'Issues' : '5ef92a0e8845447c9e8fda59',
+            'Agendados' : '5ef92a68be1b5a78ba0c4d1e',
+            'Resolvidos' : '5ef9e7292bc9e962071b1750',
+            'Inativos' : '5ef92a1b6765f55a2366e73b'
+        },
+        
+        'board_labels':{
+            'Tela preta':'5ef9d41ff6b8ad81e39f91cf',
+            'Ponto Verde':'5ef9d41ff6b8ad81e39f91cf',
+            'Barulho no rack':'5ef9293ef1bb5752f6531f36',
+            'Instalação':'5f2065297788ca1f1b339c78',
+            'Retirada':'5f7e0334389fe02f857fdbbf',
+            'Modem não conecta':'6044f4df9d00840d9ee4f0eb',
+            'Rack solto':'5ef9293ef1bb5752f6531f3b',
+            'Ação Publicitária':'5ffcd05c3d59bb09f8734c9d',
+            'Erro de hardware KMT':'5f7b15a799b36e243023be95',
+            'Vistoria GNV':'5ef9293ef1bb5752f6531f3d',
+            'Aquecimento':'5f576f33c52d3318a5257f85',
+            'Tela embaralhada':'5ef9293ef1bb5752f6531f3e',
+            'Sem energia':'5f12d75f611f6c70e8081685',
+            'Tela solta':'5ef9293ef1bb5752f6531f3c',
+            'Continuidade':'5f0ce748522ac4317b867842',
+            'Troca de Veículo':'5f1c6d068aeb943f15aa23b3',
+            'Buzzer não desliga':'5fce3e02774cdc0ae5d72951',
+            'Disjuntor danificado':'6050b5408f1a523d1b4efd03',
+            'Tela congelada':'6048d4089da14e07cf5b0fea',
+            'Erro de hardware GPS':'5efd082e55db9b04a5f46bcd',
+            'Painel de LED preto':'6047687df10d3e43515d354f',
+            'Entrando água':'5f087667e43bd45d351236bf',
+            'Sensor de Luminosidade':'5f2d6489c8aa4b5de52053b4',
+            'Barulho no Buzzer':'604767f267c51a5ad170bd41',
+            'Conversão':'5ff49b9e426ed6710f6b39e7',
+            'Tela branca':'607b6f4be44f066189eb60cd',
+            'Fio descolando':'5fbeb6a9e6dced1a93993d56',
+            'Kernel Panic':'5efc8fa50abb5d691cdf7e3a',
+            'Erro de RTC':'6135fa39d222bf753599cbb2',
+            'Garra Frouxa':'61d36117d4b3f21f32c61e1d',
+            'Garra Solta':'61d36117d4b3f21f32c61e1d',
+            'Shutdown Forçado':'60f62a2631f42602b27117a3',
+            'Fio com mau contato':'6054a28996978e6cee7494c1',
+            'Aplicativo':'5f2c7b57364e051a4f0d5c93',
+            'Avisar ao Fred':'5f7351f1b1b42f5cfdf5ae29',
+            'Rack quebrado':'61a8a0853c54135e8022ceb2',
+            'Anúncios':'5f3d10de5acd7789ecb2e858',
+            'Painel de LED danificado':'5fec9312b06fe92f781a8dff',
+            'Garra Enferrujada':'6033f80d364dcf6e66f88d47',
+            'Parafuso solto':'61168860be79c636b2293287',
+            'Manutenção':'60bf83f98bcec710e3a32466',
+            'Revisão online':'630d27bb5181610077857360'
+        },
+        
+        'customField': { 
+            'Buzzer': {
+                'id': '5ef9d10089a91a315529a80a',
+                'type': 'text'
+            },
+            'Veículo': {
+                'id': '5efa1de5f8c7217c27d439d3',
+                'type': 'option',
+                'options': {
+                    'Chevrolet Cobalt':'5efa1dfbbb7c64488b5d6581',
+                    'Chevrolet Corsa Classic':'5efa1e088390733bd88c4e54',
+                    'Chevrolet Cruze':'5efa1e0e7384de100840bf2e',
+                    'Chevrolet Onix':'5efa1e148136614287390a4e',
+                    'Chevrolet Onix +':'5efa1e16a024056d3079411c',
+                    'Chevrolet Prisma':'5efa1e1e9eeb0b623ff50fef',
+                    'Fiat Argo':'60391695b60c901fed9435f7',
+                    'Fiat Cronos':'5f355245cf4bb3226f8d6400',
+                    'Fiat Grand Siena':'5efa1e2410e707471b654686',
+                    'Fiat Linea':'5efa1e2c64ee11383f1815eb',
+                    'Fiat Uno':'6039164ab485b22322c00b64',
+                    'Ford Fiesta':'5efa1e324ec5dc730a7063da',
+                    'Ford Ka':'5efa1e3c791ca12bc71960e4',
+                    'Ford Ka +':'5efa1e3d96b760385f3dbe6d',
+                    'Honda City':'5efa1e9d169e402cdfdf0e15',
+                    'Honda Civic':'5efa1ea30378132e4b0e1894',
+                    'Hyundai HB20':'5efa1eae42bf420952c01ff4',
+                    'Hyundai HB20S':'6040c2aa3a32815e0985abfd',
+                    'Kia Cerato':'5efa1eb8e6a6074378007659',
+                    'Nissan Sentra':'5efa1ebf2a4a4b56ef6368f5',
+                    'Nissan Versa':'5efa1ec5adb7a15476c095a3',
+                    'Renault Fluence':'6040d26574339c6e0586637f',
+                    'Renault Logan':'5efa1ece654e01836a8d71ec',
+                    'Toyota Corolla':'5efa1ed4ae94f120be31cd15',
+                    'Toyota Etios':'5efa1edcc1e50b2124c463fa',
+                    'Toyota Yaris':'5efa1ee1d2000370e573904f',
+                    'Volkswagen Gol':'5efa1ee821057302d5715955',
+                    'Volkswagen Up':'5efa1ef0b7aa3f2cd4a3671f',
+                    'Volkswagen Virtus':'5efa1effdf949f2be487eec5',
+                    'Volkswagen Voyage':'5efa1f06eae79825c46ae133'
+                }
+            },
+            'Placa': {
+                'id': '5fb40d5615c9173ce12dd619',
+                'type': 'text'
+            },
+            'Revisão': {
+                'id': '5f1cb62aa374f33eb1e4ab4f',
+                'type': 'checkbox'
+            },
+            'Buzzer trocado': {
+                'id': '5efb4683ac4def6a57d9bd4c',
+                'type': 'checkbox'
+            },
+            '# do novo Buzzer': {
+                'id': '5f1cbbc4a9db0a3805b01a49',
+                'type': 'text'
+            },
+            'Início da Issue': {
+                'id': '5feef4b0aa7ce46b8777354d',
+                'type': 'date'
+            },
+            'Início': {
+                'id': '5f15c1c3a07e3c09ecba3dbe',
+                'type': 'date'
+            },
+            'Término': {
+                'id': '5f15c17443f189626114ad1e',
+                'type': 'date'
+            },
+            'Horário': {
+                'id': '5f1607ed39c75f8b5c1c9554',
+                'type': 'option',
+                'options': {
+                    '08:00': '6001e5ee768d6164f257cf16',
+                    '09:00': '5f1607ed39c75f8b5c1c9555',
+                    '10:00': '5f1607ed39c75f8b5c1c9556',
+                    '11:00': '5f1607ed39c75f8b5c1c9557',
+                    '12:00': '5f1607ed39c75f8b5c1c9558',
+                    '13:00': '6044f0dba2010e7189d80560',
+                    '14:00': '5f1607ed39c75f8b5c1c9559',
+                    '15:00': '5f1607ed39c75f8b5c1c955a',
+                    '16:00': '5f1607ed39c75f8b5c1c955b'
+                }
+            },
+            'Solução': {
+                'id': '5efa12fc4b38262382cb1514',
+                'type': 'text'
+            },
+            'Agend. canc.': {
+                'id': '60e999b6be69da44050dd9e5',
+                'type': 'checkbox'
+            },
+            'Motivo da retirada': {
+                'id': '6115452e05a1e933610e2de8',
+                'type': 'option',
+                'options':{
+                    'Comportamental':'6115453fad386d3bbdadc237',
+                    'Modelo de Remuneração':'611545444525a484a42b4ae1',
+                    'Motivos pessoais':'61154549294a84248f50d1f7',
+                    'Mudança de atividade':'6115454e3072033649e90b2d',
+                    'Novo veículo incompatível':'61154554907c5b477b5c5212',
+                    'Problemas técnicos':'61154559a4c59d3f140637af',
+                    'Rotina incompatível':'6115456123208e23d70e6ca0',
+                    'Veículo roubado':'611545666aea4b2be9ddba51',
+                    'Veículo vendido':'6115456be18d4c3e20f4ff98'
+
+                }
+            },
+            'Ticket Jira': {
+                'id': '61265b84397eee278bc36a20',
+                'type': 'text'
+            },
+            'Ação Publicitária': {
+                'id': '6172c68b43c55311d641511a',
+                'type': 'option',
+                'options': {
+                    "FlashMob": "646e86e32f4817d5320584c2",
+                    "HoloAd": "646e86c27a4b03a789414ace",
+                }
+            },
+            'Fato observado': {
+                'id': '61d749071dc5ee508f9606ea',
+                'type': 'option',
+                'options':{
+                    'Insatisfação explanada':'61d749071dc5ee508f9606eb',
+                    'Insatisfação pontuada':'61d749071dc5ee508f9606ec',
+                    'Postura inadequada':'61d749071dc5ee508f9606ed',
+                    'Buzzer sujo':'61d82014f7af643884b8c35c',
+                    'Veículo com avarias':'61d749071dc5ee508f9606ee',
+                    'Veículo sujo':'61d749071dc5ee508f9606ef'
+                }
+            }
+        }
+    },
+    
+    'BOARD_MANUTENCAO': {
+        'board_id' :  '0h0uRcDk',
+        'board_lists' : {
+            'Aguardando': '5fee57a25c9bb64ecaa47f23',
+            'Em manutenção' : '5fee4ebd5dcd8923f36594ce',
+            'Monitoramento interno' : '5fee4ed086e6662f462e6c03',
+            'Monitoramento externo' : '5fee575d2c74b16c4c36afd9',
+            'Liberado' : '5fee4edd74686e4b9d63b9cf'
+        },
+        
+        'board_labels':{
+            'Tela preta': '5fee5050d5ad187c7997a8c3',
+            'Ponto Verde': '5fee5050d5ad187c7997a8c3',
+            'Modem não conecta': '6061c7dcb54cce28bee6ced9',
+            'Conversão': '5ff081a0766e0e66dfce05d4',
+            'Erro de hardware KMT': '5fee5028202efe43698155a2',
+            'Troca de chip': '61d2f0877cb423799ab3f7ae',
+            'Continuidade': '5fee501bd187b9685f095aaf',
+            'Tela embaralhada': '5fee5047d9fd74549329c1ec',
+            'Aquecimento': '5fee501345c8b552c8b31bc4',
+            'Não Liga': '609915aede5e854528eba142',
+            'Buzzer não desliga': '5fee4e5386c6bc9cc525bfb9',
+            'Erro de hardware GPS': '5fee5021befd7123ae783f52',
+            'Tela solta': '5fee5058229af63c9434754d',
+            'Não Desliga': '607828538e84b18724191ba2',
+            'Tela branca': '61ba2ac5f2812231a6373c9d',
+            'Sensor de Luminosidade': '5fee4ff5c826b832979f1c54',
+            'Tela Manchada': '606ee6457b36358574960c34',
+            'USB BOOT': '61f91ac13884eb8a08aa028d',
+            'RTC': '613a3e894492a935ac8205eb',
+            'USB': '61ee87c6fa1cc97970d03234',
+            'Painel de LED danificado': '5fee503b2555d044f9f35b76',
+            'Painel de led preto': '618bbaddbd71b86849d62f1d',
+            'Tela piscando': '61af417f3f2e0f112121c796',
+            'Piscando': '61d855975c081e1719008cab',
+            'Teste': '61e6afd3471f1a66e05e0c54',
+            'Kernel Panic': '5fee5033afcffc2c89eca8e7',
+            'Aplicativo': '5fee4fdfa9519d0d88f7456e',
+            'Sem energia': '5fee50606a17a31a55b54b4e',
+            'Não encontrado': '6241b511a35a857d1780df73'
+        },
+        
+        'customField': { 
+            'Início': {
+                'id': '5fee56bed1e8c43d60418bea',
+                'type': 'date'
+            },
+            'Término': {
+                'id': '5fee56c8dadd4a41542c0cea',
+                'type': 'date'
+            },
+            'Versão': {
+                'id': '5fee555c2994d872eda58337',
+                'type': 'option',
+                'options':{
+                    'v1.6':'5fee556a7f77fc5b992bdbee',
+                    'v2.1':'5fee556fbfa7882bbbbe4091'
+                }
+            },
+            'Solução': {
+                'id': '5fee5400a11da94eec5f1379',
+                'type': 'option',
+                'options':{
+                    "Cabo de força da placa de led fixado" :"609bcda9c2dbdb70a1e5418a",
+                    "Conversão" :"5ff080959a7d102e0f3b62eb",
+                    "Reconfiguração da placa HDMI" :"60d20e6ff5409c8139d2692e",
+                    "Tela fixada - SB" :"5fee541d1acf825453adf103",
+                    "Tela fixada - TR" :"5fee5424925b400fd4b87760",
+                    "Troca de GPIO" :"5ff601d4aa50c57e43c7860a",
+                    "Troca de cabo Flat" :"5fee544e39d4708d766ab17f",
+                    "Troca de cabo HDMI" :"5fee543316520c5191daea68",
+                    "Troca de cabo Jumper" :"5fee583f801ada52b1ca855c",
+                    "Troca de cabo USB-C" :"5fee543e9273bb542e6494a2",
+                    "Troca de cabo USB-V3" :"5fee5448ab573334e1dca336",
+                    "Troca de conector do cabo de força" :"609bbfac8265a7414002fbe4",
+                    "Troca de fonte Binazk" :"5fee547a4b8c584ab135f7b2",
+                    "Troca de fonte Lavalee" :"5fee5476832b002cb86ab134",
+                    "Troca de fonte Step-Down" :"5fee54a81dea157540413633",
+                    "Troca de fonte Step-Down da placa HDMI" :"61cdb193d05632288b2bea33",
+                    "Troca de GPS" :"5fee553175873759d95619f0",
+                    "Troca de Hub" :"5fee54892e04a531f162e49d",
+                    "Troca de Modem" :"5fee54d7bbafa1412a9fb402",
+                    "Troca de placa de LED" :"5fee5507fed6a32d3d47cbae",
+                    "Troca de placa HPWA" :"5fee54704073723d6abaf08d",
+                    "Troca de placa HDMI" :"5fee548faea8ee6b9261d957",
+                    "Troca de porta USB" :"6033c3b28d920831aed98348",
+                    "Troca de Power Delay" :"5fee5826a946c35ceff31e9e",
+                    "Troca de Power Manager" :"5fee582c037c014efc7c62d2",
+                    "Troca de Push Button" :"5fee54e531512b7766a20e08",
+                    "Troca de Sensor de Luminosidade" :"5fee54fd67d212054a3ec8f2",
+                    "Troca de Raspberry" :"5fee54ce2b83e5533de2f902",
+                    "Troca de SDCard" :"5fee54da66395034a064217f",
+                    "Troca de Ventoinha" :"5fee551a4391f367fb631398",
+                    "Troca de Ventoinha lateral" :"61fd215e1747314f95d81dfc",
+                    "Troca de RTC" :"62164623b18823128a7c90dd",
+                    "Troca de porta USB pen-drive" :"6213b628d4247b8345fd57f0",
+                    "Troca de pen-drive" :"6206476c11c89b11e926a7f8",
+                    "Troca de porta HDMI do Rasp" :"61e6fa68e4f9cd2d67722dc6",
+                    "Troca de fio jump 12v delay." :"621f63eafc84a3219b171255",
+                    "Troca de cabo USB" :"6241de21967b7011bec50823",
+                    "Troca de porta USB 3.0 para 2.0" :"6216209e64d81c131ec4bdf5",
+                    "Troca de time" :"6255b1c0edf38409074b4cb2",
+                    "Chip trocado" :"61d2f09dfd41174c5c4e8844",
+                    "Modem reconfigurado" :"61e5b4ef702b6c8c5d6d976f",
+                    "Reconfiguração vidal" :"61e5bbd44221416280e2a0b9",
+                    "Resoldagem do GPS" :"61e6b17b042ce0871de2298e",
+                    "Regulagem da fonte Step-Down" :"61eae0ad70317c8966e26c8d",
+                    "USB modem" :"61ee87d8e0c51326acd79b8f",
+                    "USB pen-drive e Modem" :"61ee87f1efaf4478e0c0312d",
+                    "USB Pen, Modem e HPWA" :"61ee882ed1840901e84b755e",
+                    "Calço no chip do modem" :"6213dae42f78501c617464f3",
+                    "Ajuste do horário do relógio" :"6218e8fc5d97292bc435b3ba",
+                    "Nenhum problema encontrado" :"6213ce6174c2fc3f5458e091"
+                }
+            }
+        }
+    }
+}
+CHATBOT_AUTHTK = '62363863666534626561393731316461653135333530346263383832623134306631373261653437656365343032653561643365363661623832316230316635'

+ 606 - 0
mobeesia/settings/staging.py

@@ -0,0 +1,606 @@
+from .default import *
+import getpass
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = False
+
+####### CONFIGURAÇÃO CLOUD ##########
+ENV = 'staging'
+IOT_TYPE = 'GCP'
+STORAGE_TYPE = 'GCP'
+DATABASE_TYPE = 'GCP'
+DATABASE_TYPE_REP = 'GCP-REP'
+#####################################
+
+AMBIENTE_EC2 = "STAG"
+
+GIT_PREF_USER = "-u " + str(getpass.getuser())
+if str(getpass.getuser())!="root":
+    GIT_PREF_USER = ""
+
+AWS_ACCESS_KEY_ID = 'AKIAUYQGC5MFR423TDOX'
+AWS_SECRET_ACCESS_KEY = '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'
+AWS_S3_GEOINFODRIVERS = 's3://apistgmobees/geoinfodrivers'
+AWS_S3_INFODRIVERS = 's3://apistgmobees/infodrivers'
+AWS_S3_REGION_NAME = 'us-east-1'
+AWS_S3_DIR = 's3://apistgmobees/resultquery'
+
+AZURE_ST_ACCESS_ID = 'mobeesstorage'
+AZURE_ST_ACCESS_KEY_ID = 'DFDx5GqQ7vZ6DA68Boqx9Vt7yVwKubPGbUOtlLcIbbeV5xph9H/ToHb1C63DMRp+g8iX2obsh176ZeTfNrKBCw=='
+AZURE_ST_GEOINFODRIVERS = 'stg-geoinfodrivers'
+AZURE_ST_INFODRIVERS = 'stg-infodrivers'
+AZURE_ST_GEOFENCES = 'stg-geofences'
+AZURE_ST_GENERAL = 'stg-general'
+AZURE_ST_CAMPAIGN_GALLERY = 'stg-campaign-gallery'
+AZURE_ST_LOG_API = 'stg-logapi'
+AZURE_ST_PBI = 'pbi'
+AZURE_QUEUES_FST = 'fstcustomstatistic'
+
+GCP_ST_ACCESS_ID = 'mobees-stg'
+GCP_ST_ACCESS_KEY_ID = 'storage.stg.mobees.com.br'
+GCP_ST_GEOINFODRIVERS = 'geoinfodrivers'
+GCP_ST_INFODRIVERS = 'infodrivers'
+GCP_ST_GEOFENCES = 'geofences'
+GCP_ST_GENERAL = 'general'
+GCP_ST_CAMPAIGN_GALLERY = 'campaign-gallery'
+GCP_ST_LOG_API = 'logapi'
+GCP_ST_PBI = 'pbi'
+GCP_QUEUES_ACCESS_ID = 'mobees-prd'
+GCP_QUEUES_REGION = 'us-central1'
+GCP_QUEUES_FST = 'fstcustomstatistic'
+GCP_QUEUES_FUNC = 'https://func-cmd-66z3xyf4tq-uc.a.run.app'
+GCP_DOC_AI_PROCESSOR_ID = {
+    'FORM': 'e9f55c575b59a166',
+    'DOC': '749d824a412ebcc3'
+}
+
+DOCUSIGN_ROOT_URL = 'https://demo.docusign.net/restapi/v2'
+DOCUSIGN_USERNAME = 'suporte@mobees.com.br'
+DOCUSIGN_PASSWORD = '7a#G_w!2D_pxE5z'
+DOCUSIGN_INTEGRATOR_KEY = '10d73288-e927-425b-b862-ce9385f76b9f'
+DOCUSIGN_URL_CALLBACK = 'https://api.stg.mobees.com.br/callbacksigner'
+DOCUSIGN_TEMPLATE_1 = '498cd0a8-87df-4098-9655-f3d4d2b9bc74'
+
+MOBEES_URL_PARCEIROS = 'https://parceiros.stg.mobees.com.br'
+MOBEES_URL_RETURN_DOC = 'https://parceiros.stg.mobees.com.br/termo-assinado'
+
+CLOUD_BROWSER_AWS_ACCOUNT = AWS_ACCESS_KEY_ID
+CLOUD_BROWSER_AWS_SECRET_KEY = AWS_SECRET_ACCESS_KEY
+CLOUD_BROWSER_CONTAINER_WHITELIST = (
+    'apistgmobees',
+)
+
+DATABASE_INFO = {
+    'GCP': {
+        'ENGINE': 'adm.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'VoXp@r2d2021@STG',
+        'HOST': '34.170.252.130',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+        'OPTIONS': {
+            'sql_mode' : 'NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION',
+        }
+    },
+    'GCP-REP': {
+        'ENGINE': 'adm.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'VoXp@r2d2021@STG',
+        'HOST': '34.170.252.130',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+        'OPTIONS': {
+            'sql_mode' : 'NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
+        }
+    },
+    'AZURE': {
+        'ENGINE': 'django_conn_pool.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user@mobees-db-stg2',
+        'PASSWORD': 'VoXp@r2d2021@STG',
+        'HOST': 'mobees-db-stg2.mysql.database.azure.com',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+    },
+    'AWS': {
+        'ENGINE': 'django_conn_pool.mysql',
+        'NAME': 'innodb',
+        'USER': 'mobees_db_user',
+        'PASSWORD': 'gomobees2019',
+        'HOST': 'mobeesstaging.cmrd4nfnhfza.us-east-1.rds.amazonaws.com',
+        'PORT': '3306',
+        'CONN_MAX_AGE': 120,
+    }
+}
+
+DATABASES = {
+    'default': DATABASE_INFO[DATABASE_TYPE],
+    'replicated': DATABASE_INFO[DATABASE_TYPE_REP],
+}
+
+MEDIA_STORAGE_REF = {
+    "GEOFENCES": {
+        'GCP': GCP_ST_GEOFENCES,
+        'AZURE': AZURE_ST_GEOFENCES,
+        'AWS': ""},
+    "GENERAL": {
+        'GCP': GCP_ST_GENERAL,
+        'AZURE': AZURE_ST_GENERAL,
+        'AWS': ""
+    },
+    "CAMPAIGN_GALLERY": {
+        'GCP': GCP_ST_CAMPAIGN_GALLERY,
+        'AZURE': AZURE_ST_CAMPAIGN_GALLERY,
+        'AWS': ""
+    },
+    "PBI": {
+        'GCP': GCP_ST_PBI,
+        'AZURE': AZURE_ST_PBI,
+        'AWS': ""
+    },
+    "LOG_API":{
+        'GCP': GCP_ST_LOG_API,
+        'AZURE': AZURE_ST_PBI,
+        'AWS': ""
+    }
+}
+
+AGENDA_ID = 'c_jvpbg3780hsej07saadpg6uelo@group.calendar.google.com'
+
+MAN_JIRA_ENV = '[TESTE] '
+
+AUTOMATION_CREDS = {
+    'useradmin': 'mel',
+    'authtk': '62363863666534626561393731316461653135333530346263383832623134306631373261653437656365343032653561643365363661623832316230316635'
+}
+
+TRELLO_KEYS = {
+    'BOARD_BUZZERS': {
+        'board_id' :  'Vu8mCnw0',
+        'board_lists' : {
+            'Montagem': '61fa609ec3fbaf62ebe3224c',
+            'Preparação' : '61fa609ec3fbaf62ebe3224d',
+            'Instalação' : '61fa609ec3fbaf62ebe3224e',
+            'Operação' : '61fa609ec3fbaf62ebe3224f',
+            'Inativos' : '61fa609ec3fbaf62ebe32250',
+        },
+        
+        'board_labels':{
+            'Tela Preta':'61fa609fc3fbaf62ebe325f2',
+            'Ponto Verde':'61fa609fc3fbaf62ebe325f2',
+            'Troca de chip':'61fa609fc3fbaf62ebe325b9',
+            'Problema no modem':'61fa609fc3fbaf62ebe325f5',  
+            'Retorno':'61fa609fc3fbaf62ebe325fe', 
+            'Trocar Rasp':'61fa609fc3fbaf62ebe325fb',  
+            'Realinhar estrutura':'61fa609fc3fbaf62ebe325f8', 
+            'Cache':'61fa609fc3fbaf62ebe325ef',  
+            'Não desliga':'61fa609fc3fbaf62ebe325ec',  
+            'Aquecimento':'61fa609fc3fbaf62ebe325e9',
+            'GPS':'61fa609fc3fbaf62ebe325e6',
+            'Trocar SDCard':'61fa609fc3fbaf62ebe325e3',
+            'Sensor de brilho':'61fa609fc3fbaf62ebe325e0',
+            'Tela embaralhada':'61fa609fc3fbaf62ebe325dd',
+            'Tela Manchada':'61fa609fc3fbaf62ebe325da',
+            'Não Desliga':'61fa609fc3fbaf62ebe325d7',
+            'Continuidade':'61fa609fc3fbaf62ebe325d4',
+            'Erro KMT':'61fa609ec3fbaf62ebe3224b',
+            'Não Liga':'61fa609fc3fbaf62ebe325ce',
+            'Atualização':'61fa609fc3fbaf62ebe325cb',
+            'Botão':'61fa609fc3fbaf62ebe325c8',
+            'RTC':'61fa609fc3fbaf62ebe325c5',
+            'Tela branca':'61fa609fc3fbaf62ebe325c2',
+            'Tela solta':'61fa609fc3fbaf62ebe325bf',
+            'Piscando':'61fa609fc3fbaf62ebe325bc',
+            'Em teste':'61fa609fc3fbaf62ebe325b6',
+            'Não encontrado': '626fddd888bed14836a85991'
+            
+        },
+        
+        'customField': { 
+            'Motoristas': {
+                'id': '61fa60a2c3fbaf62ebe32f4b',
+                'type': 'text'
+            },
+            'Veículo': {
+                'id': '61fa60a2c3fbaf62ebe32f6d',
+                'type': 'option',
+                'options': {
+                    'Chevrolet Cobalt':'61fa60a2c3fbaf62ebe32f6e',
+                    'Chevrolet Corsa Classic':'61fa60a2c3fbaf62ebe32f6f',
+                    'Chevrolet Cruze':'61fa60a2c3fbaf62ebe32f70',
+                    'Chevrolet Onix':'61fa60a2c3fbaf62ebe32f71',
+                    'Chevrolet Onix +':'61fa60a2c3fbaf62ebe32f72',
+                    'Chevrolet Prisma':'61fa60a2c3fbaf62ebe32f73',
+                    'Fiat Argo':'61fa60a2c3fbaf62ebe32f74',
+                    'Fiat Cronos':'61fa60a2c3fbaf62ebe32f75',
+                    'Fiat Grand Siena':'61fa60a2c3fbaf62ebe32f76',
+                    'Fiat Linea':'61fa60a2c3fbaf62ebe32f77',
+                    'Fiat Uno':'61fa60a2c3fbaf62ebe32f78',
+                    'Ford Fiesta':'61fa60a2c3fbaf62ebe32f79',
+                    'Ford Ka':'61fa60a2c3fbaf62ebe32f7a',
+                    'Ford Ka +':'61fa60a2c3fbaf62ebe32f7b',
+                    'Honda City':'61fa60a2c3fbaf62ebe32f7c',
+                    'Honda Civic':'61fa60a2c3fbaf62ebe32f7d',
+                    'Hyundai HB20':'61fa60a2c3fbaf62ebe32f7e',
+                    'Hyundai HB20S':'61fa60a2c3fbaf62ebe32f7f',
+                    'Kia Cerato':'61fa60a2c3fbaf62ebe32f80',
+                    'Nissan Sentra':'61fa60a2c3fbaf62ebe32f81',
+                    'Nissan Versa':'61fa60a2c3fbaf62ebe32f82',
+                    'Renault Fluence':'61fa60a2c3fbaf62ebe32f83',
+                    'Renault Logan':'61fa60a2c3fbaf62ebe32f84',
+                    'Toyota Corolla':'61fa60a2c3fbaf62ebe32f85',
+                    'Toyota Etios':'61fa60a2c3fbaf62ebe32f86',
+                    'Toyota Yaris':'61fa60a2c3fbaf62ebe32f87',
+                    'Volkswagen Gol':'61fa60a2c3fbaf62ebe32f88',
+                    'Volkswagen Up':'61fa60a2c3fbaf62ebe32f89',
+                    'Volkswagen Virtus':'61fa60a2c3fbaf62ebe32f8a',
+                    'Volkswagen Voyage':'61fa60a2c3fbaf62ebe32f8b'
+                }
+            },
+            'Hw': {
+                'id': '61fa60a2c3fbaf62ebe32f63',
+                'type': 'option',
+                'options': {
+                    'v1.6':'61fa60a2c3fbaf62ebe32f64',
+                    'v1.7':'61fa60a2c3fbaf62ebe32f65',
+                    'v2.1':'61fa60a2c3fbaf62ebe32f66',
+                    'v2.2':'61fa60a2c3fbaf62ebe32f67'
+                }
+            }, 
+            'Local': {
+                'id': '61fa60a2c3fbaf62ebe32f4d',
+                'type': 'option',
+                'options':{
+                    'LAB':'61fa60a2c3fbaf62ebe32f4e',
+                    'GARAGEM':'61fa60a2c3fbaf62ebe32f4f',
+                    'CAIXA':'61fa60a2c3fbaf62ebe32f50'
+                }
+            },
+            'Codigo': {
+                'id': '61fa60a2c3fbaf62ebe32fab',
+                'type': 'text'
+            },   
+            'HPWA': {
+                'id': '61fa60a2c3fbaf62ebe32faf',
+                'type': 'option',
+                'options': {
+                    'TP-Link':'61fa60a2c3fbaf62ebe32fb0',
+                    'Original':'61fa60a2c3fbaf62ebe32fb1',
+                    'Multilaser':'61fa60a2c3fbaf62ebe32fb2'
+                }
+            }, 
+            'SDCard': {
+                'id': '61fa60a2c3fbaf62ebe32fb7',
+                'type': 'option',
+                'options':{ 
+                    'Ultra':'61fa60a2c3fbaf62ebe32fb8',
+                    'Extreme':'61fa60a2c3fbaf62ebe32fb9',
+                    'Multilaser':'61fa60a2c3fbaf62ebe32fba',
+                    'Multilaser Rx':'61fa60a2c3fbaf62ebe32fbb',
+                    'USB (Multilaser)':'61fa60a2c3fbaf62ebe32fbc',
+                    'USB (Sandisk)':'61fa60a2c3fbaf62ebe32fbc',
+                    'USB (Kingston)':'61fa60a2c3fbaf62ebe32fbc'
+
+                }
+            },   
+            'Operadora': {
+                'id': '61fa60a2c3fbaf62ebe32f55',
+                'type': 'option'
+            },   
+            'Linha': {
+                'id': '61fa60a2c3fbaf62ebe32fad',
+                'type': 'text'
+            },
+            'Power Suppy': {
+                'id': '61fa60a2c3fbaf62ebe32fc3',
+                'type': 'option',
+                'options': {
+                    'LM2596S - 5.3v':'61fa60a2c3fbaf62ebe32fc4',
+                    'Outra - 5.3v':'61fa60a2c3fbaf62ebe32fc5',
+                    'Resistor - 5.3v':'61fa60a2c3fbaf62ebe32fc6'
+                }
+            } 
+        }
+    },
+    
+    'BOARD_MOTORISTAS': {
+        'board_id' :  '4Ekvj0gw',
+        'board_lists' : {
+            'Motoristas': '6202c7c846ef712cfa6d158c',
+            'Revisão': '62fbf19c5098d82dd87f78ee',
+            'Faltas' : '6202c7c846ef712cfa6d158d',
+            'Issues' : '6202c7c846ef712cfa6d158e',
+            'Agendados' : '6202c7c846ef712cfa6d158f',
+            'Resolvidos' : '6202c7c846ef712cfa6d1590',
+            'Inativos' : '6202c7c846ef712cfa6d1591'
+        },
+        
+        'board_labels':{
+            'Tela preta':'6202c7ca46ef712cfa6d1eff',
+            'Ponto Verde':'6202c7ca46ef712cfa6d1eff',
+            'Barulho no rack':'6202c7ca46ef712cfa6d1e99',
+            'Instalação':'6202c7ca46ef712cfa6d1eea',
+            'Retirada':'6202c7ca46ef712cfa6d1ed5',
+            'Modem não conecta':'6202c7ca46ef712cfa6d1ec0',
+            'Rack solto':'6202c7ca46ef712cfa6d1f0b',
+            'Ação Publicitária':'6202c7ca46ef712cfa6d1ec6',
+            'Erro de hardware KMT':'6202c7ca46ef712cfa6d1ed8',
+            'Vistoria GNV':'6202c7ca46ef712cfa6d1f05',
+            'Aquecimento':'6202c7ca46ef712cfa6d1ede',
+            'Tela embaralhada':'6202c7ca46ef712cfa6d1f02',
+            'Sem energia':'6202c7ca46ef712cfa6d1ef0',
+            'Tela solta':'6202c7ca46ef712cfa6d1f08',
+            'Continuidade':'6202c7ca46ef712cfa6d1ef3',
+            'Troca de Veículo':'6202c7ca46ef712cfa6d1eed',
+            'Buzzer não desliga':'6202c7ca46ef712cfa6d1ecf',
+            'Disjuntor danificado':'6202c7ca46ef712cfa6d1eb4',
+            'Tela congelada':'6202c7ca46ef712cfa6d1eb7',
+            'Erro de hardware GPS':'6202c7ca46ef712cfa6d1ef9',
+            'Painel de LED preto':'6202c7ca46ef712cfa6d1eba',
+            'Entrando água':'6202c7ca46ef712cfa6d1ef6',
+            'Sensor de Luminosidade':'6202c7ca46ef712cfa6d1ee4',
+            'Barulho no Buzzer':'6202c7ca46ef712cfa6d1ebd',
+            'Conversão':'6202c7ca46ef712cfa6d1ec9',
+            'Tela branca':'6202c7ca46ef712cfa6d1eae',
+            'Fio descolando':'6202c7ca46ef712cfa6d1ed2',
+            'Kernel Panic':'6202c7ca46ef712cfa6d1efc',
+            'Erro de RTC':'6202c7ca46ef712cfa6d1ea2',
+            'Garra Frouxa':'6202c7ca46ef712cfa6d1e9c',
+            'Garra Solta':'6202c7ca46ef712cfa6d1e9c',
+            'Shutdown Forçado':'6202c7ca46ef712cfa6d1ea8',
+            'Fio com mau contato':'6202c7ca46ef712cfa6d1eb1',
+            'Aplicativo':'6202c7ca46ef712cfa6d1ee7',
+            'Avisar ao Fred':'6202c7ca46ef712cfa6d1edb',
+            'Rack quebrado':'6202c7ca46ef712cfa6d1e9f',
+            'Anúncios':'6202c7ca46ef712cfa6d1ee1',
+            'Painel de LED danificado':'6202c7ca46ef712cfa6d1ecc',
+            'Garra Enferrujada':'6202c7ca46ef712cfa6d1ec3',
+            'Parafuso solto':'6202c7ca46ef712cfa6d1ea5',
+            'Manutenção':'6202c7ca46ef712cfa6d1eab',
+            'Revisão online':'62fe37ec1e90a35b97117018'
+        },
+        
+        'customField': { 
+            'Buzzer': {
+                'id': '6202c80246ef712cfa6dedf6',
+                'type': 'text'
+            },
+            'Veículo': {
+                'id': '6202c80246ef712cfa6dedfa',
+                'type': 'option',
+                'options': {
+                    'Chevrolet Cobalt':'6202c80246ef712cfa6dedfb',
+                    'Chevrolet Corsa Classic':'6202c80246ef712cfa6dedfc',
+                    'Chevrolet Cruze':'6202c80246ef712cfa6dedfd',
+                    'Chevrolet Onix':'6202c80246ef712cfa6dedfe',
+                    'Chevrolet Onix +':'6202c80246ef712cfa6dedff',
+                    'Chevrolet Prisma':'6202c80246ef712cfa6dee00',
+                    'Fiat Argo':'6202c80246ef712cfa6dee01',
+                    'Fiat Cronos':'6202c80246ef712cfa6dee02',
+                    'Fiat Grand Siena':'6202c80246ef712cfa6dee03',
+                    'Fiat Linea':'6202c80246ef712cfa6dee04',
+                    'Fiat Uno':'6202c80246ef712cfa6dee05',
+                    'Ford Fiesta':'6202c80246ef712cfa6dee06',
+                    'Ford Ka':'6202c80246ef712cfa6dee07',
+                    'Ford Ka +':'6202c80246ef712cfa6dee08',
+                    'Honda City':'6202c80246ef712cfa6dee09',
+                    'Honda Civic':'6202c80246ef712cfa6dee0a',
+                    'Hyundai HB20':'6202c80246ef712cfa6dee0b',
+                    'Hyundai HB20S':'6202c80246ef712cfa6dee0c',
+                    'Kia Cerato':'6202c80246ef712cfa6dee0d',
+                    'Nissan Sentra':'6202c80246ef712cfa6dee0e',
+                    'Nissan Versa':'6202c80246ef712cfa6dee0f',
+                    'Renault Fluence':'6202c80246ef712cfa6dee10',
+                    'Renault Logan':'6202c80246ef712cfa6dee11',
+                    'Toyota Corolla':'6202c80246ef712cfa6dee12',
+                    'Toyota Etios':'6202c80246ef712cfa6dee13',
+                    'Toyota Yaris':'6202c80246ef712cfa6dee14',
+                    'Volkswagen Gol':'6202c80246ef712cfa6dee15',
+                    'Volkswagen Up':'6202c80246ef712cfa6dee16',
+                    'Volkswagen Virtus':'6202c80246ef712cfa6dee17',
+                    'Volkswagen Voyage':'6202c80246ef712cfa6dee18'
+                }
+            },
+            'Placa': {
+                'id': '6202c80246ef712cfa6dee56',
+                'type': 'text'
+            },
+            'Revisão': {
+                'id': '6202c80246ef712cfa6dee52',
+                'type': 'checkbox'
+            },
+            'Buzzer trocado': {
+                'id': '6202c80246ef712cfa6dee38',
+                'type': 'checkbox'
+            },
+            '# do novo Buzzer': {
+                'id': '6202c80246ef712cfa6dee54',
+                'type': 'text'
+            },
+            'Início da Issue': {
+                'id': '6202c80246ef712cfa6dee58',
+                'type': 'date'
+            },
+            'Início': {
+                'id': '6202c80246ef712cfa6dee3c',
+                'type': 'date'
+            },
+            'Término': {
+                'id': '6202c80246ef712cfa6dee3a',
+                'type': 'date'
+            },
+            'Horário': {
+                'id': '6202c80246ef712cfa6dee3e',
+                'type': 'option',
+                'options': {
+                    '08:00': '6202c80246ef712cfa6dee3f',
+                    '09:00': '6202c80246ef712cfa6dee40',
+                    '10:00': '6202c80246ef712cfa6dee41',
+                    '11:00': '6202c80246ef712cfa6dee42',
+                    '12:00': '6202c80246ef712cfa6dee43',
+                    '13:00': '6202c80246ef712cfa6dee44',
+                    '14:00': '6202c80246ef712cfa6dee45',
+                    '15:00': '6202c80246ef712cfa6dee46',
+                    '16:00': '6202c80246ef712cfa6dee47'
+                }
+            },
+            'Solução': {
+                'id': '6202c80246ef712cfa6dedf8',
+                'type': 'text'
+            },
+            'Agend. canc.': {
+                'id': '6202c80246ef712cfa6dee5a',
+                'type': 'checkbox'
+            },
+            'Motivo da retirada': {
+                'id': '6202c80246ef712cfa6dee5c',
+                'type': 'option',
+                'options':{
+                    'Comportamental':'6202c80246ef712cfa6dee5d',
+                    'Modelo de Remuneração':'6202c80246ef712cfa6dee5e',
+                    'Motivos pessoais':'6202c80246ef712cfa6dee5f',
+                    'Mudança de atividade':'6202c80246ef712cfa6dee60',
+                    'Novo veículo incompatível':'6202c80246ef712cfa6dee61',
+                    'Problemas técnicos':'6202c80246ef712cfa6dee62',
+                    'Rotina incompatível':'6202c80246ef712cfa6dee63',
+                    'Veículo roubado':'6202c80246ef712cfa6dee64',
+                    'Veículo vendido':'6202c80246ef712cfa6dee65'
+                }
+            },
+            'Ticket Jira': {
+                'id': '6202c80246ef712cfa6dee70',
+                'type': 'text'
+            },
+            'Ação Publicitária': {
+                'id': '6202c80246ef712cfa6dee72',
+                'type': 'option',
+                'options': {
+                    'FlashMob':'6202c80246ef712cfa6dee73',
+                    'HoloAd':'649dc0f68fa281ad12eefa65',
+                }
+            },
+            'Fato observado': {
+                'id': '6202c80246ef712cfa6dee76',
+                'type': 'option',
+                'options':{
+                    'Insatisfação explanada':'6202c80246ef712cfa6dee77',
+                    'Insatisfação pontuada':'6202c80246ef712cfa6dee78',
+                    'Postura inadequada':'6202c80246ef712cfa6dee79',
+                    'Buzzer sujo':'6202c80246ef712cfa6dee7a',
+                    'Veículo com avarias':'6202c80246ef712cfa6dee7b',
+                    'Veículo sujo':'6202c80246ef712cfa6dee7c'
+                }
+            }
+        }
+    },
+    
+    'BOARD_MANUTENCAO': {
+        'board_id' :  'c9BYyyii',
+        'board_lists' : {
+            'Aguardando': '61fa60c0fb24e167199d7d80',
+            'Em manutenção' : '61fa60c0fb24e167199d7d81',
+            'Monitoramento interno' : '61fa60c0fb24e167199d7d82',
+            'Monitoramento externo' : '61fa60c0fb24e167199d7d83',
+            'Liberado' : '61fa60c0fb24e167199d7d84'
+        },
+        
+        'board_labels':{
+            'Tela preta': '61fa60c1fb24e167199d8aa1',
+            'Ponto Verde': '61fa60c1fb24e167199d8aa1',
+            'Modem': '61fa60c1fb24e167199d8a95',
+            'Conversão': '61fa60c1fb24e167199d8a98',
+            'Erro de hardware KMT': '61fa60c1fb24e167199d8aae',
+            'Troca de chip': '61fa60c1fb24e167199d8a7d',
+            'Continuidade': '61fa60c1fb24e167199d8ab4',
+            'Tela embaralhada': '61fa60c1fb24e167199d8aa4',
+            'Aquecimento': '61fa60c1fb24e167199d8ab7',
+            'Não Liga': '61fa60c1fb24e167199d8a8c',
+            'Buzzer não desliga': '61fa60c1fb24e167199d8a6e',
+            'Erro de hardware GPS': '61fa60c1fb24e167199d8ab1',
+            'Tela solta': '61fa60c1fb24e167199d8a9e',
+            'Não Desliga': '61fa60c1fb24e167199d8a8f',
+            'Tela branca': '61fa60c1fb24e167199d8a80',
+            'Sensor de Luminosidade': '61fa60c1fb24e167199d8aba',
+            'Tela Manchada': '61fa60c1fb24e167199d8a92',
+            'USB BOOT': '61fa60c1fb24e167199d8a71',
+            'RTC': '61fa60c1fb24e167199d8a89',
+            'USB': '61fa60c1fb24e167199d8a74',
+            'Painel de LED danificado': '61fa60c1fb24e167199d8aa7',
+            'Painel de led preto': '61fa60c1fb24e167199d8a86',
+            'Tela piscando': '61fa60c1fb24e167199d8a83',
+            'Piscando': '61fa60c1fb24e167199d8a7a',
+            'Teste': '61fa60c1fb24e167199d8a77',
+            'Kernel Panic': '61fa60c1fb24e167199d8aaa',
+            'Aplicativo': '61fa60c1fb24e167199d8abd',
+            'Sem energia': '61fa60c1fb24e167199d8a9b',
+            'Não encontrado': '626fde71e0e1f75fa00bfc95'
+        },
+        
+        'customField': { 
+            'Início': {
+                'id': '61fa60cdfb24e167199db662',
+                'type': 'date'
+            },
+            'Término': {
+                'id': '61fa60cdfb24e167199db664',
+                'type': 'date'
+            },
+            'Versão': {
+                'id': '61fa60cdfb24e167199db65c',
+                'type': 'option',
+                'options':{
+                    'v1.6':'61fa60cdfb24e167199db65d',
+                    'v2.1':'61fa60cdfb24e167199db65e'
+                }
+            },
+            'Solução': {
+                'id': '61fa60cdfb24e167199db60c',
+                'type': 'option',
+                'options':{
+                    "Cabo de força da placa de led fixado" :"61fa60cdfb24e167199db60d",
+                    "Conversão" :"61fa60cdfb24e167199db60e",
+                    "Reconfiguração da placa HDMI" :"61fa60cdfb24e167199db60f",
+                    "Tela fixada - SB" :"61fa60cdfb24e167199db610",
+                    "Tela fixada - TR" :"61fa60cdfb24e167199db611",
+                    "Troca de cabo Flat" :"61fa60cdfb24e167199db612",
+                    "Troca de cabo HDMI" :"61fa60cdfb24e167199db613",
+                    "Troca de cabo Jumper" :"61fa60cdfb24e167199db614",
+                    "Troca de cabo USB-C" :"61fa60cdfb24e167199db615",
+                    "Troca de cabo USB-V3" :"61fa60cdfb24e167199db616",
+                    "Troca de conector do cabo de força" :"61fa60cdfb24e167199db617",
+                    "Troca de fonte Binazk" :"61fa60cdfb24e167199db618",
+                    "Troca de fonte Lavalee" :"61fa60cdfb24e167199db619",
+                    "Troca de fonte Step-Down" :"61fa60cdfb24e167199db61a",
+                    "Troca de fonte Step-Down da placa HDMI" :"61fa60cdfb24e167199db61b",
+                    "Troca de GPIO" :"61fa60cdfb24e167199db61c",
+                    "Troca de GPS" :"61fa60cdfb24e167199db61d",
+                    "Troca de Hub" :"61fa60cdfb24e167199db61e",
+                    "Troca de Modem" :"61fa60cdfb24e167199db61f",
+                    "Troca de placa de LED" :"61fa60cdfb24e167199db620",
+                    "Troca de placa HPWA" :"61fa60cdfb24e167199db621",
+                    "Troca de placa HDMI" :"61fa60cdfb24e167199db622",
+                    "Troca de porta USB" :"61fa60cdfb24e167199db623",
+                    "Troca de Power Delay" :"61fa60cdfb24e167199db624",
+                    "Troca de Power Manager" :"61fa60cdfb24e167199db625",
+                    "Troca de Push Button" :"61fa60cdfb24e167199db626",
+                    "Troca de Raspberry" :"61fa60cdfb24e167199db627",
+                    "Troca de SDCard" :"61fa60cdfb24e167199db628",
+                    "Troca de Sensor de Luminosidade" :"61fa60cdfb24e167199db629",
+                    "Troca de Ventoinha" :"61fa60cdfb24e167199db62a",
+                    "Chip trocado" :"61fa60cdfb24e167199db62b",
+                    "Modem não trocado" :"61fa60cdfb24e167199db62c",
+                    "Reconfiguração vidal" :"61fa60cdfb24e167199db62d",
+                    "Teste" :"61fa60cdfb24e167199db62e",
+                    "Troca de porta HDMI do Rasp" :"61fa60cdfb24e167199db62f",
+                    "Regulagem da fonte Step-Down" :"61fa60cdfb24e167199db630",
+                    "USB modem" :"61fa60cdfb24e167199db631",
+                    "USB pen-drive" :"61fa60cdfb24e167199db632",
+                    "USB Pen, Modm e HWPA" :"61fa60cdfb24e167199db633"
+                }
+            }
+        }
+    }
+}
+CHATBOT_AUTHTK = '36323162393436373830383239373465353564656634303966383632636661616637306666653266323163313839306666313333313661323463306435633265'

+ 17 - 3
mobeesia/wsgi.py

@@ -1,5 +1,5 @@
 """
-WSGI config for mobeesia project.
+WSGI config for dsp project.
 
 It exposes the WSGI callable as a module-level variable named ``application``.
 
@@ -7,10 +7,24 @@ For more information on this file, see
 https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/
 """
 
-import os
+import os,sys
 
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mobeesia.settings')
+####os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dsp.settings')
 
+#os.environ["DJANGO_SETTINGS_MODULE"] = 'mobeesia.settings'
+
+#application = get_wsgi_application()
+
+# Calculate the path based on the location of the WSGI script.
+apache_configuration= os.path.dirname(__file__)
+project = os.path.dirname(apache_configuration)
+workspace = os.path.dirname(project)
+sys.path.append(workspace)
+sys.path.append(project)
+
+# Add the path to 3rd party django application and to django itself.
+sys.path.append('/home/ec2-user')
+os.environ["DJANGO_SETTINGS_MODULE"] = 'mobeesia.settings'
 application = get_wsgi_application()