File size: 11,225 Bytes
e71f686
8dde0ad
 
1b8609b
9d9c434
8dde0ad
 
c60ba05
690a3aa
8dde0ad
 
 
 
 
 
 
 
 
 
 
690a3aa
 
 
 
 
 
 
 
8dde0ad
5b3a43c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8dde0ad
5b3a43c
 
 
 
 
 
 
9ac8087
690a3aa
 
e4e6fc3
 
690a3aa
 
 
 
c60ba05
8dde0ad
5b3a43c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8dde0ad
5b3a43c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8dde0ad
 
5b3a43c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8dde0ad
 
5b3a43c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8dde0ad
 
5b3a43c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68bffe6
9ac8087
 
 
8dde0ad
 
9ac8087
 
 
 
c60ba05
8dde0ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c60ba05
8dde0ad
 
 
 
 
 
9ac8087
1b8609b
 
82ae898
8dde0ad
5b3a43c
 
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
SELECT
    e.id AS "Id da entrada no banco",
    e."createdAt" AS "Data Criação",
    e.name AS "Nome do documento",

    -- Alvo ou depósito
    COALESCE(data->'responseData'->0->'response'->>'target_or_deposit', 'Não especificado') AS "Alvo ou depósito",

   -- Tipo de mineralização
    COALESCE(
        array_to_string(
            ARRAY(
				SELECT CONCAT(
                    mineralization->>'type'
                )
                FROM jsonb_array_elements(data->'responseData'->0->'response'->'mineralizations') AS mineralization
            ), ', '
        ), 'Não especificado'
    ) AS "Tipo de mineralização",
	
    -- cidade
	COALESCE(data->'responseData'->0->'response'->'region'->>'city', 'Não especificado') AS "Cidades",
	-- estado
	COALESCE(data->'responseData'->0->'response'->'region'->>'state', 'Não especificado') AS "Estado",
	-- país
	COALESCE(data->'responseData'->0->'response'->'region'->>'country', 'Não especificado') AS "País",
	-- região
	COALESCE(data->'responseData'->0->'response'->'region'->>'region_name', 'Não especificado') AS "Região",
	-- Consolidar quantidade, tipo de mineralização e minerais com concentração
	-- Consolidar quantidade, tipo de mineralização e minerais com concentração
	CASE
	    WHEN jsonb_typeof(data->'responseData'->0->'response'->'mineralizations') = 'array' THEN
	        array_to_string(
	            ARRAY(
	                SELECT CONCAT(
	                    -- Mostra a quantidade e o tipo de mineralização
	                    mineralization->>'quantity', ' de ',
	                    mineralization->>'type',
	                    
	                    -- Condicional para incluir minerais apenas se existirem
	                    CASE
	                        WHEN jsonb_typeof(mineralization->'minerals') = 'array'
	                             AND jsonb_array_length(mineralization->'minerals') > 0 THEN
	                            ': ' || array_to_string(
	                                ARRAY(
	                                    SELECT CONCAT(
	                                        mineral->>'name', 
	                                        ' (', mineral->>'concentration', ')'
	                                    )
	                                    FROM jsonb_array_elements(mineralization->'minerals') AS mineral
	                                    WHERE mineral IS NOT NULL -- Ignora nulos
	                                ), ', '
	                            )
	                        ELSE '' -- Não mostra nada se não houver minerais
	                    END
	                )
	                FROM jsonb_array_elements(data->'responseData'->0->'response'->'mineralizations') AS mineralization
	                WHERE mineralization IS NOT NULL -- Ignora nulos
	            ), '; '
	        )
	    ELSE NULL -- Retorna NULL se o array não existir
	END AS "Quantidades e concentrações",


	-- extra_info
	COALESCE(data->'responseData'->0->'response'->'region'->>'extra_info', 'Não especificado') AS "Informações adicionais",
	
    COALESCE(NULLIF(data->'responseData'->4->'response'->>'mineralization_signatures', '[]'), 'Não especificado') AS "Assinaturas de mineralização", -- Foi decidido que este era melhor

	COALESCE(NULLIF(data->'responseData'->0->'response'->'geological_context'->>'tectonic_context', ''), 'Não especificado') AS "Contexto tectônico", -- OK
    COALESCE(NULLIF(data->'responseData'->0->'response'->'geological_context'->>'geological_context_description', ''), 'Não especificado') AS "Contexto geológico", -- OK
    COALESCE(NULLIF(data->'responseData'->0->'response'->'geological_context'->>'context_of_present_rocks', ''), 'Não especificado') AS "Rochas presentes", -- OK

	-- Rochas sedimentares
	CASE
	    WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'sedimentares') = 'array' THEN
	        array_to_string(
	            ARRAY(
	                SELECT CONCAT(
	                    sedimentares->>'name',
	                    ' (Tipo: ', sedimentares->>'type',
	                    ', Relações de contato: ', COALESCE(sedimentares->>'contact_relations', 'ND'), ')'
	                )
	                FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'sedimentares') AS sedimentares
	                WHERE sedimentares IS NOT NULL -- Ignora elementos nulos
	            ), '; '
	        )
	    ELSE '' -- Retorna vazio se o array não existir
	END AS "Rochas sedimentares",
	-- Rochas metamórficas
	CASE
	    WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'metamórficas') = 'array' THEN
	        array_to_string(
	            ARRAY(
	                SELECT CONCAT(
	                    metam->>'name',
	                    ' (Tipo: ', metam->>'type',
	                    ', Relações de contato: ', COALESCE(metam->>'contact_relations', 'ND'), ')'
	                )
	                FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'metamórficas') AS metam
	                WHERE metam IS NOT NULL
	            ), '; '
	        )
	    ELSE ''
	END AS "Rochas metamórficas",
	
	-- Rochas ígneas intrusivas
	CASE
	    WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_intrusivas') = 'array' THEN
	        array_to_string(
	            ARRAY(
	                SELECT CONCAT(
	                    igneas_i->>'name',
	                    ' (Tipo: ', igneas_i->>'type',
	                    ', Relações de contato: ', COALESCE(igneas_i->>'contact_relations', 'ND'), ')'
	                )
	                FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_intrusivas') AS igneas_i
	                WHERE igneas_i IS NOT NULL
	            ), '; '
	        )
	    ELSE ''
	END AS "Rochas ígneas intrusivas",
	
	-- Rochas ígneas extrusivas
	CASE
	    WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_extrusivas') = 'array' THEN
	        array_to_string(
	            ARRAY(
	                SELECT CONCAT(
	                    igneas_e->>'name',
	                    ' (Tipo: ', igneas_e->>'type',
	                    ', Relações de contato: ', COALESCE(igneas_e->>'contact_relations', 'ND'), ')'
	                )
	                FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_extrusivas') AS igneas_e
	                WHERE igneas_e IS NOT NULL
	            ), '; '
	        )
	    ELSE ''
	END AS "Rochas ígneas extrusivas",
	
	-- Rochas ígneas subvulcânicas
	CASE
	    WHEN jsonb_typeof(data->'responseData'->1->'response'->'rockTypes'->'ígneas_subvulcânicas') = 'array' THEN
	        array_to_string(
	            ARRAY(
	                SELECT CONCAT(
	                    igneas_sv->>'name',
	                    ' (Tipo: ', igneas_sv->>'type',
	                    ', Relações de contato: ', COALESCE(igneas_sv->>'contact_relations', 'ND'), ')'
	                )
	                FROM jsonb_array_elements(data->'responseData'->1->'response'->'rockTypes'->'ígneas_subvulcânicas') AS igneas_sv
	                WHERE igneas_sv IS NOT NULL
	            ), '; '
	        )
	    ELSE ''
	END 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",

	-- Tipos de processos alterações 
	COALESCE(
	    NULLIF(
	        array_to_string(
	            ARRAY(
	                SELECT alteration->>'alterationType'
	                FROM jsonb_array_elements(data->'responseData'->2->'response'->'alteration_processes') AS alteration
	            ), ', '
	        ), ''
	    ), 'Não identificado'
	) AS "Tipos de processos de alterações",
	
	-- Minerais associados a alterações hidrotermais
	COALESCE(
	    NULLIF(
	        array_to_string(
	            ARRAY(
	                SELECT jsonb_array_elements_text(alteration->'associatedMinerals')
	                FROM jsonb_array_elements(data->'responseData'->2->'response'->'alteration_processes') AS alteration
	            ), ', '
	        ), ''
	    ), 'Não identificado'
	) AS "Minerais associados a processos de alteração",

    COALESCE(NULLIF(data->'responseData'->2->'response'->>'chemical_pattern_analysis', '[]'), 'Não especificado') AS "Análise de padrão químico",
	

	COALESCE(NULLIF(data->'responseData'->3->'response'->>'stable_isotopes', '[]'), 'Não especificado') AS "Isótopos Estáveis e Radiogênicos",
    COALESCE(NULLIF(data->'responseData'->3->'response'->>'trace_elements_and_rare_earths', '[]'), 'Não especificado') AS "Elementos traço e terras raras",

 --    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'->4->'response'->>'geophysical_signatures', '[]'), 'Não especificado') AS "Assinaturas geofísicas",

	COALESCE(NULLIF(data->'responseData'->5->'response'->>'additional_information', '[]'), 'Não especificado') AS "Informações adicionais de mineralização",
	COALESCE(NULLIF(data->'responseData'->6->'response'->>'estimates', '[]'), 'Não especificado') AS "Estimativas de quantidade de mineralização",

    COALESCE(NULLIF(data->'responseData'->7->'response'->>'potential', '[]'), 'Não especificado') AS "Potencial de descoberta",
    COALESCE(NULLIF(data->'responseData'->8->'response'->>'strengths', '[]'), 'Não especificado') AS "Pontos fortes",
    COALESCE(NULLIF(data->'responseData'->8->'response'->>'investment_risk', '[]'), 'Não especificado') AS "Risco de investimento",
    COALESCE(NULLIF(data->'responseData'->8->'response'->>'economic_potential', '[]'), 'Não especificado') AS "Potencial econômico",
    COALESCE(NULLIF(data->'responseData'->9->'response'->>'explanation', '[]'), 'Não especificado') AS "Explicação da favorabilidade",
    COALESCE(NULLIF(data->'responseData'->9->'response'->>'favorability', '[]'), 'Não especificado') AS "Favorabilidade"
    

FROM
    "Future Mining"."Extraction" e

ORDER BY
	e."createdAt";