File size: 11,165 Bytes
e71f686
8dde0ad
 
1b8609b
9d9c434
8dde0ad
 
c60ba05
690a3aa
8dde0ad
 
 
 
 
 
 
 
 
 
 
690a3aa
 
 
 
 
 
 
 
8dde0ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9ac8087
690a3aa
 
c60ba05
690a3aa
 
 
 
 
c60ba05
8dde0ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68bffe6
9ac8087
 
 
8dde0ad
 
9ac8087
 
 
 
c60ba05
8dde0ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c60ba05
8dde0ad
 
 
 
 
 
9ac8087
1b8609b
 
82ae898
8dde0ad
1b8609b
 
 
 
8dde0ad
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
221
222
223
224
225
226
227
228
229
230
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
	COALESCE(
	    array_to_string(
	        ARRAY(
	            SELECT CONCAT(
	                COALESCE(mineralization->>'quantity', 'ND'), ' de ', 
	                COALESCE(mineralization->>'type', 'ND'), ': ',
	                array_to_string(
	                    ARRAY(
	                        SELECT CONCAT(
	                            mineral->>'name', 
	                            ' (', COALESCE(mineral->>'concentration', 'ND'), ')'
	                        )
	                        FROM jsonb_array_elements(CASE 
	                            WHEN jsonb_typeof(mineralization->'minerals') = 'array' 
	                            THEN mineralization->'minerals' 
	                            ELSE '[]'::jsonb 
	                        END) AS mineral
	                    ), ', '
	                )
	            )
	            FROM jsonb_array_elements(CASE 
	                WHEN jsonb_typeof(data->'responseData'->0->'response'->'mineralizations') = 'array' 
	                THEN data->'responseData'->0->'response'->'mineralizations' 
	                ELSE '[]'::jsonb 
	            END) AS mineralization
	        ), '; '
	    ), 'Não especificado'
	) 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'->2->'response'->>'mineralizationSignatures', '[]'), 'Não especificado') AS "Assinaturas de mineralização 2",

	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
	COALESCE(
	    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
	                ), '; '
	            )
	        ELSE 'Não identificado'
	    END,
	    'Não identificado'
	) AS "Rochas sedimentares",
	
	-- Rochas metamórficas
	COALESCE(
	    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
	                ), '; '
	            )
	        ELSE 'Não identificado'
	    END,
	    'Não identificado'
	) AS "Rochas metamórficas",
	
	-- Rochas ígneas intrusivas
	COALESCE(
	    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
	                ), '; '
	            )
	        ELSE 'Não identificado'
	    END,
	    'Não identificado'
	) AS "Rochas ígneas intrusivas",
	
	-- Rochas ígneas extrusivas
	COALESCE(
	    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
	                ), '; '
	            )
	        ELSE 'Não identificado'
	    END,
	    'Não identificado'
	) AS "Rochas ígneas extrusivas",
	
	-- Rochas ígneas subvulcânicas
	COALESCE(
	    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
	                ), '; '
	            )
	        ELSE 'Não identificado'
	    END,
	    '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",

	-- 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'->4->'response'->>'mineralization_signatures', '[]'), 'Não especificado') AS "Assinaturas de mineralização",

	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

GROUP BY
	e."createdAt",
	e.id,
	e.name,
	data->'responseData'->0->'response'->'mineralizations'->'type';