DELIMITER $$

CREATE PROCEDURE inserir_empresa_retorno(
    IN p_id_type_empresa INT,
    IN p_nome VARCHAR(150),
    IN p_razao_social VARCHAR(200),
    IN p_nif_cnpj VARCHAR(20),
    IN p_email_contato VARCHAR(150),
    IN p_telefone VARCHAR(20),
    IN p_website VARCHAR(150),
    IN p_endereco_rua VARCHAR(150),
    IN p_endereco_numero VARCHAR(10),
    IN p_endereco_complemento VARCHAR(50),
    IN p_endereco_bairro VARCHAR(100),
    IN p_endereco_cidade VARCHAR(100),
    IN p_endereco_estado VARCHAR(50),
    IN p_endereco_cep VARCHAR(20),
    IN p_endereco_pais VARCHAR(50),
    IN p_active TINYINT,
    OUT p_id_empresa INT
)
BEGIN
    INSERT INTO empresas (
        id_type_empresa,
        nome,
        razao_social,
        nif_cnpj,
        email_contato,
        telefone,
        website,
        endereco_rua,
        endereco_numero,
        endereco_complemento,
        endereco_bairro,
        endereco_cidade,
        endereco_estado,
        endereco_cep,
        endereco_pais,
        active
    ) VALUES (
        p_id_type_empresa,
        p_nome,
        p_razao_social,
        p_nif_cnpj,
        p_email_contato,
        p_telefone,
        p_website,
        p_endereco_rua,
        p_endereco_numero,
        p_endereco_complemento,
        p_endereco_bairro,
        p_endereco_cidade,
        p_endereco_estado,
        p_endereco_cep,
        p_endereco_pais,
        p_active
    );

    -- Retorna o id gerado
    SET p_id_empresa = LAST_INSERT_ID();
END$$

DELIMITER ;