CREATE OR REPLACE VIEW view_all_empresas AS
SELECT 
    e.id_empresa AS id,
    e.nome AS nome_empresa,
    JSON_OBJECT(
        'morada', JSON_OBJECT(
            'rua', e.endereco_rua,
            'numero', e.endereco_numero,
            'localidade', e.endereco_complemento,
            'freguesia', e.endereco_bairro,
            'concelho', e.endereco_cidade,
            'distrito', e.endereco_estado,
            'codPost', e.endereco_cep,
            'nacionalidade', e.endereco_pais
        ),
        'identificacao', JSON_OBJECT(
            'razao', e.razao_social,
            'nif', e.nif_cnpj
        ),
        'contactos', JSON_OBJECT(
            'email', e.email_contato,
            'telefone', e.telefone,
            'website', e.website
        )
    ) AS dados_empresa,
    srv.type_empresa AS type_empresa,
    CASE WHEN e.active THEN 'true' ELSE 'false' END AS active
FROM empresas e
JOIN server_data srv ON srv.id_type_empresa = e.id_type_empresa;