CREATE OR REPLACE VIEW V_INTEGRACAO_CLIENTES AS 
with REFERENCIAS as(
    SELECT 
        CODCLI,
        json_arrayagg(
        JSON_OBJECT(
            'preferencial' VALUE NULL,
            'nome' VALUE PCCLIREF.CONTATOREFER,
            'cargo' VALUE NULL,
            'telefone' VALUE PCCLIREF.TELREFER,
            'celular' VALUE PCCLIREF.TELREFER,
            'email' VALUE NULL,
            'excluir' VALUE NULL,
            'ativo' VALUE NULL
            )
    ) AS DADOS
    FROM PCCLIREF 
    group by codcli
)
SELECT 
tipofj AS TIPO,
FANTASIA AS NOMEORIGEM,
REGEXP_REPLACE(CGCENT, '[^0-9]', '') AS DOCUMENTO,
PCUSUARI.tipovend AS tipoRelacionamento,
NULL AS TOKEN,
JSON_OBJECT(
    'codigoSistemaGestao' VALUE PCCLIENT.CODCLI,
    'nome' VALUE PCCLIENT.CLIENTE,
    'razaoSocial' VALUE DECODE(PCCLIENT.tipofj,'J',PCCLIENT.CLIENTE,NULL),
    'rg' VALUE DECODE(PCCLIENT.tipofj,'F',PCCLIENT.CGCENT,NULL),
    'inscricaoEstadual' value DECODE(PCUSUARI.tipovend,'J',PCCLIENT.ieEnt,NULL),
    'dataNascimento' value DECODE(PCUSUARI.tipovend,'J',PCCLIENT.DTCADASTRO,PCCLIENT.DTNASC),
    'cedente' value DECODE(PCUSUARI.tipovend,'C','S','N'),
    'pais' value DECODE(PCUSUARI.tipovend,'E',PCPAIS.DESCRICAO,NULL),
    'complemento' value DECODE(PCUSUARI.tipovend,'E',PCCLIENT.COMPLEMENTOENT,NULL),
    'dataClienteDesde' value DECODE(PCUSUARI.tipovend,'C',PCCLIENT.DTCADASTRO,NULL),
    'contribuinteIcms' value PCCLIENT.CONTRIBUINTE,
    'dataClienteDesde' value NULL,
    'codigoColigado' value NULL,
    'nomeColigado' value NULL
) as pessoa,
JSON_OBJECT(
    'cidade' value PCCLIENT.MUNICENT,
    'uf' value DECODE(PCUSUARI.tipovend,'E','EX',PCCLIENT.ESTENT),
    'rua' value PCCLIENT.ENDERENT,
    'bairro' value PCCLIENT.BAIRROENT,
    'cep' value PCCLIENT.CEPENT,
    'numero' value  PCCLIENT.NUMEROENT,
    'complemento' value PCCLIENT.COMPLEMENTOENT,
    'tipoEndereco' value 5,
    'confirmado' value null,
    'apelido' value null
    ) AS endereco,
REFERENCIAS.DADOS AS contatos,
JSON_ARRAY(JSON_OBJECT(
    'complemento' VALUE null,
    'dataCadastro' VALUE null,
    'login' VALUE null,
    'excluir' VALUE null
)) AS informacoesComplementares,
  JSON_ARRAY(
    JSON_OBJECT(
        'codigo' VALUE NULL,
        'desassociar' VALUE NULL,
        'dataDesbloqueio' VALUE NULL
    )
) AS bloqueios,
 JSON_OBJECT(
    'codigoSistemaGestao' VALUE NULL,
    'desassociar' VALUE NULL
) AS grupoEconomico,
 JSON_OBJECT(
    'tipo' VALUE NULL,
    'documento' VALUE NULL,
    'desassociar' VALUE NULL
) AS representante,
JSON_ARRAY(
    JSON_OBJECT(
        'dataOperacao' VALUE NULL,
        'valorFaturamento' VALUE NULL
    )
) AS faturamentoDeclarados,
JSON_OBJECT(
    'valorElegivel' VALUE NULL,
    'prazo' VALUE NULL,
    'endividamento' VALUE NULL,
    'share' VALUE NULL
) AS indiceFaturamentoResumido,
JSON_OBJECT(
    'periodo' VALUE NULL,
    'valor' VALUE NULL,
    'liquidez' VALUE NULL,
    'recompra' VALUE NULL
) AS contasReceberAnaliticoInformacoesConsolidadas,
JSON_OBJECT(
    'valoresAVencer' VALUE NULL,
    'valorVencido' VALUE NULL
) AS contasReceberAnaliticoValoresEmAberto,
JSON_ARRAY(
    JSON_OBJECT(
        'uf' VALUE NULL,
        'numeroRegistro' VALUE NULL,
        'tipoRegistroProfissional' VALUE NULL,
        'ativo' VALUE NULL,
        'codigoAreaAtuacao' VALUE NULL
    )
) AS dadosProfissionais,
JSON_ARRAY(
    JSON_OBJECT(
        'pergunta' VALUE NULL,
        'resposta' VALUE NULL,
        'dataValidade' VALUE NULL
    )
) AS respostasquestionarios
FROM PCCLIENT
JOIN PCUSUARI ON PCUSUARI.CODUSUR = PCCLIENT.CODUSUR1
JOIN PCPAIS ON PCPAIS.CODPAIS = PCCLIENT.CODPAIS
LEFT JOIN REFERENCIAS ON REFERENCIAS.CODCLI = PCCLIENT.CODCLI;