File size: 8,668 Bytes
e71f686
c4472d8
338ddf8
1b8609b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f40e172
9d9c434
1b8609b
d23ce76
9ac8087
737215e
1b8609b
 
 
 
 
 
c60ba05
9ac8087
 
 
1b8609b
 
9ac8087
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c60ba05
9ac8087
 
 
 
 
c60ba05
9ac8087
 
 
 
 
68bffe6
9ac8087
 
 
 
 
 
 
 
c60ba05
9ac8087
c60ba05
9ac8087
 
 
68bffe6
9ac8087
af2d8fd
e53b6c4
af2d8fd
97919c3
af2d8fd
7d5fb41
 
 
 
 
 
9ac8087
1b8609b
 
 
9ac8087
1b8609b
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
SELECT
	id,
    id AS "Id da entrada no banco",
	"createdAt" AS "Data Criação",
    e.name AS "Nome do documento",
	-- alvo
    COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(mineralization->'region'->>'target_or_deposit', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Alvo ou depósito", -- OK
	-- ore
    array_to_string(ARRAY_AGG(DISTINCT(mineralization->>'ore')), ', ') AS "Tipo de mineralização",
    -- cidade
	COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->'region'->>'city', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Cidades",
	-- estado
	COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->'region'->>'state', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Estado",
	-- país
	COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->'region'->>'country', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "País",
	-- região
	COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->'region'->>'region_name', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Região",
	-- quantidade mineralizacão
	COALESCE(NULLIF(array_to_string(ARRAY_AGG(DISTINCT NULLIF(NULLIF(t.mineralization->>'quantity', 'Não especificado'), '')), ', '), ''), 'Não especificado') AS "Quantidade de minério",

	COALESCE(NULLIF(array_to_string(ARRAY(
        SELECT jsonb_extract_path_text(concentration, 'name_of_ore') || ' - (' || jsonb_extract_path_text(concentration, 'concentration_of_ore') || ')'
        FROM jsonb_array_elements(mineralization->'concentration') AS concentration
    ), ', '), ''), 'Não especificado') AS "Concentração do minério",
 
	-- extra_info
	COALESCE(NULLIF(array_to_string(ARRAY_AGG(NULLIF(NULLIF(t.mineralization->'region'->>'extra_info', 'Não especificado'), '')), ' | '), ''), 'Não especificado') AS "Informações adicionais",
    
	---------
	COALESCE(NULLIF(data->'responseData'->2->'response'->>'mineralizationSignatures', ''), 'Não identificado') AS "Assinaturas de mineralização", -- OK

    COALESCE(NULLIF(mineralization->'geological_context'->>'tectonic_context', ''), 'Não especificado') AS "Contexto tectônico", -- OK
    COALESCE(NULLIF(mineralization->'geological_context'->>'geological_context_description', ''), 'Não especificado') AS "Contexto geológico", -- OK
    COALESCE(NULLIF(mineralization->'geological_context'->>'context_of_present_rocks', ''), 'Não especificado') AS "Rochas presentes", -- OK
	----------
	
    -- Rochas sedimentares
    COALESCE(NULLIF(array_to_string(ARRAY(
        SELECT jsonb_extract_path_text(sedimentares, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(sedimentares, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(sedimentares, 'contact_relations') || ')'
        FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'sedimentares') AS sedimentares
    ), '; '), ''), 'Não identificado') AS "Rochas sedimentares",

    -- Rochas metamórficas
    COALESCE(NULLIF(array_to_string(ARRAY(
        SELECT jsonb_extract_path_text(metamorficas, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(metamorficas, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(metamorficas, 'contact_relations') || ')'
        FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'metamórficas') AS metamorficas
    ), '; '), ''), 'Não identificado') AS "Rochas metamórficas",

    -- Rochas ígneas intrusivas
    COALESCE(NULLIF(array_to_string(ARRAY(
        SELECT jsonb_extract_path_text(igneas_i, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(igneas_i, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(igneas_i, 'contact_relations') || ')'
        FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_intrusivas') AS igneas_i
    ), '; '), ''), 'Não identificado') AS "Rochas ígneas intrusivas",

    -- Rochas ígneas extrusivas
    COALESCE(NULLIF(array_to_string(ARRAY(
        SELECT jsonb_extract_path_text(igneas_e, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(igneas_e, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(igneas_e, 'contact_relations') || ')'
        FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_extrusivas') AS igneas_e
    ), '; '), ''), 'Não identificado') AS "Rochas ígneas extrusivas",

    -- Rochas ígneas subvulcânicas
    COALESCE(NULLIF(array_to_string(ARRAY(
        SELECT jsonb_extract_path_text(sv, 'name') || ' (' || 'Tipo: ' || jsonb_extract_path_text(sv, 'type') || ', Relações de contato: ' || jsonb_extract_path_text(sv, 'contact_relations') || ')'
        FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_subvulcânicas') AS sv
    ), '; '), ''), 'Não identificado') AS "Rochas ígneas subvulcânicas",

    -- Rochas hospedeiras
    COALESCE(NULLIF(data->'responseData'->2->'response'->'host_rocks'->>'name', '[null]'), 'Não identificado') AS "Nomes de rochas hospedeiras",
    COALESCE(NULLIF(data->'responseData'->2->'response'->'host_rocks'->>'geologicalEnvironments', '[null]'), 'Não identificado') AS "Ambiente geológico", 
    COALESCE(NULLIF(array_to_string(ARRAY(SELECT jsonb_array_elements_text(data->'responseData'->2->'response'->'mineralFabric')), ', '), ''), 'Não identificado') AS "Textura de mineralização",
    COALESCE(NULLIF(array_to_string(ARRAY(
        SELECT jsonb_extract_path_text(associatedMinerals, 'name') || ' (' || 'Cor: ' || jsonb_extract_path_text(associatedMinerals, 'color') || ', Textura: ' || jsonb_extract_path_text(associatedMinerals, 'textures') || ', Nível de Alteração: ' || jsonb_extract_path_text(associatedMinerals, 'alterationLevel') || ')'
        FROM jsonb_array_elements(data->'responseData'->2->'response'->'associatedMinerals') AS associatedMinerals
    ), ', '), ''), 'Não identificado') AS "Minerais associados",

    COALESCE(NULLIF(data->'responseData'->2->'response'->>'fluidInclusionsAnalysis', '[]'), 'Não especificado') AS "Análise de inclusões fluidas",

    -- Alterações hidrotermais
    COALESCE(NULLIF(array_to_string(ARRAY(SELECT jsonb_array_elements_text(data->'responseData'->2->'response'->'hydrotermal_alterations'->'alterationTypes')), ', '), ''), 'Não identificado') AS "Tipos de alterações hidrotermais",
    COALESCE(NULLIF(array_to_string(ARRAY(SELECT jsonb_array_elements_text(data->'responseData'->2->'response'->'hydrotermal_alterations'->'associatedMinerals')), ', '), ''), 'Não identificado') AS "Minerais associados a alterações hidrotermais",
  
    COALESCE(NULLIF(data->'responseData'->3->'response'->>'structural_mapping', '[]'), 'Não especificado') AS "Geologia estrutural da região",
    COALESCE(NULLIF(data->'responseData'->4->'response'->>'structureMineralizationRelation', '[]'), 'Não especificado') AS "Relação estrutura-mineralização",
    COALESCE(NULLIF(data->'responseData'->5->'response'->>'stableIsotopes', '[]'), 'Não especificado') AS "Isótopos Estáveis e Radiogênicos",
    COALESCE(NULLIF(data->'responseData'->5->'response'->>'traceElementsAndRareEarths', '[]'), 'Não especificado') AS "Elementos traço e terras raras",
    COALESCE(NULLIF(data->'responseData'->6->'response'->>'mineralizationSignatures', '[]'), 'Não especificado') AS "Assinatura geofísica",
    COALESCE(NULLIF(data->'responseData'->7->'response'->>'additionalInformation', '[]'), 'Não especificado') AS "Informações adicionais de mineralização",
    COALESCE(NULLIF(data->'responseData'->8->'response'->>'potential', '[]'), 'Não especificado') AS "Potencial de descoberta",
    COALESCE(NULLIF(data->'responseData'->9->'response'->>'strengths', '[]'), 'Não especificado') AS "Pontos fortes",
    COALESCE(NULLIF(data->'responseData'->9->'response'->>'investment_risk', '[]'), 'Não especificado') AS "Risco de investimento",
    COALESCE(NULLIF(data->'responseData'->9->'response'->>'economic_potential', '[]'), 'Não especificado') AS "Potencial econômico",
    COALESCE(NULLIF(data->'responseData'->10->'response'->>'explanation', '[]'), 'Não especificado') AS "Explicação da favorabilidade",
    COALESCE(NULLIF(data->'responseData'->10->'response'->>'favorability', '[]'), 'Não especificado') AS "Favorabilidade"
    

FROM
    public."Extraction" e
CROSS JOIN LATERAL
    jsonb_array_elements(e.data->'responseData'->0->'response'->'mineralizations') AS t(mineralization)
GROUP BY
	e."createdAt",
	e.id,
	e.name,
	mineralization;