@campus-labs/prisma-client 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2998 @@
1
+ import { PrismaClient } from '@prisma/client';
2
+
3
+ const prisma = new PrismaClient();
4
+
5
+ async function main() {
6
+ console.log('🌱 Starting database seeding...');
7
+
8
+ // Insert platform roles
9
+ console.log('📝 Creating platform roles....');
10
+ const adminrole = await prisma.roles_platform.create({
11
+ data: { role: 'admin' }
12
+ });
13
+
14
+ const userrole = await prisma.roles_platform.create({
15
+ data: { role: 'user' }
16
+ });
17
+
18
+ // Insert Program roles
19
+ console.log('📝 Creating program roles...');
20
+ const CREATORProgramrole = await prisma.roles_programs.create({
21
+ data: { role: 'CREATOR' }
22
+ });
23
+
24
+ const followerProgramrole = await prisma.roles_programs.create({
25
+ data: { role: 'FOLLOWER' }
26
+ });
27
+
28
+ const editorProgramrole = await prisma.roles_programs.create({
29
+ data: { role: 'EDITOR' }
30
+ });
31
+
32
+ // Insert initiative roles
33
+ console.log('📝 Creating initiative roles...');
34
+ const ORGANIZATORrole = await prisma.roles_initiatives.create({
35
+ data: { role: 'ORGANIZATOR' }
36
+ });
37
+
38
+ const VOLUNTEERrole = await prisma.roles_initiatives.create({
39
+ data: { role: 'VOLUNTEER' }
40
+ });
41
+
42
+ const PARTICIPANTinitiativerole = await prisma.roles_initiatives.create({
43
+ data: { role: 'PARTICIPANT' }
44
+ });
45
+
46
+ // Insert Areas
47
+ console.log('🎯 Creating areas...');
48
+ const areas = await Promise.all([
49
+ prisma.areas.create({
50
+ data: {
51
+ id: 1,
52
+ title: 'Ativo',
53
+ description: 'Área dedicada ao desenvolvimento tecnológico e inovação digital',
54
+ img: { url: "tech_area.jpg", alt: "Área de Tecnologia" }
55
+ }
56
+ }),
57
+ prisma.areas.create({
58
+ data: {
59
+ id: 2,
60
+ title: 'Ensino',
61
+ description: 'Projetos focados na preservação do meio ambiente e sustentabilidade',
62
+ img: { url: "env_area.jpg", alt: "Área Ambiental" }
63
+ }
64
+ }),
65
+ prisma.areas.create({
66
+ data: {
67
+ id: 3,
68
+ title: 'Cooperação',
69
+ description: 'Iniciativas educacionais e de desenvolvimento de competências',
70
+ img: { url: "edu_area.jpg", alt: "Área de Educação" }
71
+ }
72
+ }),
73
+ prisma.areas.create({
74
+ data: {
75
+ id: 4,
76
+ title: 'Investigação',
77
+ description: 'Projetos relacionados com saúde pública e bem-estar comunitário',
78
+ img: { url: "health_area.jpg", alt: "Área de Saúde" }
79
+ }
80
+ }),
81
+ prisma.areas.create({
82
+ data: {
83
+ id: 5,
84
+ title: 'Internacional',
85
+ description: 'Promoção da cultura portuguesa e expressões artísticas',
86
+ img: { url: "culture_area.jpg", alt: "Área Cultural" }
87
+ }
88
+ }),
89
+ ]);
90
+
91
+ // Insert Typologies
92
+ console.log('🎯 Creating typologies...');
93
+ const typologies = await Promise.all([
94
+ prisma.typologies.create({
95
+ data: {
96
+ id: 1,
97
+ typology: 'Workshop',
98
+ }
99
+ }),
100
+ prisma.typologies.create({
101
+ data: {
102
+ id: 2,
103
+ typology: 'Curso',
104
+ }
105
+ }),
106
+ prisma.typologies.create({
107
+ data: {
108
+ id: 3,
109
+ typology: 'Evento',
110
+ }
111
+ }),
112
+ prisma.typologies.create({
113
+ data: {
114
+ id: 4,
115
+ typology: 'Formação',
116
+ }
117
+ }),
118
+ prisma.typologies.create({
119
+ data: {
120
+ id: 5,
121
+ typology: 'Mentoria',
122
+ }
123
+ }),
124
+ prisma.typologies.create({
125
+ data: {
126
+ id: 6,
127
+ typology: 'Exposição',
128
+ }
129
+ }),
130
+ prisma.typologies.create({
131
+ data: {
132
+ id: 7,
133
+ typology: 'Feira',
134
+ }
135
+ }),
136
+ prisma.typologies.create({
137
+ data: {
138
+ id: 8,
139
+ typology: 'Competição',
140
+ }
141
+ }),
142
+ prisma.typologies.create({
143
+ data: {
144
+ id: 9,
145
+ typology: 'Talk',
146
+ }
147
+ }),
148
+ prisma.typologies.create({
149
+ data: {
150
+ id: 10,
151
+ typology: 'Conferência',
152
+ }
153
+ }),
154
+ prisma.typologies.create({
155
+ data: {
156
+ id: 11,
157
+ typology: 'Palestra',
158
+ }
159
+ }),
160
+ prisma.typologies.create({
161
+ data: {
162
+ id: 12,
163
+ typology: 'Concerto',
164
+ }
165
+ }),
166
+ prisma.typologies.create({
167
+ data: {
168
+ id: 13,
169
+ typology: 'Visita estudo',
170
+ }
171
+ }),
172
+ prisma.typologies.create({
173
+ data: {
174
+ id: 14,
175
+ typology: 'Aula Aberta',
176
+ }
177
+ }),
178
+ prisma.typologies.create({
179
+ data: {
180
+ id: 15,
181
+ typology: 'Convívio',
182
+ }
183
+ }),
184
+ ]);
185
+
186
+
187
+ // Insert soft skills
188
+ console.log('💪 Creating soft skills...');
189
+ const softskills = await Promise.all([
190
+ prisma.soft_skills.create({
191
+ data: {
192
+ title: 'Resolução de Problemas',
193
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLMZAy79qPGtxIiRgZ0kzDvVaQHhyu7KXs5E8A", alt: "Resolução de problemas" },
194
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLMZAy79qPGtxIiRgZ0kzDvVaQHhyu7KXs5E8A", alt: "Resolução de problemas" },
195
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLMZAy79qPGtxIiRgZ0kzDvVaQHhyu7KXs5E8A", alt: "Resolução de problemas" },
196
+ description: 'Identificar problemas de forma eficaz, analisar causas e consequências, e propor soluções adequadas, práticas e sustentáveis, mesmo em contextos complexos ou de incerteza.',
197
+ }
198
+ }),
199
+ prisma.soft_skills.create({
200
+ data: {
201
+ title: 'Criatividade e Inovação',
202
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLNNaFmU4VS4XYLByqlxK5Emvk89jZudo3QcTi", alt: "Criatividade e Inovação Ativa" },
203
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLNNaFmU4VS4XYLByqlxK5Emvk89jZudo3QcTi", alt: "Criatividade e Inovação Conquistada" },
204
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLNNaFmU4VS4XYLByqlxK5Emvk89jZudo3QcTi", alt: "Criatividade e Inovação Inativa" },
205
+ description: 'Gerar ideias originais e pertinentes, explorando novas abordagens e soluções, e transformá-las em contributos práticos e com valor acrescentado.',
206
+ }
207
+ }),
208
+ prisma.soft_skills.create({
209
+ data: {
210
+ title: 'Trabalho de Equipa',
211
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLpZdOQZemR3xrOJXD7dY8QsVE5iFc69jt04AH", alt: "Trabalho de Equipa" },
212
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLpZdOQZemR3xrOJXD7dY8QsVE5iFc69jt04AH", alt: "Trabalho de Equipa Conquistada" },
213
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLpZdOQZemR3xrOJXD7dY8QsVE5iFc69jt04AH", alt: "Trabalho de Equipa Inativa" },
214
+ description: 'Colaborar de forma construtiva com outros, partilhando responsabilidades, respeitando diferentes perspetivas e contribuindo ativamente para objetivos comuns.',
215
+ }
216
+ }),
217
+ prisma.soft_skills.create({
218
+ data: {
219
+ title: 'Ética',
220
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzeGoZZxHNirDUypwCsoJZ7KP8ASTYE0jOuma", alt: "Ética" },
221
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzeGoZZxHNirDUypwCsoJZ7KP8ASTYE0jOuma", alt: "Ética" },
222
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzeGoZZxHNirDUypwCsoJZ7KP8ASTYE0jOuma", alt: "Ética" },
223
+ description: 'Atuar de forma responsável, íntegra e coerente com princípios éticos, respeitando normas, valores e o impacto das decisões em indivíduos e na sociedade.',
224
+ }
225
+ }),
226
+ prisma.soft_skills.create({
227
+ data: {
228
+ title: 'Liderança',
229
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzeixpFlHNirDUypwCsoJZ7KP8ASTYE0jOuma", alt: "Liderança" },
230
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzeixpFlHNirDUypwCsoJZ7KP8ASTYE0jOuma", alt: "Liderança" },
231
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzeixpFlHNirDUypwCsoJZ7KP8ASTYE0jOuma", alt: "Liderança" },
232
+ description: 'Orientar e motivar indivíduos ou grupos, promovendo um ambiente de cooperação, assumindo responsabilidades e facilitando a concretização de objetivos comuns.',
233
+ }
234
+ }),
235
+ prisma.soft_skills.create({
236
+ data: {
237
+ title: 'Comunicação Oral',
238
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzAEG3DHNirDUypwCsoJZ7KP8ASTYE0jOumaI", alt: "Comunicação Oral" },
239
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzAEG3DHNirDUypwCsoJZ7KP8ASTYE0jOumaI", alt: "Comunicação Oral" },
240
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLzAEG3DHNirDUypwCsoJZ7KP8ASTYE0jOumaI", alt: "Comunicação Oral" },
241
+ description: 'Comunicar ideias, opiniões e informações de forma clara e confiante em contextos formais e informais, adaptando o discurso ao público e à situação.',
242
+ }
243
+ }),
244
+ prisma.soft_skills.create({
245
+ data: {
246
+ title: 'Comunicação Escrita',
247
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLl7l4C36Co8dLajg3f0qn1ZAycKbtTlSkeWwJ", alt: "Comunicação Escrita" },
248
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLl7l4C36Co8dLajg3f0qn1ZAycKbtTlSkeWwJ", alt: "Comunicação Escrita" },
249
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLl7l4C36Co8dLajg3f0qn1ZAycKbtTlSkeWwJ", alt: "Comunicação Escrita" },
250
+ description: 'Expressar ideias de forma clara, estruturada e adequada ao contexto, utilizando linguagem correta e objetiva para transmitir informação, argumentos e conclusões de modo eficaz.',
251
+ }
252
+ }),
253
+ prisma.soft_skills.create({
254
+ data: {
255
+ title: 'Autogestão',
256
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dL47ETAkUOa3H8kb17frjoYAyhTmiD0nR4PUCQ", alt: "Autogestão" },
257
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dL47ETAkUOa3H8kb17frjoYAyhTmiD0nR4PUCQ", alt: "Autogestão" },
258
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dL47ETAkUOa3H8kb17frjoYAyhTmiD0nR4PUCQ", alt: "Autogestão" },
259
+ description: 'Gerir de forma autónoma o tempo, as emoções e as responsabilidades, demonstrando organização, resiliência e capacidade de adaptação a diferentes exigências.',
260
+ }
261
+ }),
262
+ prisma.soft_skills.create({
263
+ data: {
264
+ title: 'Pensamento Crítico',
265
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLLVjE0qgcDHxWfulkaytOqz3SVegmLwobGJs8", alt: "Pensamento Crítico" },
266
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLLVjE0qgcDHxWfulkaytOqz3SVegmLwobGJs8", alt: "Pensamento Crítico" },
267
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLLVjE0qgcDHxWfulkaytOqz3SVegmLwobGJs8", alt: "Pensamento Crítico" },
268
+ description: 'Analisar informação de forma lógica e estruturada, interpretando dados, identificando padrões e estabelecendo relações relevantes para apoiar a tomada de decisões.',
269
+ }
270
+ }),
271
+ prisma.soft_skills.create({
272
+ data: {
273
+ title: 'Raciocínio Crítico',
274
+ img_active: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLVsgHZObQ7DFMBvhIWUKNJjcu2an0Z6edqwVO", alt: "Raciocínio Crítico" },
275
+ img_achieved: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLVsgHZObQ7DFMBvhIWUKNJjcu2an0Z6edqwVO", alt: "Raciocínio Crítico" },
276
+ img_inactive: { url: "https://576wibblum.ufs.sh/f/l7y45I6Co8dLVsgHZObQ7DFMBvhIWUKNJjcu2an0Z6edqwVO", alt: "Raciocínio Crítico" },
277
+ description: 'Avaliar informação, argumentos e situações de forma reflexiva e fundamentada, questionando pressupostos e formulando julgamentos consistentes.',
278
+ }
279
+ })
280
+ ]);
281
+
282
+ // Insert Badge Types
283
+ console.log('🏆 Creating badge types...');
284
+ const badgeTypes = await Promise.all([
285
+ prisma.type.create({ data: { id:1, type: 'Certificado' } }),
286
+ prisma.type.create({ data: { id:2, type: 'Desafio' } }),
287
+ ]);
288
+
289
+ // Insert programs
290
+ console.log('📚 Creating programs...');
291
+ const programs = await Promise.all([
292
+ prisma.programs.create({
293
+ data: {
294
+ title: 'Ser+',
295
+ description: 'Tem como objetivo promover o envolvimento ativo dos estudantes na construção de uma universidade mais inovadora e competitiva, complementando o ensino formal com experiências de aprendizagem não-formais e informais. O programa incentiva a participação dos estudantes na identificação de necessidades e na criação de ideias que contribuam para a melhoria contínua da instituição, reforçando o seu papel enquanto agentes de mudança',
296
+ img: { url: "https://api-assets.ua.pt/v1/image/resizer?imageUrl=https%3A%2F%2Fapi-assets.ua.pt%2Ffiles%2Fimgs%2F000%2F000%2F064%2Foriginal.jpg&width=1920", alt: "Capa Programa" },
297
+ is_approved: true,
298
+ is_draft: false,
299
+ area_id: areas[2].id
300
+ }
301
+ }),
302
+ prisma.programs.create({
303
+ data: {
304
+ title: 'PEPE',
305
+ description: 'Tem como objetivos o desenvolvimento integral dos estudantes, o complemento do contexto formal (cursos/ unidades curriculares) com o contexto não-formal e informal, o foco não apenas no desenvolvimento de competências transversais e a resposta às necessidades reportadas por estudantes',
306
+ img: { url: "https://api-assets.ua.pt/v1/image/resizer?imageUrl=https%3A%2F%2Fapi-assets.ua.pt%2Ffiles%2Fimgs%2F000%2F000%2F064%2Foriginal.jpg&width=1920", alt: "Capa Programa" },
307
+ is_approved: true,
308
+ is_draft: false,
309
+ area_id: areas[1].id
310
+ }
311
+ }),
312
+ prisma.programs.create({
313
+ data: {
314
+ title: 'Programa Tutoria',
315
+ description: 'Estrutura de tutoria por pares, que objetiva o acompanhamento dos tutorandos (estudantes do primeiro ano) por mentores (estudantes de anos mais avançados), com a supervisão de tutores (docentes). Aemais, inclui um programa de formação - que abrange palestras, workshops e outras sessões - orientado para o desenvolvimento de competências transversais.',
316
+ img: { url: "https://api-assets.ua.pt/v1/image/resizer?imageUrl=https%3A%2F%2Fapi-assets.ua.pt%2Ffiles%2Fimgs%2F000%2F000%2F064%2Foriginal.jpg&width=1920", alt: "Capa Programa" },
317
+ is_approved: true,
318
+ is_draft: false,
319
+ area_id: areas[1].id
320
+ }
321
+ }),
322
+ prisma.programs.create({
323
+ data: {
324
+ title: 'Taça Ua',
325
+ description: 'Organizada pela AAUAv, a Taça UA procura evoluir continuamente através da inclusão de novas modalidades, alinhadas com as preferências dos estudantes e as condições existentes, abrangendo desportos individuais, coletivos e e-sports. O objetivo passa também por reforçar a mediatização da iniciativa, promovendo novas parcerias e contribuindo para a melhoria da prática desportiva na Universidade de Aveiro.',
326
+ img: { url: "https://api-assets.ua.pt/v1/image/resizer?imageUrl=https%3A%2F%2Fapi-assets.ua.pt%2Ffiles%2Fimgs%2F000%2F000%2F064%2Foriginal.jpg&width=1920", alt: "Capa Programa" },
327
+ is_approved: true,
328
+ is_draft: false,
329
+ area_id: areas[0].id
330
+ }
331
+ }),
332
+ prisma.programs.create({
333
+ data: {
334
+ title: 'ShiftE',
335
+ description: 'O Shift é um programa da Universidade de Aveiro dedicado à promoção do empreendedorismo, da empregabilidade e do desenvolvimento de competências para o futuro profissional. Tem como objetivo aproximar estudantes e recém-graduados do mercado de trabalho, estimular o espírito crítico e inovador e apoiar a criação de projetos e percursos profissionais alinhados com os desafios atuais.Através de iniciativas que cruzam inspiração, aprendizagem prática e contacto direto com empresas e especialistas, o Shift procura capacitar os participantes para tomarem decisões informadas sobre o seu futuro académico e profissional, incentivando uma participação ativa, autónoma e empreendedora na sociedade.',
336
+ img: { url: "https://api-assets.ua.pt/v1/image/resizer?imageUrl=https%3A%2F%2Fapi-assets.ua.pt%2Ffiles%2Fimgs%2F000%2F000%2F064%2Foriginal.jpg&width=1920", alt: "Capa Programa" },
337
+ is_approved: true,
338
+ is_draft: false,
339
+ area_id: areas[4].id
340
+ }
341
+ }),
342
+ ]);
343
+
344
+ // Insert initiatives
345
+ console.log('🚀 Creating initiatives...');
346
+ const initiatives = await Promise.all([
347
+ prisma.initiatives.create({
348
+ data: {
349
+ title: 'Workshop Ser+ Digital.',
350
+ description: 'O objetivo desta sessão passa por, de forma colaborativa, desenhar iniciativas que possam vir a ser dinamizadas na Universidade de Aveiro e, futuramente, integradas numa plataforma de gamificação da universidade do projeto Ser +. Ao longo do workshop, os participantes irão realizar um conjunto de atividades que lhes permitirá ganhar badges e fazer parte de uma narrativa ficcional — um concurso televisivo no qual se inscreveram sem terem dado conta. Assim, enquanto idealizam uma iniciativa gamificada hipotética, estarão, simultaneamente, a experienciar uma iniciativa gamificada na prática. Agradecemos, desde já, a sua participação.',
351
+ img: [{
352
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrSWr067krlnJICFZgOeWX6vfcAY9xd8uaG7mi",
353
+ alt: "Eu também dinamizo"
354
+ },
355
+ {
356
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrSWr067krlnJICFZgOeWX6vfcAY9xd8uaG7mi",
357
+ alt: "Eu também dinamizo"
358
+ },
359
+ {
360
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrSWr067krlnJICFZgOeWX6vfcAY9xd8uaG7mi",
361
+ alt: "Eu também dinamizo"
362
+ }
363
+ ],
364
+ inscription_deadline: new Date('2027-01-15T14:00:00'),
365
+ start_date: new Date('2027-01-17T17:00:00'),
366
+ end_date: new Date('2027-01-17T18:00:00'),
367
+ is_private: false,
368
+ is_draft: false,
369
+ is_approved: true,
370
+ program_id: programs[0].id,
371
+ area_id: areas[0].id,
372
+ typology_id: typologies[0].id,
373
+ openings: 30,
374
+ isPresential: true,
375
+ }
376
+ }),
377
+ prisma.initiatives.create({
378
+ data: {
379
+ title: 'Observação e Análise em Oceanografia',
380
+ description: 'Esta formação insere os participantes numa experiência introdutória à prática científica em oceanografia, com enfoque nos processos de observação, análise, trabalho colaborativo e comunicação científica.Ao longo da formação, os participantes percorrem diferentes etapas do método científico aplicadas às ciências do mar, desenvolvendo competências fundamentais para a compreensão do oceano enquanto sistema físico, biológico e ambiental.Os badges funcionam como marcadores de progresso e de competências adquiridas, reconhecendo atitudes e aprendizagens relevantes ao longo da formação.',
381
+ img: [
382
+ {
383
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrHIMMpXJKR8ktlrWuT6CUy1BJpS4w3jQVgdea",
384
+ alt: "Observação e Análise em Oceanografia"
385
+ },
386
+ {
387
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrHIMMpXJKR8ktlrWuT6CUy1BJpS4w3jQVgdea",
388
+ alt: "Observação e Análise em Oceanografia"
389
+ },
390
+ {
391
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrHIMMpXJKR8ktlrWuT6CUy1BJpS4w3jQVgdea",
392
+ alt: "Observação e Análise em Oceanografia"
393
+ }
394
+ ],
395
+ inscription_deadline: new Date('2027-01-15T14:00:00'),
396
+ start_date: new Date('2027-01-17T14:00:00'),
397
+ end_date: new Date('2027-01-17T16:00:00'),
398
+ is_private: false,
399
+ is_draft: false,
400
+ is_approved: true,
401
+ program_id: programs[1].id,
402
+ area_id: areas[2].id,
403
+ typology_id: typologies[3].id,
404
+ openings: 30,
405
+ isPresential: true,
406
+ }
407
+ }),
408
+ prisma.initiatives.create({
409
+ data: {
410
+ title: 'Gerir o Stress no Dia a Dia',
411
+ description: 'Este talk convida os participantes a refletir sobre o stress como parte da vida académica e profissional, explorando estratégias simples para o reconhecer, organizar e gerir de forma mais consciente.Os badges não avaliam desempenho, mas assinalam momentos de participação, reflexão e compromisso pessoal, funcionando como símbolos de aprendizagem informal.',
412
+ img: [
413
+ {
414
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr5M8UI5uhEzQdCKgD4SqeXHLfuG1Zhoxcwvia",
415
+ alt: "Gerir o Stress no Dia a Dia"
416
+ },
417
+ {
418
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr5M8UI5uhEzQdCKgD4SqeXHLfuG1Zhoxcwvia",
419
+ alt: "Gerir o Stress no Dia a Dia"
420
+ },
421
+ {
422
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr5M8UI5uhEzQdCKgD4SqeXHLfuG1Zhoxcwvia",
423
+ alt: "Gerir o Stress no Dia a Dia"
424
+ }
425
+ ],
426
+ inscription_deadline: new Date('2027-01-15T14:00:00'),
427
+ start_date: new Date('2027-01-17T14:00:00'),
428
+ end_date: new Date('2027-01-17T16:00:00'),
429
+ is_private: false,
430
+ is_draft: false,
431
+ is_approved: true,
432
+ program_id: programs[2].id,
433
+ area_id: areas[2].id,
434
+ typology_id: typologies[8].id,
435
+ openings: 30,
436
+ isPresential: true,
437
+ }
438
+ }),
439
+ prisma.initiatives.create({
440
+ data: {
441
+ title: 'Visita de Estudo à RTP — Bastidores do Audiovisual',
442
+ description: 'Esta iniciativa consiste numa visita de estudo à RTP, integrada no Mestrado em Audiovisual, com o objetivo de proporcionar aos estudantes um contacto direto com contextos reais de produção audiovisual.Ao longo da visita, os participantes terão a oportunidade de observar processos profissionais, compreender diferentes papéis na cadeia de produção televisiva e refletir sobre a transição entre o contexto académico e o mercado de trabalho.',
443
+ img: [
444
+ {
445
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrapMDMQOKh2H5Y8uaAUyldEs7npPZeqfVzxmk",
446
+ alt: "Visita de Estudo à RTP — Bastidores do Audiovisual"
447
+ },
448
+ {
449
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrapMDMQOKh2H5Y8uaAUyldEs7npPZeqfVzxmk",
450
+ alt: "Visita de Estudo à RTP — Bastidores do Audiovisual"
451
+ },
452
+ {
453
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrapMDMQOKh2H5Y8uaAUyldEs7npPZeqfVzxmk",
454
+ alt: "Visita de Estudo à RTP — Bastidores do Audiovisual"
455
+ }
456
+ ],
457
+ inscription_deadline: new Date('2027-01-15T14:00:00'),
458
+ start_date: new Date('2027-01-17T14:09:00'),
459
+ end_date: new Date('2027-01-17T16:18:00'),
460
+ is_private: false,
461
+ is_draft: false,
462
+ is_approved: true,
463
+ area_id: areas[4].id,
464
+ typology_id: typologies[12].id,
465
+ openings: 300,
466
+ isPresential: true,
467
+ }
468
+ }),
469
+ prisma.initiatives.create({
470
+ data: {
471
+ title: 'Taça UA · Basquetebol 3x3',
472
+ description: 'A Taça UA · Basquetebol 3x3 é uma competição desportiva universitária que promove o espírito de equipa, a participação ativa da comunidade académica e a vivência do desporto num formato dinâmico e inclusivo.Para além dos atletas, a iniciativa valoriza também o papel da plateia, árbitros, treinadores e organização, reconhecendo atitudes de fair play, compromisso, apoio e convivência saudável.',
473
+ img: [
474
+ {
475
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrBGX5JaLEzruf6M1Oe0FHVp9bPSl4tTJ72DWk",
476
+ alt: "Taça UA · Basquetebol 3x3"
477
+ },
478
+ {
479
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrBGX5JaLEzruf6M1Oe0FHVp9bPSl4tTJ72DWk",
480
+ alt: "Taça UA · Basquetebol 3x3"
481
+ },
482
+ {
483
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrBGX5JaLEzruf6M1Oe0FHVp9bPSl4tTJ72DWk",
484
+ alt: "Taça UA · Basquetebol 3x3"
485
+ }
486
+ ],
487
+ inscription_deadline: new Date('2027-01-15T14:00:00'),
488
+ start_date: new Date('2027-01-17T14:09:00'),
489
+ end_date: new Date('2027-01-17T16:18:00'),
490
+ is_private: false,
491
+ is_draft: false,
492
+ is_approved: true,
493
+ program_id: programs[3].id,
494
+ area_id: areas[0].id,
495
+ typology_id: typologies[7].id,
496
+ openings: 50,
497
+ isPresential: false,
498
+ }
499
+ }),
500
+ prisma.initiatives.create({
501
+ data: {
502
+ title: 'Convívio UA — Mesa Aberta',
503
+ description: 'O Convívio UA — Mesa Aberta é um momento informal de encontro da comunidade académica, pensado para promover a socialização, a partilha e o bem-estar fora de contextos competitivos ou avaliativos.A iniciativa centra-se na partilha de comida, conversa e tempo, valorizando a presença e a vivência coletiva.',
504
+ img: [
505
+ {
506
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr4nzvn6XhfPyHbcMR76uS0doqxpCaVBOe5Jtk",
507
+ alt: "Convívio UA — Mesa Aberta"
508
+ },
509
+ {
510
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr4nzvn6XhfPyHbcMR76uS0doqxpCaVBOe5Jtk",
511
+ alt: "Convívio UA — Mesa Aberta"
512
+ },
513
+ {
514
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr4nzvn6XhfPyHbcMR76uS0doqxpCaVBOe5Jtk",
515
+ alt: "Convívio UA — Mesa Aberta"
516
+ }
517
+ ],
518
+ inscription_deadline: new Date('2027-01-15T14:00:00'),
519
+ start_date: new Date('2027-01-17T14:09:00'),
520
+ end_date: new Date('2027-01-17T16:18:00'),
521
+ is_private: false,
522
+ is_draft: false,
523
+ is_approved: true,
524
+ typology_id: typologies[14].id,
525
+ openings: 50,
526
+ isPresential: false,
527
+ }
528
+ }),
529
+ prisma.initiatives.create({
530
+ data: {
531
+ title: 'ShiftE - 1ª edição',
532
+ description: 'O ShiftE – Empreendedorismo e Empregabilidade é um evento da Universidade de Aveiro e da Associação Académica que junta, num único espaço, a Semana do Empreendedorismo e a Feira de Emprego U5.0.De 17 a 20 de novembro, o evento promove palestras com especialistas, empreendedores e empresários, focadas na partilha de experiências, conselhos práticos e desenvolvimento de competências. Inclui ainda uma Feira de Empregocom cerca de uma centena de empresas e entidades, onde é possível agendar entrevistas e explorar oportunidades profissionais.',
533
+ img: [
534
+ {
535
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrmfc5sQ07cYDFObXGJLMZvx5uaAo6RVs0Ie2w",
536
+ alt: "Convívio UA — Mesa Aberta"
537
+ },
538
+ {
539
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrmfc5sQ07cYDFObXGJLMZvx5uaAo6RVs0Ie2w",
540
+ alt: "Convívio UA — Mesa Aberta"
541
+ },
542
+ {
543
+ url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrmfc5sQ07cYDFObXGJLMZvx5uaAo6RVs0Ie2w",
544
+ alt: "Convívio UA — Mesa Aberta"
545
+ }
546
+ ],
547
+ inscription_deadline: new Date('2027-01-15T14:00:00'),
548
+ start_date: new Date('2027-01-17T14:09:00'),
549
+ end_date: new Date('2027-01-20T16:18:00'),
550
+ is_private: false,
551
+ is_draft: false,
552
+ program_id: programs[4].id,
553
+ area_id: areas[4].id,
554
+ is_approved: true,
555
+ typology_id: typologies[2].id,
556
+ openings: 50,
557
+ isPresential: true,
558
+ }
559
+ }),
560
+ prisma.initiatives.create({
561
+ data: {
562
+ title: 'Pré-Piloto',
563
+ description: 'Nesta iniciativa vais participar no teste do pré-piloto da aplicação Ser+. \
564
+ O Ser+ é a marca agregadora do conjunto de iniciativas de reconhecido mérito em que os estudantes se envolvem, e contribuem para o seu desenvolvimento integral. Pretende-se que o Ser+ seja uma ambição incutida aos estudantes da Universidade de Aveiro desde o momento de acolhimento, acompanhando-os ao longo de todo o seu percurso académico. \
565
+ O Ser+ integra diferentes vertentes e iniciativas promovidas por diversos promotores, desde que devidamente reconhecidas. Assenta ainda em princípios de gamificação, que incentivam a participação ativa dos estudantes em múltiplas dimensões da vida académica.',
566
+ img: [
567
+ {
568
+ url: "",
569
+ alt: ""
570
+ },
571
+ {
572
+ url: "",
573
+ alt: ""
574
+ },
575
+ {
576
+ url: "",
577
+ alt: ""
578
+ }
579
+ ],
580
+ inscription_deadline: new Date('2026-01-30T12:00:00'),
581
+ start_date: new Date('2026-01-30T10:30:00'),
582
+ end_date: new Date('2026-01-30T12:30:00'),
583
+ is_private: false,
584
+ is_draft: false,
585
+ program_id: programs[0].id,
586
+ area_id: areas[2].id,
587
+ is_approved: true,
588
+ typology_id: typologies[2].id,
589
+ openings: 50,
590
+ isPresential: true,
591
+ }
592
+ }),
593
+ ]);
594
+
595
+ // Insert moments for initiatives
596
+ console.log('⏰ Creating moments...');
597
+ const moments = await Promise.all([
598
+ prisma.moments.create({
599
+ data: {
600
+ title: 'Estou num reality!',
601
+ description: 'Bem vindo! Parece que se inscreveu no concurso televisivo Ready, Set, Gamify! enquanto participante. Se sabe como funcionam concursos de televisão então está apto para começar. Não há nada que saber. É possível que se pergunte onde estão as câmaras, os microfones e todo o staff. Não se preocupe, já tratámos disso tudo. Apenas aja naturalmente, como se estivesse num reality show. Está em direto para a televisão.',
602
+ short_description: 'Inscreveu-se num concurso de televisão. É altura de se apresentar.',
603
+ img: { url: "moment_opening.jpg", alt: "Sessão de Abertura" },
604
+ order: 1,
605
+ opened_at: new Date('2027-09-12T14:00:00'),
606
+ closed_at: new Date('2027-09-12T15:00:00'),
607
+ initiative_id: initiatives[0].id
608
+ }
609
+ }),
610
+ prisma.moments.create({
611
+ data: {
612
+ title: 'Gamificar para ganhar!',
613
+ description: 'O objetivo final deste concurso é muito simples. Gamifique para ganhar. Se até ao final do programa não tiver uma iniciativa gamificada pronta a ser dinamizada corre o risco de ser desclassificado. É assim a vida. Não há nenhum prémio monetário envolvido mas vai ver que vai ser giro. Contamos consigo!',
614
+ short_description: 'É altura de perceber o objetivo do concurso, é altura de gamificar.',
615
+ img: { url: "moment_workshop.jpg", alt: "Workshop" },
616
+ order: 2,
617
+ opened_at: new Date('2027-09-12T15:00:00'),
618
+ closed_at: new Date('2027-09-12T16:00:00'),
619
+ initiative_id: initiatives[0].id
620
+ }
621
+ }),
622
+ prisma.moments.create({
623
+ data: {
624
+ title: 'Grupos ao trabalho!',
625
+ description: 'Mãos à obra! Agora junte-se a outros participantes e é altura de começar a gamificar (máximo 3 grupos). Preparem um primeiro rascunho da vossa iniciativa. Façam algo original e capaz de captar o interesse do vosso público-alvo. Mas atenção que o nosso programa não dura o dia todo. O tempo vai começar a contar.',
626
+ short_description: 'Preparação do rascunho da iniciativa.',
627
+ img: { url: "moment_groups.jpg", alt: "Trabalho de Grupo" },
628
+ order: 3,
629
+ opened_at: new Date('2027-09-12T16:00:00'),
630
+ closed_at: new Date('2027-09-12T17:00:00'),
631
+ initiative_id: initiatives[0].id
632
+ }
633
+ }),
634
+ prisma.moments.create({
635
+ data: {
636
+ title: 'Inteligencia Artificial é suficiente?',
637
+ description: 'Se chegou até aqui é um bom sinal. Mas isto ainda não acabou. Agora que receberam uma proposta de narrativa para integrar ou editar na vossa iniciativa, é hora de criar os badges. Ouvi dizer que mais à frente vão ter de fazer uma demonstração da vossa iniciativa aos nossos espectadores. É a melhor oportunidade que vai ter para se tornar uma celebridade neste programa.',
638
+ short_description: 'A IA ajuda, mas tu estas no comando e podes alterar completamente a história.',
639
+ img: { url: "moment_ai.jpg", alt: "Inteligência Artificial" },
640
+ order: 4,
641
+ opened_at: new Date('2027-09-12T17:00:00'),
642
+ closed_at: new Date('2027-09-12T18:00:00'),
643
+ initiative_id: initiatives[0].id
644
+ }
645
+ }),
646
+ prisma.moments.create({
647
+ data: {
648
+ title: 'O show está prestes a começa.',
649
+ description: 'Muitos parabéns por ter chegado até aqui. Se está prestes a apresentar a sua iniciativa então boa sorte. O nosso showrunner está entusiasmado para ver o que preparou juntamente com os seus colegas. Se já apresentou, então está dispensado. Quem sabe, talvez venha a ser chamado novamente para uma nova edição deste concurso!',
650
+ short_description: 'É hora de apresentares para todos o trabalho desenvolvido, a tua iniciativa gamificada.',
651
+ img: { url: "moment_final.jpg", alt: "Apresentação Final" },
652
+ order: 5,
653
+ opened_at: new Date('2027-09-12T18:00:00'),
654
+ closed_at: new Date('2027-09-12T19:00:00'),
655
+ initiative_id: initiatives[0].id
656
+ }
657
+ }),
658
+
659
+ // === INITIATIVE 2 (Oceano) - Moments 6-10 ===
660
+ prisma.moments.create({
661
+ data: {
662
+ title: 'Enquadramento Científico',
663
+ description: 'A formação inicia-se com o enquadramento dos objetivos, metodologias e temas centrais. É também o momento de integração dos participantes e de criação de um ambiente favorável à aprendizagem científica.',
664
+ short_description: 'Preparação, alinhamento e contexto da formação',
665
+ img: { url: "moment_science_intro.jpg", alt: "Enquadramento Científico" },
666
+ order: 1,
667
+ opened_at: new Date('2027-10-01T09:00:00'),
668
+ closed_at: new Date('2027-10-01T10:00:00'),
669
+ initiative_id: initiatives[1].id
670
+ }
671
+ }),
672
+ prisma.moments.create({
673
+ data: {
674
+ title: 'Observação e Compreensão do Oceano',
675
+ description: 'Nesta fase, os participantes aprofundam o conhecimento sobre o oceano enquanto sistema, através da observação, da escuta ativa e do registo estruturado de informação.',
676
+ short_description: 'Escuta ativa, análise de informação e registo científico',
677
+ img: { url: "moment_ocean_observation.jpg", alt: "Observação do Oceano" },
678
+ order: 2,
679
+ opened_at: new Date('2027-10-01T10:00:00'),
680
+ closed_at: new Date('2027-10-01T11:30:00'),
681
+ initiative_id: initiatives[1].id
682
+ }
683
+ }),
684
+ prisma.moments.create({
685
+ data: {
686
+ title: 'Análise Colaborativa',
687
+ description: 'Os participantes organizam-se em grupos para analisar um fenómeno, problema ou caso de estudo relacionado com a oceanografia, integrando diferentes perspetivas e conhecimentos.',
688
+ short_description: 'Trabalho em grupo e interpretação de fenómenos oceanográficos',
689
+ img: { url: "moment_collaborative_analysis.jpg", alt: "Análise Colaborativa" },
690
+ order: 3,
691
+ opened_at: new Date('2027-10-01T11:30:00'),
692
+ closed_at: new Date('2027-10-01T13:00:00'),
693
+ initiative_id: initiatives[1].id
694
+ }
695
+ }),
696
+ prisma.moments.create({
697
+ data: {
698
+ title: 'Síntese e Estruturação do Conhecimento',
699
+ description: 'Nesta etapa, os grupos estruturam a informação recolhida, relacionam conceitos e constroem uma explicação coerente do fenómeno estudado, recorrendo a ferramentas digitais quando apropriado.',
700
+ short_description: 'Organização, integração e validação da aprendizagem',
701
+ img: { url: "moment_synthesis.jpg", alt: "Síntese do Conhecimento" },
702
+ order: 4,
703
+ opened_at: new Date('2027-10-01T14:00:00'),
704
+ closed_at: new Date('2027-10-01T15:30:00'),
705
+ initiative_id: initiatives[1].id
706
+ }
707
+ }),
708
+ prisma.moments.create({
709
+ data: {
710
+ title: 'Comunicação Científica e Continuidade',
711
+ description: 'A formação culmina com a apresentação dos resultados, promovendo a reflexão crítica e incentivando a continuidade do percurso formativo e científico',
712
+ short_description: 'Apresentação, reflexão e projeção futura',
713
+ img: { url: "moment_science_communication.jpg", alt: "Comunicação Científica" },
714
+ order: 5,
715
+ opened_at: new Date('2027-10-01T15:30:00'),
716
+ closed_at: new Date('2027-10-01T17:00:00'),
717
+ initiative_id: initiatives[1].id
718
+ }
719
+ }),
720
+
721
+ // === INITIATIVE 4 (Visita RTP) - Moments 11-13 ===
722
+ // Nota: Initiative 3 (Gestão de Stress) não tem momentos na tabela
723
+ prisma.moments.create({
724
+ data: {
725
+ title: 'Chegada ao Estúdio — Preparar a Cena',
726
+ description: 'Este momento corresponde à chegada à RTP e ao enquadramento inicial da visita. Os estudantes são contextualizados sobre o funcionamento geral da estação, os espaços que irão visitar e as regras de comportamento em ambiente profissional. É também o momento de mudança de papel: de estudante para observador profissional.',
727
+ short_description: 'Chegada e enquadramento inicial da visita à RTP',
728
+ img: { url: "moment_rtp_arrival.jpg", alt: "Chegada ao Estúdio" },
729
+ order: 1,
730
+ opened_at: new Date('2027-11-15T09:00:00'),
731
+ closed_at: new Date('2027-11-15T10:00:00'),
732
+ initiative_id: initiatives[3].id
733
+ }
734
+ }),
735
+ prisma.moments.create({
736
+ data: {
737
+ title: 'Observação em Contexto Real — Dentro da Produção',
738
+ description: 'Neste momento, os participantes acompanham espaços reais de produção audiovisual, como estúdios, régies e áreas técnicas, observando equipas em ação e fluxos de trabalho profissionais. O foco está na observação crítica, compreensão dos papéis técnicos e reconhecimento da complexidade do trabalho audiovisual.',
739
+ short_description: 'Visita aos espaços de produção e observação técnica',
740
+ img: { url: "moment_rtp_production.jpg", alt: "Observação da Produção" },
741
+ order: 2,
742
+ opened_at: new Date('2027-11-15T10:00:00'),
743
+ closed_at: new Date('2027-11-15T12:00:00'),
744
+ initiative_id: initiatives[3].id
745
+ }
746
+ }),
747
+ prisma.moments.create({
748
+ data: {
749
+ title: 'Reflexão Final — Do Estúdio para o Futuro',
750
+ description: 'O último momento é dedicado à reflexão sobre a experiência, promovendo a ligação entre o que foi observado na RTP e o percurso académico e profissional dos estudantes. É um momento de síntese, projeção futura e consolidação da aprendizagem.',
751
+ short_description: 'Reflexão sobre a experiência e projeção futura',
752
+ img: { url: "moment_rtp_reflection.jpg", alt: "Reflexão Final" },
753
+ order: 3,
754
+ opened_at: new Date('2027-11-15T12:00:00'),
755
+ closed_at: new Date('2027-11-15T13:00:00'),
756
+ initiative_id: initiatives[3].id
757
+ }
758
+ }),
759
+ // === INITIATIVE 7 (ShiftE) - Moments 14-17 ===
760
+ prisma.moments.create({
761
+ data: {
762
+ title: 'Inspirar & Despertar',
763
+ description: 'Este primeiro momento marca o arranque do ShiftE e define o tom da semana. É dedicado à inspiração, ao contacto com percursos reais e à reflexão sobre o futuro profissional. A sessão de abertura e a talk “Empreendedorismo: o futuro começa agora” convidam os participantes a questionar modelos tradicionais de carreira, conhecer desafios reais do empreendedorismo e ganhar motivação para os dias seguintes.',
764
+ short_description: 'Abrir o mindset, despertar o espírito empreendedor e enquadrar o evento.',
765
+ img: { url: "moment_rtp_reflection.jpg", alt: "Inspirar & Despertar" },
766
+ order: 1,
767
+ opened_at: new Date('2027-11-15T12:00:00'),
768
+ closed_at: new Date('2027-11-15T13:00:00'),
769
+ initiative_id: initiatives[6].id
770
+ }
771
+ }),
772
+ prisma.moments.create({
773
+ data: {
774
+ title: 'Capacitar & Desenvolver Competências',
775
+ description: 'Este momento é centrado no desenvolvimento de skills essenciais, com destaque para produtividade, tecnologia e inovação dentro das organizações. O workshop “Produtividade com AI” oferece ferramentas práticas para o dia a dia, enquanto o painel sobre intraempreendedorismo mostra como inovar mesmo dentro de grandes empresas. O dia termina com o Encontro de Mentores, promovendo aprendizagem próxima e partilha de experiências.',
776
+ short_description: 'Dotar os participantes de competências práticas e atuais.',
777
+ img: { url: "moment_rtp_reflection.jpg", alt: "Capacitar & Desenvolver Competências" },
778
+ order: 2,
779
+ opened_at: new Date('2027-11-15T12:00:00'),
780
+ closed_at: new Date('2027-11-15T13:00:00'),
781
+ initiative_id: initiatives[6].id
782
+ }
783
+ }),
784
+ prisma.moments.create({
785
+ data: {
786
+ title: 'Estratégia, Propósito & Impacto',
787
+ description: 'Aqui o foco está na tomada de decisão, na negociação e na criação de projetos com propósito. A talk “Técnicas de Negociação” fornece ferramentas essenciais para o mundo profissional, enquanto o painel “Negócios com Propósito”apresenta exemplos concretos de empresas que conciliam sustentabilidade, inovação e impacto social. Em paralelo, o Shark Thesis aproxima a investigação académica do mercado.',
788
+ short_description: 'Trabalhar pensamento estratégico e impacto real.',
789
+ img: { url: "moment_rtp_reflection.jpg", alt: "Estratégia, Propósito & Impacto" },
790
+ order: 3,
791
+ opened_at: new Date('2027-11-15T12:00:00'),
792
+ closed_at: new Date('2027-11-15T13:00:00'),
793
+ initiative_id: initiatives[6].id
794
+ }
795
+ }),
796
+ prisma.moments.create({
797
+ data: {
798
+ title: 'Ação, Visibilidade & Conexões',
799
+ description: 'O último momento é dedicado à exposição de talento, à validação de ideias e ao networking. O Pitch Your Thing dá palco a projetos, ideias e perfis profissionais perante empresas e entidades do ecossistema. A talk “Manual de Boas Ideias” reforça a importância da criatividade aplicada, culminando num Happy Hour & Networking, que fecha o ShiftE com ligações reais ao mercado de trabalho.',
800
+ short_description: 'Passar da ideia à ação e criar oportunidades reais.',
801
+ img: { url: "moment_rtp_reflection.jpg", alt: "Ação, Visibilidade & Conexões" },
802
+ order: 4,
803
+ opened_at: new Date('2027-11-15T12:00:00'),
804
+ closed_at: new Date('2027-11-15T13:00:00'),
805
+ initiative_id: initiatives[6].id
806
+ }
807
+ }),
808
+
809
+ // === INITIATIVE 8 (Pré-Piloto) - Moments ===
810
+ prisma.moments.create({
811
+ data: {
812
+ title: 'Identidade e Primeiras Pistas',
813
+ description: 'Uma carta misteriosa apareceu na secretária do Detetive Bigodes. Ele pegou nela, abriu-a e encontrou um convite intrigante: "Caro Detetive, O Ser + está em fase de testes na Universidade de Aveiro. Precisamos da tua ajuda e da tua equipa de investigadores. Cada pista, cada decisão e cada detalhe conta. Estás pronto para descobrir esta aplicação?" Bigodes sorriu. Algo dizia-lhe que este caso não seria como os outros… e que ele ia precisar de estratégia, paciência e atenção. As primeiras pistas estão nas próprias palavras escritas em cada momento. Cada ideia, cada curiosidade é uma peça do mistério.',
814
+ short_description: 'Apresentação dos investigadores e primeiras pistas do caso.',
815
+ img: { url: "", alt: "Identidade e Primeiras Pistas" },
816
+ order: 1,
817
+ opened_at: new Date('2026-01-30T10:30:00'),
818
+ closed_at: new Date('2026-01-30T11:00:00'),
819
+ initiative_id: initiatives[7].id
820
+ }
821
+ }),
822
+ prisma.moments.create({
823
+ data: {
824
+ title: 'A Investigação em Campo: Descoberta e Colaboração',
825
+ description: 'A investigação entra agora no terreno. No início, foi apresentada a primeira visão do Ser+, uma definição base, um ponto de partida comum para todos os investigadores. Essa apresentação permitiu alinhar conceitos e criar uma base sólida para a investigação. Agora, é tempo de ir mais fundo.',
826
+ short_description: 'Descoberta colaborativa e aprofundamento do conceito Ser+.',
827
+ img: { url: "", alt: "A Investigação em Campo" },
828
+ order: 2,
829
+ opened_at: new Date('2026-01-30T11:00:00'),
830
+ closed_at: new Date('2026-01-30T11:30:00'),
831
+ initiative_id: initiatives[7].id
832
+ }
833
+ }),
834
+ prisma.moments.create({
835
+ data: {
836
+ title: 'A Revelação: Reconhecimento e Fecho',
837
+ description: 'O caso aproxima-se do fim. As pistas foram recolhidas, os enigmas resolvidos, e agora é hora de refletir e reconhecer os méritos. Bigodes observa atentamente quem se destacou: quem foi mais astuto, mais colaborativo e quem ajudou os colegas a "ser mais".',
838
+ short_description: 'Reflexão final e reconhecimento dos méritos dos investigadores.',
839
+ img: { url: "", alt: "A Revelação" },
840
+ order: 3,
841
+ opened_at: new Date('2026-01-30T11:30:00'),
842
+ closed_at: new Date('2026-01-30T12:30:00'),
843
+ initiative_id: initiatives[7].id
844
+ }
845
+ }),
846
+ ]);
847
+
848
+
849
+ // Insert badges
850
+ console.log('🏅 Creating badges...');
851
+ const badges = await Promise.all([
852
+ // === INITIATIVE 1 (Workshop Ser+ Digital) ===
853
+
854
+ // Badges sem momento (initiative_id: 1)
855
+ prisma.badges.create({
856
+ data: {
857
+ title: 'Mão amiga',
858
+ condition: 'Ajudou outro grupo de trabalho.',
859
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrpOcfa25y6dIgcXEtmneNDBiWbLVrxa1Gpvwf", alt: "comunidade" },
860
+ points: 10,
861
+ initiative_id: initiatives[0].id,
862
+ type_id: badgeTypes[1].id,
863
+ is_draft: false
864
+ }
865
+ }),
866
+ prisma.badges.create({
867
+ data: {
868
+ title: 'Para o infinito e mais além!',
869
+ condition: 'Conseguiu mais de 75 pts nesta iniciativa.',
870
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSryem8CAtiWUobHQ07sC9apn2Pe4g1ldhE3XOF", alt: "Fogo" },
871
+ points: 10,
872
+ initiative_id: initiatives[0].id,
873
+ type_id: badgeTypes[1].id,
874
+ is_draft: false
875
+ }
876
+ }),
877
+
878
+ // Momento 1 (moment_id: 1, initiative_id: 1)
879
+ prisma.badges.create({
880
+ data: {
881
+ title: 'Sem desculpas',
882
+ condition: 'Chegar a horas ao Workshop.',
883
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrHBkS5EKR8ktlrWuT6CUy1BJpS4w3jQVgdea5", alt: "clock" },
884
+ points: 5,
885
+ initiative_id: initiatives[0].id,
886
+ moment_id: moments[0].id,
887
+ type_id: badgeTypes[1].id,
888
+ is_draft: false
889
+ }
890
+ }),
891
+ prisma.badges.create({
892
+ data: {
893
+ title: 'Quem sou eu?',
894
+ condition: 'Fazer uma apresentação pessoal em menos de 15 segundos.',
895
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrx6XwxZcPIjfb2LFmMHeA1DlihX053SYtCJGo", alt: "ID" },
896
+ points: 5,
897
+ initiative_id: initiatives[0].id,
898
+ moment_id: moments[0].id,
899
+ type_id: badgeTypes[1].id,
900
+ is_draft: false
901
+ }
902
+ }),
903
+ prisma.badges.create({
904
+ data: {
905
+ title: 'Caixinha de surpresas',
906
+ condition: 'Partilhar uma curiosidade única sobre si durante a apresentação pessoal.',
907
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrRp9XuLxch9iaKOqHWX37NsJrgVYG6jlIv8oe", alt: "camera" },
908
+ points: 5,
909
+ initiative_id: initiatives[0].id,
910
+ moment_id: moments[0].id,
911
+ type_id: badgeTypes[1].id,
912
+ is_draft: false
913
+ }
914
+ }),
915
+
916
+ // Momento 2 (moment_id: 2, initiative_id: 1)
917
+ prisma.badges.create({
918
+ data: {
919
+ title: 'Bom ouvinte',
920
+ condition: 'Assistir à apresentação do protótipo do Ser+ Digital.',
921
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrAhdMBB9XYNM8IxrtdTk1pB0uZhfROzcE5qse", alt: "powerpoint" },
922
+ points: 3,
923
+ initiative_id: initiatives[0].id,
924
+ moment_id: moments[1].id,
925
+ type_id: badgeTypes[1].id,
926
+ is_draft: false
927
+ }
928
+ }),
929
+ prisma.badges.create({
930
+ data: {
931
+ title: 'Participante ativo',
932
+ condition: 'Colocar uma questão pertinente.',
933
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSraRxhtZZOKh2H5Y8uaAUyldEs7npPZeqfVzxm", alt: "idea2" },
934
+ points: 5,
935
+ initiative_id: initiatives[0].id,
936
+ moment_id: moments[1].id,
937
+ type_id: badgeTypes[1].id,
938
+ is_draft: false
939
+ }
940
+ }),
941
+ prisma.badges.create({
942
+ data: {
943
+ title: 'Cronista',
944
+ condition: 'Tirou notas durante a apresentação.',
945
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr5EVnQQhEzQdCKgD4SqeXHLfuG1ZhoxcwviaM", alt: "hipothesis a" },
946
+ points: 5,
947
+ initiative_id: initiatives[0].id,
948
+ moment_id: moments[1].id,
949
+ type_id: badgeTypes[1].id,
950
+ is_draft: false
951
+ }
952
+ }),
953
+
954
+ // Momento 3 (moment_id: 3, initiative_id: 1)
955
+ prisma.badges.create({
956
+ data: {
957
+ title: 'A união faz a força',
958
+ condition: 'Participar num grupo de trabalho.',
959
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSreStrfPEUHXQjC0wcl6D2xpLvEsF3RATdhNKk", alt: "handshake" },
960
+ points: 8,
961
+ initiative_id: initiatives[0].id,
962
+ moment_id: moments[2].id,
963
+ type_id: badgeTypes[1].id,
964
+ is_draft: false
965
+ }
966
+ }),
967
+ prisma.badges.create({
968
+ data: {
969
+ title: 'Pensar fora da caixa',
970
+ condition: 'Decidir a iniciativa da UA a gamificar.',
971
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrpelbFh5y6dIgcXEtmneNDBiWbLVrxa1Gpvwf", alt: "check" },
972
+ points: 8,
973
+ initiative_id: initiatives[0].id,
974
+ moment_id: moments[2].id,
975
+ type_id: badgeTypes[1].id,
976
+ is_draft: false
977
+ }
978
+ }),
979
+ prisma.badges.create({
980
+ data: {
981
+ title: 'Masterchef',
982
+ condition: 'Escolher os ingredientes para a narrativa.',
983
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrGvxEr2JKTagIUuetqldkWnVE28wOsNiFhpoy", alt: "Suggestion 4" },
984
+ points: 10,
985
+ initiative_id: initiatives[0].id,
986
+ moment_id: moments[2].id,
987
+ type_id: badgeTypes[1].id,
988
+ is_draft: false
989
+ }
990
+ }),
991
+
992
+ // Momento 4 (moment_id: 4, initiative_id: 1)
993
+ prisma.badges.create({
994
+ data: {
995
+ title: 'Abracadabra',
996
+ condition: 'Personalizou a narrativa gerada por inteligência artificial.',
997
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrtP2VMhFFVI5YbN7EBpzg0JQ3kMH6Z24LymCf", alt: "Magic" },
998
+ points: 10,
999
+ initiative_id: initiatives[0].id,
1000
+ moment_id: moments[3].id,
1001
+ type_id: badgeTypes[1].id,
1002
+ is_draft: false
1003
+ }
1004
+ }),
1005
+ prisma.badges.create({
1006
+ data: {
1007
+ title: 'Badges para dar vender',
1008
+ condition: 'Criou o mínimo de dois badges para cada momento.',
1009
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrGGKKwCJKTagIUuetqldkWnVE28wOsNiFhpoy", alt: "Default" },
1010
+ points: 8,
1011
+ initiative_id: initiatives[0].id,
1012
+ moment_id: moments[3].id,
1013
+ type_id: badgeTypes[1].id,
1014
+ is_draft: false
1015
+ }
1016
+ }),
1017
+ prisma.badges.create({
1018
+ data: {
1019
+ title: 'Imparáveis',
1020
+ condition: 'Pertence ao grupo que terminou primeiro as tarefas deste momento.',
1021
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr3Xbo3UWid5bzBoqIMkTswhgxVpGKlctL1HJN", alt: "Trophy" },
1022
+ points: 15,
1023
+ initiative_id: initiatives[0].id,
1024
+ moment_id: moments[3].id,
1025
+ type_id: badgeTypes[1].id,
1026
+ is_draft: false
1027
+ }
1028
+ }),
1029
+
1030
+ // Momento 5 (moment_id: 5, initiative_id: 1)
1031
+ prisma.badges.create({
1032
+ data: {
1033
+ title: 'Juízo final',
1034
+ condition: 'Fazer a apresentação do trabalho.',
1035
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrSKOqMLkrlnJICFZgOeWX6vfcAY9xd8uaG7mi", alt: "mic" },
1036
+ points: 25,
1037
+ initiative_id: initiatives[0].id,
1038
+ moment_id: moments[4].id,
1039
+ type_id: badgeTypes[1].id,
1040
+ is_draft: false
1041
+ }
1042
+ }),
1043
+ prisma.badges.create({
1044
+ data: {
1045
+ title: 'Pioneiro',
1046
+ condition: 'Responder ao formulário para ser contactado sobre os avanços da plataforma.',
1047
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr9UdpHhj3hOybdgS7mvzAn6HNlBT01VCIkoLj", alt: "ajudar" },
1048
+ points: 5,
1049
+ initiative_id: initiatives[0].id,
1050
+ moment_id: moments[4].id,
1051
+ type_id: badgeTypes[1].id,
1052
+ is_draft: false
1053
+ }
1054
+ }),
1055
+
1056
+ // === INITIATIVE 2 (Oceano) ===
1057
+
1058
+ // Badges sem momento (initiative_id: 2)
1059
+ prisma.badges.create({
1060
+ data: {
1061
+ title: 'Questão Científica',
1062
+ condition: 'Colocar uma questão pertinente durante a iniciativa.',
1063
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr4HZxUeXhfPyHbcMR76uS0doqxpCaVBOe5Jtk", alt: "cientist" },
1064
+ points: 15,
1065
+ initiative_id: initiatives[1].id,
1066
+ type_id: badgeTypes[1].id,
1067
+ is_draft: false
1068
+ }
1069
+ }),
1070
+ prisma.badges.create({
1071
+ data: {
1072
+ title: 'Horizonte Científico',
1073
+ condition: 'Conseguir recolher dados junto da comunidade.',
1074
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSroQuaoegseVUap28FPwcvyNnfA9XC3m14Hrgi", alt: "flex" },
1075
+ points: 25,
1076
+ initiative_id: initiatives[1].id,
1077
+ type_id: badgeTypes[1].id,
1078
+ is_draft: false
1079
+ }
1080
+ }),
1081
+
1082
+ // Momento 6 (moment_id: 6, initiative_id: 2)
1083
+ prisma.badges.create({
1084
+ data: {
1085
+ title: 'Maré a Favor',
1086
+ condition: 'Chegar a horas à sessão de formação.',
1087
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrhpCDCqWYOdtK9iIS1ekza0sJr7RojFDCvw45", alt: "Barco" },
1088
+ points: 5,
1089
+ initiative_id: initiatives[1].id,
1090
+ moment_id: moments[5].id,
1091
+ type_id: badgeTypes[1].id,
1092
+ is_draft: false
1093
+ }
1094
+ }),
1095
+ prisma.badges.create({
1096
+ data: {
1097
+ title: 'Identificação Científica',
1098
+ condition: 'Realizar uma apresentação pessoal clara e objetiva.',
1099
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr13DsTsdOBcdGrC7z9k0wAJZvTlWhDsuRX4fe", alt: "chat" },
1100
+ points: 5,
1101
+ initiative_id: initiatives[1].id,
1102
+ moment_id: moments[5].id,
1103
+ type_id: badgeTypes[1].id,
1104
+ is_draft: false
1105
+ }
1106
+ }),
1107
+ prisma.badges.create({
1108
+ data: {
1109
+ title: 'Perfil Oceânico',
1110
+ condition: 'Partilhar um interesse, curiosidade ou motivação ligada ao mar.',
1111
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrR6bHX6xch9iaKOqHWX37NsJrgVYG6jlIv8oe", alt: "Boia" },
1112
+ points: 5,
1113
+ initiative_id: initiatives[1].id,
1114
+ moment_id: moments[5].id,
1115
+ type_id: badgeTypes[1].id,
1116
+ is_draft: false
1117
+ }
1118
+ }),
1119
+
1120
+ // Momento 7 (moment_id: 7, initiative_id: 2)
1121
+ prisma.badges.create({
1122
+ data: {
1123
+ title: 'Pulmões do Planeta',
1124
+ condition: 'Acompanhar atentamente a exposição sobre o papel do oceano no sistema terrestre.',
1125
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrSjcrLgkrlnJICFZgOeWX6vfcAY9xd8uaG7mi", alt: "lungs" },
1126
+ points: 7,
1127
+ initiative_id: initiatives[1].id,
1128
+ moment_id: moments[6].id,
1129
+ type_id: badgeTypes[1].id,
1130
+ is_draft: false
1131
+ }
1132
+ }),
1133
+ prisma.badges.create({
1134
+ data: {
1135
+ title: 'Registo de Campo',
1136
+ condition: 'Tomar notas relevantes durante a formação.',
1137
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrU0QsPClL6W1THXSrQtuymq2VZP4NMJ3YeEcg", alt: "Exp 1" },
1138
+ points: 4,
1139
+ initiative_id: initiatives[1].id,
1140
+ moment_id: moments[6].id,
1141
+ type_id: badgeTypes[1].id,
1142
+ is_draft: false
1143
+ }
1144
+ }),
1145
+
1146
+ // Momento 8 (moment_id: 8, initiative_id: 2)
1147
+ prisma.badges.create({
1148
+ data: {
1149
+ title: 'Zona Crítica',
1150
+ condition: 'Identificar um desafio, risco ou limitação no fenómeno analisado.',
1151
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrtyhc6rFFVI5YbN7EBpzg0JQ3kMH6Z24LymCf", alt: "Mapa" },
1152
+ points: 10,
1153
+ initiative_id: initiatives[1].id,
1154
+ moment_id: moments[7].id,
1155
+ type_id: badgeTypes[1].id,
1156
+ is_draft: false
1157
+ }
1158
+ }),
1159
+ prisma.badges.create({
1160
+ data: {
1161
+ title: 'Formulação do Modelo',
1162
+ condition: 'Definir variáveis, contexto e objetivos da análise.',
1163
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSre45ne9EUHXQjC0wcl6D2xpLvEsF3RATdhNKk", alt: "feliz" },
1164
+ points: 12,
1165
+ initiative_id: initiatives[1].id,
1166
+ moment_id: moments[7].id,
1167
+ type_id: badgeTypes[1].id,
1168
+ is_draft: false
1169
+ }
1170
+ }),
1171
+
1172
+ // Momento 9 (moment_id: 9, initiative_id: 2)
1173
+ prisma.badges.create({
1174
+ data: {
1175
+ title: 'Integração de Dados',
1176
+ condition: 'Ajustar ou aprofundar a análise com apoio digital.',
1177
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrolSnyegseVUap28FPwcvyNnfA9XC3m14Hrgi", alt: "Badge33" },
1178
+ points: 10,
1179
+ initiative_id: initiatives[1].id,
1180
+ moment_id: moments[8].id,
1181
+ type_id: badgeTypes[1].id,
1182
+ is_draft: false
1183
+ }
1184
+ }),
1185
+ prisma.badges.create({
1186
+ data: {
1187
+ title: 'Estrutura Científica',
1188
+ condition: 'Construir uma explicação organizada e consistente.',
1189
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrlfBPQYDRamYdQ0ETLONJvP6nG1Aj7sqt5IFe", alt: "graph" },
1190
+ points: 10,
1191
+ initiative_id: initiatives[1].id,
1192
+ moment_id: moments[8].id,
1193
+ type_id: badgeTypes[1].id,
1194
+ is_draft: false
1195
+ }
1196
+ }),
1197
+
1198
+ // Momento 10 (moment_id: 10, initiative_id: 2)
1199
+ prisma.badges.create({
1200
+ data: {
1201
+ title: 'Comunicação Oceânica',
1202
+ condition: 'Apresentar os resultados da análise.',
1203
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSreoa3qbEUHXQjC0wcl6D2xpLvEsF3RATdhNKk", alt: "rocket" },
1204
+ points: 15,
1205
+ initiative_id: initiatives[1].id,
1206
+ moment_id: moments[9].id,
1207
+ type_id: badgeTypes[1].id,
1208
+ is_draft: false
1209
+ }
1210
+ }),
1211
+ prisma.badges.create({
1212
+ data: {
1213
+ title: 'Investigador em Formação',
1214
+ condition: 'Demonstrar interesse em aprofundar conhecimentos ou participar em futuras formações.',
1215
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSraMa7dlOKh2H5Y8uaAUyldEs7npPZeqfVzxmk", alt: "Lupa" },
1216
+ points: 6,
1217
+ initiative_id: initiatives[1].id,
1218
+ moment_id: moments[9].id,
1219
+ type_id: badgeTypes[1].id,
1220
+ is_draft: false
1221
+ }
1222
+ }),
1223
+
1224
+ // === INITIATIVE 3 (Gestão de Stress) ===
1225
+
1226
+ // Badges sem momento (initiative_id: 3)
1227
+ prisma.badges.create({
1228
+ data: {
1229
+ title: 'No Controlo',
1230
+ condition: 'Participação num momento de partilha guiada no inicio do talk onde identifica um factor de stress.',
1231
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSraJeb7mOKh2H5Y8uaAUyldEs7npPZeqfVzxmk", alt: "speedy" },
1232
+ points: 10,
1233
+ initiative_id: initiatives[2].id,
1234
+ type_id: badgeTypes[1].id,
1235
+ is_draft: false
1236
+ }
1237
+ }),
1238
+ prisma.badges.create({
1239
+ data: {
1240
+ title: 'Limpeza Mental',
1241
+ condition: 'Reconheceu uma tarefa, hábito ou pensamento que pode ser reduzido, delegado ou eliminado para diminuir o stress numa dinâmica de grupo.',
1242
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrRN2wAWxch9iaKOqHWX37NsJrgVYG6jlIv8oe", alt: "broom" },
1243
+ points: 8,
1244
+ initiative_id: initiatives[2].id,
1245
+ type_id: badgeTypes[1].id,
1246
+ is_draft: false
1247
+ }
1248
+ }),
1249
+ prisma.badges.create({
1250
+ data: {
1251
+ title: 'Um Passo de Cada Vez',
1252
+ condition: 'Definiu um pequeno passo realista a implementar após o talk para melhorar a gestão do stress. Compromisso pessoal registado no final do talk.',
1253
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr0nnRxnLSJwWzOQn7uRrKHSj4d0oYDXVgFZTG", alt: "sneaker" },
1254
+ points: 8,
1255
+ initiative_id: initiatives[2].id,
1256
+ type_id: badgeTypes[1].id,
1257
+ is_draft: false
1258
+ }
1259
+ }),
1260
+ prisma.badges.create({
1261
+ data: {
1262
+ title: 'O Que Levas Contigo',
1263
+ condition: 'Indicação livre num formulário de encerramento onde identifica, pelo menos, um recurso de apoio (pessoa, ferramenta, hábito ou serviço) que pode utilizar quando se sente sobrecarregado.',
1264
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrtqA3HgFFVI5YbN7EBpzg0JQ3kMH6Z24LymCf", alt: "Mochila" },
1265
+ points: 15,
1266
+ initiative_id: initiatives[2].id,
1267
+ type_id: badgeTypes[1].id,
1268
+ is_draft: false
1269
+ }
1270
+ }),
1271
+
1272
+ // === INITIATIVE 4 (Visita RTP) ===
1273
+
1274
+ // Badges sem momento (initiative_id: 4)
1275
+ prisma.badges.create({
1276
+ data: {
1277
+ title: 'Equipa em Cena',
1278
+ condition: 'Conseguiu conhecer um elemento da RTP, fazendo-lhe uma pergunta que este achou relevante.',
1279
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrBmSbfdQLEzruf6M1Oe0FHVp9bPSl4tTJ72DW", alt: "Networking" },
1280
+ points: 20,
1281
+ initiative_id: initiatives[3].id,
1282
+ type_id: badgeTypes[1].id,
1283
+ is_draft: false
1284
+ }
1285
+ }),
1286
+ prisma.badges.create({
1287
+ data: {
1288
+ title: 'Profissional em Estúdio',
1289
+ condition: 'Respeitou as regras da RTP e as orientações dadas durante a visita.',
1290
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrlvdxycYDRamYdQ0ETLONJvP6nG1Aj7sqt5IF", alt: "cheiroso" },
1291
+ points: 5,
1292
+ initiative_id: initiatives[3].id,
1293
+ type_id: badgeTypes[1].id,
1294
+ is_draft: false
1295
+ }
1296
+ }),
1297
+ prisma.badges.create({
1298
+ data: {
1299
+ title: 'Bastidores Revelados',
1300
+ condition: 'Atenção e envolvimento ao longo da visita, validado pela participação nos momentos-chave.',
1301
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSriiZoYk4PwofaVzLj9OnyBxe7RK4tG5qvl6kT", alt: "Suggestion 2" },
1302
+ points: 10,
1303
+ initiative_id: initiatives[3].id,
1304
+ type_id: badgeTypes[1].id,
1305
+ is_draft: false
1306
+ }
1307
+ }),
1308
+
1309
+ // Momento 11 (moment_id: 11, initiative_id: 4)
1310
+ prisma.badges.create({
1311
+ data: {
1312
+ title: 'Entrar no Papel',
1313
+ condition: 'Chegada pontual e atenção ao briefing inicial.',
1314
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrMmvekT7BOrzfw4DsYHMexovAbXtKlFCaiT2p", alt: "Fase 4" },
1315
+ points: 5,
1316
+ initiative_id: initiatives[3].id,
1317
+ moment_id: moments[10].id,
1318
+ type_id: badgeTypes[1].id,
1319
+ is_draft: false
1320
+ }
1321
+ }),
1322
+ prisma.badges.create({
1323
+ data: {
1324
+ title: 'Presença em Cena',
1325
+ condition: 'Participação respeitosa e foco durante a introdução à visita.',
1326
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrA5TbA29XYNM8IxrtdTk1pB0uZhfROzcE5qse", alt: "Exp 4" },
1327
+ points: 5,
1328
+ initiative_id: initiatives[3].id,
1329
+ moment_id: moments[10].id,
1330
+ type_id: badgeTypes[1].id,
1331
+ is_draft: false
1332
+ }
1333
+ }),
1334
+
1335
+ // Momento 12 (moment_id: 12, initiative_id: 4)
1336
+ prisma.badges.create({
1337
+ data: {
1338
+ title: 'Olho de Câmara',
1339
+ condition: 'Acompanhamento atento das explicações e dos espaços visitados.',
1340
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrUhtv3NlL6W1THXSrQtuymq2VZP4NMJ3YeEcg", alt: "Camara" },
1341
+ points: 8,
1342
+ initiative_id: initiatives[3].id,
1343
+ moment_id: moments[11].id,
1344
+ type_id: badgeTypes[1].id,
1345
+ is_draft: false
1346
+ }
1347
+ }),
1348
+ prisma.badges.create({
1349
+ data: {
1350
+ title: 'Plano Inesperado',
1351
+ condition: 'Colocou uma questão ou comentou um detalhe técnico não evidente.',
1352
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrFV5q5n3HmSe1NJpvPa2hnUgD05o6qMGExIij", alt: "Suggestion 1" },
1353
+ points: 10,
1354
+ initiative_id: initiatives[3].id,
1355
+ moment_id: moments[11].id,
1356
+ type_id: badgeTypes[1].id,
1357
+ is_draft: false
1358
+ }
1359
+ }),
1360
+ prisma.badges.create({
1361
+ data: {
1362
+ title: 'Base Técnica',
1363
+ condition: 'Identificação (oral ou escrita) de pelo menos um elemento técnico essencial observado.',
1364
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrcYVObJyLVgUbO4tHI3YsC786DxpPMaGKvzou", alt: "Rock" },
1365
+ points: 12,
1366
+ initiative_id: initiatives[3].id,
1367
+ moment_id: moments[11].id,
1368
+ type_id: badgeTypes[1].id,
1369
+ is_draft: false
1370
+ }
1371
+ }),
1372
+
1373
+ // Momento 13 (moment_id: 13, initiative_id: 4)
1374
+ prisma.badges.create({
1375
+ data: {
1376
+ title: 'Novo Olhar',
1377
+ condition: 'Participação numa reflexão final oral.',
1378
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrx9qsNicPIjfb2LFmMHeA1DlihX053SYtCJGo", alt: "Sunrise" },
1379
+ points: 8,
1380
+ initiative_id: initiatives[3].id,
1381
+ moment_id: moments[12].id,
1382
+ type_id: badgeTypes[1].id,
1383
+ is_draft: false
1384
+ }
1385
+ }),
1386
+ prisma.badges.create({
1387
+ data: {
1388
+ title: 'Levar dos Bastidores',
1389
+ condition: 'Registo de pelo menos uma aprendizagem-chave no quadro da RTP.',
1390
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr37Vteyid5bzBoqIMkTswhgxVpGKlctL1HJN0", alt: "idea1" },
1391
+ points: 12,
1392
+ initiative_id: initiatives[3].id,
1393
+ moment_id: moments[12].id,
1394
+ type_id: badgeTypes[1].id,
1395
+ is_draft: false
1396
+ }
1397
+ }),
1398
+
1399
+ // === INITIATIVE 5 (Taça UA - Basquetebol 3x3) ===
1400
+
1401
+ // Badges sem momento (initiative_id: 5)
1402
+ prisma.badges.create({
1403
+ data: {
1404
+ title: 'Campeões da Taça UA',
1405
+ condition: 'Venceu a final da Taça UA · Basquetebol 3x3.',
1406
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrfJlY6u1aNO8JgEdTYKvmSr3sp0VoIUHW6Lkl", alt: "1st" },
1407
+ points: 25,
1408
+ initiative_id: initiatives[4].id,
1409
+ type_id: badgeTypes[1].id,
1410
+ is_draft: false
1411
+ }
1412
+ }),
1413
+ prisma.badges.create({
1414
+ data: {
1415
+ title: 'Finalistas UA',
1416
+ condition: 'Disputou a final da competição.',
1417
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrqcjuuJjRC96QvfIrUdObleDw30ZS1ah58Mpm", alt: "2nd" },
1418
+ points: 20,
1419
+ initiative_id: initiatives[4].id,
1420
+ type_id: badgeTypes[1].id,
1421
+ is_draft: false
1422
+ }
1423
+ }),
1424
+ prisma.badges.create({
1425
+ data: {
1426
+ title: 'Bronze também é pódio',
1427
+ condition: 'Alcançou o 3.º lugar da competição.',
1428
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrolSnyegseVUap28FPwcvyNnfA9XC3m14Hrgi", alt: "3rd" },
1429
+ points: 15,
1430
+ initiative_id: initiatives[4].id,
1431
+ type_id: badgeTypes[1].id,
1432
+ is_draft: false
1433
+ }
1434
+ }),
1435
+ prisma.badges.create({
1436
+ data: {
1437
+ title: 'Arranque Rápido',
1438
+ condition: 'Participou em primeiro um jogo do torneio. Reconhece o início ativo na competição.',
1439
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr30mHXfid5bzBoqIMkTswhgxVpGKlctL1HJN0", alt: "sandwish" },
1440
+ points: 5,
1441
+ initiative_id: initiatives[4].id,
1442
+ type_id: badgeTypes[1].id,
1443
+ is_draft: false
1444
+ }
1445
+ }),
1446
+ prisma.badges.create({
1447
+ data: {
1448
+ title: 'Defesa de Gelo',
1449
+ condition: 'Premeia equipa com menos golos sofridos.',
1450
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSriIAktV4PwofaVzLj9OnyBxe7RK4tG5qvl6kT", alt: "cold" },
1451
+ points: 7,
1452
+ initiative_id: initiatives[4].id,
1453
+ type_id: badgeTypes[1].id,
1454
+ is_draft: false
1455
+ }
1456
+ }),
1457
+ prisma.badges.create({
1458
+ data: {
1459
+ title: 'Resistência em Campo',
1460
+ condition: 'Premeia jogadores que não falharam nenhum jogo da sua equipa.',
1461
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrsduWnDfH5AeUxoEMB97YNQOpqhldvz8ZSgLk", alt: "sample2" },
1462
+ points: 10,
1463
+ initiative_id: initiatives[4].id,
1464
+ type_id: badgeTypes[1].id,
1465
+ is_draft: false
1466
+ }
1467
+ }),
1468
+ prisma.badges.create({
1469
+ data: {
1470
+ title: 'Jogo Limpo',
1471
+ condition: 'Não recebeu advertências disciplinares durante a competição.',
1472
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrOxRSfdgqFubETHlUmrBOtIDyS1iwh5VQJfaP", alt: "hand" },
1473
+ points: 15,
1474
+ initiative_id: initiatives[4].id,
1475
+ type_id: badgeTypes[1].id,
1476
+ is_draft: false
1477
+ }
1478
+ }),
1479
+ prisma.badges.create({
1480
+ data: {
1481
+ title: 'Estratégia Criativa',
1482
+ condition: 'Foi treinador de uma das equipas participantes.',
1483
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrOxA5AEuqFubETHlUmrBOtIDyS1iwh5VQJfaP", alt: "frankenstein" },
1484
+ points: 40,
1485
+ initiative_id: initiatives[4].id,
1486
+ type_id: badgeTypes[1].id,
1487
+ is_draft: false
1488
+ }
1489
+ }),
1490
+ prisma.badges.create({
1491
+ data: {
1492
+ title: 'Coordenação em Campo',
1493
+ condition: 'Esteve na preparação da competição.',
1494
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrqKxXTRC96QvfIrUdObleDw30ZS1ah58MpmLN", alt: "Suit" },
1495
+ points: 20,
1496
+ initiative_id: initiatives[4].id,
1497
+ type_id: badgeTypes[1].id,
1498
+ is_draft: false
1499
+ }
1500
+ }),
1501
+ prisma.badges.create({
1502
+ data: {
1503
+ title: 'Bancada Limpa',
1504
+ condition: 'Adeptos da bancada que no final do torneio ficam e ajudam a limpar o espaço onde estiveram.',
1505
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrERXUIwamVQy5rlKIB7x4Sg2ftjuAWMTPJd8Z", alt: "trash" },
1506
+ points: 8,
1507
+ initiative_id: initiatives[4].id,
1508
+ type_id: badgeTypes[1].id,
1509
+ is_draft: false
1510
+ }
1511
+ }),
1512
+ prisma.badges.create({
1513
+ data: {
1514
+ title: 'Claque UA',
1515
+ condition: 'Adeptos que apoiaram a equipa de forma respeitosa.',
1516
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr3FCww2id5bzBoqIMkTswhgxVpGKlctL1HJN0", alt: "party poper" },
1517
+ points: 8,
1518
+ initiative_id: initiatives[4].id,
1519
+ type_id: badgeTypes[1].id,
1520
+ is_draft: false
1521
+ }
1522
+ }),
1523
+ prisma.badges.create({
1524
+ data: {
1525
+ title: 'Espírito Desportivo',
1526
+ condition: 'Demonstrou fair-play durante a competição.',
1527
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrESUu0RamVQy5rlKIB7x4Sg2ftjuAWMTPJd8Z", alt: "borboleta" },
1528
+ points: 10,
1529
+ initiative_id: initiatives[4].id,
1530
+ type_id: badgeTypes[1].id,
1531
+ is_draft: false
1532
+ }
1533
+ }),
1534
+ prisma.badges.create({
1535
+ data: {
1536
+ title: 'Desportista Sereno',
1537
+ condition: 'Acabou a competição sem faltas.',
1538
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrMlGCOH7BOrzfw4DsYHMexovAbXtKlFCaiT2p", alt: "Shrug" },
1539
+ points: 10,
1540
+ initiative_id: initiatives[4].id,
1541
+ type_id: badgeTypes[1].id,
1542
+ is_draft: false
1543
+ }
1544
+ }),
1545
+ prisma.badges.create({
1546
+ data: {
1547
+ title: 'Sabedoria em Jogo',
1548
+ condition: 'Árbitros da competição.',
1549
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrgBs77XOzJiSr6qDHbBwQa7Ct8dy4ju9APmf0", alt: "yoda" },
1550
+ points: 40,
1551
+ initiative_id: initiatives[4].id,
1552
+ type_id: badgeTypes[1].id,
1553
+ is_draft: false
1554
+ }
1555
+ }),
1556
+
1557
+ // === INITIATIVE 6 (Convívio) ===
1558
+
1559
+ // Badges sem momento (initiative_id: 6)
1560
+ prisma.badges.create({
1561
+ data: {
1562
+ title: 'Mesa Pronta',
1563
+ condition: 'Esteve presente durante o período de partilha de comida.',
1564
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr2MGe6pqGrECZQXTIv4We3po6tkVxHSFzu0N8", alt: "plate" },
1565
+ points: 12,
1566
+ initiative_id: initiatives[5].id,
1567
+ type_id: badgeTypes[1].id,
1568
+ is_draft: false
1569
+ }
1570
+ }),
1571
+ prisma.badges.create({
1572
+ data: {
1573
+ title: 'Brinde Informal',
1574
+ condition: 'Participou num brinde ou momento social informal durante o convívio.',
1575
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrFbrWqb3HmSe1NJpvPa2hnUgD05o6qMGExIij", alt: "lata" },
1576
+ points: 7,
1577
+ initiative_id: initiatives[5].id,
1578
+ type_id: badgeTypes[1].id,
1579
+ is_draft: false
1580
+ }
1581
+ }),
1582
+ prisma.badges.create({
1583
+ data: {
1584
+ title: 'Até ao Fim',
1585
+ condition: 'Presença no momento final da iniciativa.',
1586
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr3yXYd9id5bzBoqIMkTswhgxVpGKlctL1HJN0", alt: "folha_dupla" },
1587
+ points: 10,
1588
+ initiative_id: initiatives[5].id,
1589
+ type_id: badgeTypes[1].id,
1590
+ is_draft: false
1591
+ }
1592
+ }),
1593
+ prisma.badges.create({
1594
+ data: {
1595
+ title: 'Convívio Completo',
1596
+ condition: 'Levou comida e bebida para partilhar com o grupo.',
1597
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrBvTx4GLEzruf6M1Oe0FHVp9bPSl4tTJ72DWk", alt: "recolha" },
1598
+ points: 15,
1599
+ initiative_id: initiatives[5].id,
1600
+ type_id: badgeTypes[1].id,
1601
+ is_draft: false
1602
+ }
1603
+ }),
1604
+ prisma.badges.create({
1605
+ data: {
1606
+ title: 'ShiftE Check-in',
1607
+ condition: 'Presença registada no ShiftE – Empreendedorismo e Empregabilidade.',
1608
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrOA6nZGqFubETHlUmrBOtIDyS1iwh5VQJfaPG", alt: "ShiftE Check-in" },
1609
+ points: 10,
1610
+ initiative_id: initiatives[6].id,
1611
+ type_id: badgeTypes[1].id,
1612
+ is_draft: false
1613
+ }
1614
+ }),
1615
+ prisma.badges.create({
1616
+ data: {
1617
+ title: 'ShiftE Stand',
1618
+ condition: 'Visitou um stand da Feira de Emprego, interagindo com um representante.',
1619
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrE7iKnYamVQy5rlKIB7x4Sg2ftjuAWMTPJd8Z", alt: "ShiftE Stand" },
1620
+ points: 15,
1621
+ initiative_id: initiatives[6].id,
1622
+ type_id: badgeTypes[1].id,
1623
+ is_draft: false
1624
+ }
1625
+ }),
1626
+ prisma.badges.create({
1627
+ data: {
1628
+ title: 'ShiftE Entrevista',
1629
+ condition: 'Participou numa entrevista presencial durante o ShiftE.',
1630
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrR7dkWXxch9iaKOqHWX37NsJrgVYG6jlIv8oe", alt: "ShiftE Entrevista" },
1631
+ points: 25,
1632
+ initiative_id: initiatives[6].id,
1633
+ type_id: badgeTypes[1].id,
1634
+ is_draft: false
1635
+ }
1636
+ }),
1637
+ prisma.badges.create({
1638
+ data: {
1639
+ title: 'ShiftE Abertura',
1640
+ condition: 'Esteve presente na sessão oficial de abertura do ShiftE.',
1641
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrEbzE4YamVQy5rlKIB7x4Sg2ftjuAWMTPJd8Z", alt: "ShiftE Abertura" },
1642
+ points: 10,
1643
+ initiative_id: initiatives[6].id,
1644
+ moment_id: moments[13].id,
1645
+ type_id: badgeTypes[1].id,
1646
+ is_draft: false
1647
+ }
1648
+ }),
1649
+ prisma.badges.create({
1650
+ data: {
1651
+ title: 'Olhos no futuro',
1652
+ condition: 'Assistiu à talk "Empreendedorismo: O futuro começa agora".',
1653
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrYcDZ0joDGuiYCSke3U2wrLtcH6bjaFNX7I4Z", alt: "Olhos no futuro" },
1654
+ points: 20,
1655
+ initiative_id: initiatives[6].id,
1656
+ moment_id: moments[13].id,
1657
+ type_id: badgeTypes[1].id,
1658
+ is_draft: false
1659
+ }
1660
+ }),
1661
+ prisma.badges.create({
1662
+ data: {
1663
+ title: 'Modo Turbo',
1664
+ condition: 'Assistiu ao workshop "Produtividade com AI".',
1665
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrJOt3l6e19GZbqgJ0mczt5lMWY4XkTU8NCpI7", alt: "Modo Turbo" },
1666
+ points: 20,
1667
+ initiative_id: initiatives[6].id,
1668
+ moment_id: moments[14].id,
1669
+ type_id: badgeTypes[1].id,
1670
+ is_draft: false
1671
+ }
1672
+ }),
1673
+ prisma.badges.create({
1674
+ data: {
1675
+ title: 'Dentro da Caixa',
1676
+ condition: 'Acompanhou o painel "Intraempreendedorismo – Inovação e Proatividade".',
1677
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrWc0GztM4O8P2SZo1HCka9LG36hRKumwlzQTp", alt: "Dentro da Caixa" },
1678
+ points: 20,
1679
+ initiative_id: initiatives[6].id,
1680
+ moment_id: moments[14].id,
1681
+ type_id: badgeTypes[1].id,
1682
+ is_draft: false
1683
+ }
1684
+ }),
1685
+ prisma.badges.create({
1686
+ data: {
1687
+ title: 'Troca de Saber',
1688
+ condition: 'Participou no Encontro de Mentores.',
1689
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrjKrFPRqvVZSTbg4tMDlQn18P3srcak5WyvFf", alt: "Troca de Saber" },
1690
+ points: 25,
1691
+ initiative_id: initiatives[6].id,
1692
+ moment_id: moments[14].id,
1693
+ type_id: badgeTypes[1].id,
1694
+ is_draft: false
1695
+ }
1696
+ }),
1697
+ prisma.badges.create({
1698
+ data: {
1699
+ title: 'Negociação',
1700
+ condition: 'Assistiu à talk "Técnicas de Negociação".',
1701
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrEBkDJ6amVQy5rlKIB7x4Sg2ftjuAWMTPJd8Z", alt: "Negociação" },
1702
+ points: 20,
1703
+ initiative_id: initiatives[6].id,
1704
+ type_id: badgeTypes[1].id,
1705
+ moment_id: moments[15].id,
1706
+ is_draft: false
1707
+ }
1708
+ }),
1709
+ prisma.badges.create({
1710
+ data: {
1711
+ title: 'Impacto Real',
1712
+ condition: 'Acompanhou o painel "Negócios com Propósito".',
1713
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr2hBn649pqGrECZQXTIv4We3po6tkVxHSFzu0", alt: "Impacto Real" },
1714
+ points: 20,
1715
+ initiative_id: initiatives[6].id,
1716
+ moment_id: moments[15].id,
1717
+ type_id: badgeTypes[1].id,
1718
+ is_draft: false
1719
+ }
1720
+ }),
1721
+ prisma.badges.create({
1722
+ data: {
1723
+ title: 'Shark Thesis',
1724
+ condition: 'Assistiu a apresentações do Shark Thesis.',
1725
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrhnDO5MWYOdtK9iIS1ekza0sJr7RojFDCvw45", alt: "Shark Thesis" },
1726
+ points: 20,
1727
+ initiative_id: initiatives[6].id,
1728
+ type_id: badgeTypes[1].id,
1729
+ moment_id: moments[15].id,
1730
+ is_draft: false
1731
+ }
1732
+ }),
1733
+ prisma.badges.create({
1734
+ data: {
1735
+ title: 'Pitch Your Thing',
1736
+ condition: 'Assistiu às apresentações do Pitch Your Thing.',
1737
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrhGM4MIWYOdtK9iIS1ekza0sJr7RojFDCvw45", alt: "Pitch Your Thing" },
1738
+ points: 20,
1739
+ initiative_id: initiatives[6].id,
1740
+ type_id: badgeTypes[1].id,
1741
+ moment_id: moments[16].id,
1742
+ is_draft: false
1743
+ }
1744
+ }),
1745
+ prisma.badges.create({
1746
+ data: {
1747
+ title: 'Boas Ideias',
1748
+ condition: 'Assistiu à talk "Manual de Boas Ideias".',
1749
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSryOqNOgtiWUobHQ07sC9apn2Pe4g1ldhE3XOF", alt: "Boas Ideias" },
1750
+ points: 20,
1751
+ initiative_id: initiatives[6].id,
1752
+ moment_id: moments[16].id,
1753
+ type_id: badgeTypes[1].id,
1754
+ is_draft: false
1755
+ }
1756
+ }),
1757
+ prisma.badges.create({
1758
+ data: {
1759
+ title: 'Networking',
1760
+ condition: 'Participou no momento final de networking do ShiftE.',
1761
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSr9GzJSkj3hOybdgS7mvzAn6HNlBT01VCIkoLj", alt: "Networking" },
1762
+ points: 15,
1763
+ initiative_id: initiatives[6].id,
1764
+ moment_id: moments[16].id,
1765
+ type_id: badgeTypes[1].id,
1766
+ is_draft: false
1767
+ }
1768
+ }),
1769
+
1770
+ // === BADGES DE CERTIFICADO ===
1771
+ prisma.badges.create({
1772
+ data: {
1773
+ title: 'Shark Thesis – Em Palco',
1774
+ condition: 'Apresentou a sua tese ou projeto no Shark Thesis.',
1775
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrhnDO5MWYOdtK9iIS1ekza0sJr7RojFDCvw45", alt: "Shark Thesis – Em Palco" },
1776
+ initiative_id: initiatives[6].id,
1777
+ type_id: badgeTypes[0].id,
1778
+ points: 0,
1779
+ is_draft: false
1780
+ }
1781
+ }),
1782
+ prisma.badges.create({
1783
+ data: {
1784
+ title: 'Pitch Científico',
1785
+ condition: 'Comunicou um projeto científico de forma clara e acessível.',
1786
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrhGM4MIWYOdtK9iIS1ekza0sJr7RojFDCvw45", alt: "Pitch Científico" },
1787
+ initiative_id: initiatives[6].id,
1788
+ type_id: badgeTypes[0].id,
1789
+ points: 0,
1790
+ is_draft: false
1791
+ }
1792
+ }),
1793
+
1794
+ // === BADGES DE VOLUNTÁRIO ===
1795
+ prisma.badges.create({
1796
+ data: {
1797
+ title: 'Check-in & Receção',
1798
+ condition: 'Acolhimento dos participantes, credenciação, entrega de materiais e esclarecimento de dúvidas iniciais.',
1799
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrmTkGa907cYDFObXGJLMZvx5uaAo6RVs0Ie2w", alt: "Check-in & Receção" },
1800
+ points: 25,
1801
+ initiative_id: initiatives[6].id,
1802
+ type_id: badgeTypes[1].id,
1803
+ is_draft: false
1804
+ }
1805
+ }),
1806
+ prisma.badges.create({
1807
+ data: {
1808
+ title: 'Logística Geral',
1809
+ condition: 'Apoio à montagem e organização dos espaços, materiais, sinalética e necessidades operacionais do evento.',
1810
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSruGJsHneNhOZFcjgopMintxPJvSK8q9a1I6CN", alt: "Logística Geral" },
1811
+ points: 25,
1812
+ initiative_id: initiatives[6].id,
1813
+ type_id: badgeTypes[1].id,
1814
+ is_draft: false
1815
+ }
1816
+ }),
1817
+ prisma.badges.create({
1818
+ data: {
1819
+ title: 'Apoio a Palestrantes',
1820
+ condition: 'Acompanhamento dos oradores antes, durante e após as sessões, garantindo conforto e apoio necessário.',
1821
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrF9bw8F3HmSe1NJpvPa2hnUgD05o6qMGExIij", alt: "Apoio a Palestrantes" },
1822
+ points: 30,
1823
+ initiative_id: initiatives[6].id,
1824
+ type_id: badgeTypes[1].id,
1825
+ is_draft: false
1826
+ }
1827
+ }),
1828
+ prisma.badges.create({
1829
+ data: {
1830
+ title: 'Sala & Tempo',
1831
+ condition: 'Apoio em sala, controlo de tempos das sessões, gestão de entradas, saídas e microfones.',
1832
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrxgX0qicPIjfb2LFmMHeA1DlihX053SYtCJGo", alt: "Sala & Tempo" },
1833
+ points: 20,
1834
+ initiative_id: initiatives[6].id,
1835
+ type_id: badgeTypes[1].id,
1836
+ is_draft: false
1837
+ }
1838
+ }),
1839
+ prisma.badges.create({
1840
+ data: {
1841
+ title: 'Audiovisual',
1842
+ condition: 'Gestão de som, projeção, microfones e equipamentos audiovisuais durante as sessões.',
1843
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrwLqWoh2l0nEs86qtazL74fRpJUAK2Ci5THSX", alt: "Audiovisual" },
1844
+ points: 30,
1845
+ initiative_id: initiatives[6].id,
1846
+ type_id: badgeTypes[1].id,
1847
+ is_draft: false
1848
+ }
1849
+ }),
1850
+ prisma.badges.create({
1851
+ data: {
1852
+ title: 'Tech Support',
1853
+ condition: 'Apoio técnico a apresentações, computadores, ficheiros e resolução de problemas digitais.',
1854
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrQeFVofwGwqyNrivJ7kMG3WxeAt265USQlZCE", alt: "Tech Support" },
1855
+ points: 30,
1856
+ initiative_id: initiatives[6].id,
1857
+ type_id: badgeTypes[1].id,
1858
+ is_draft: false
1859
+ }
1860
+ }),
1861
+ prisma.badges.create({
1862
+ data: {
1863
+ title: 'Comunicação',
1864
+ condition: 'Registo fotográfico e vídeo, recolha de conteúdos e apoio à comunicação do evento.',
1865
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrqna2LaRC96QvfIrUdObleDw30ZS1ah58MpmL", alt: "Comunicação" },
1866
+ points: 40,
1867
+ initiative_id: initiatives[6].id,
1868
+ type_id: badgeTypes[1].id,
1869
+ is_draft: false
1870
+ }
1871
+ }),
1872
+ prisma.badges.create({
1873
+ data: {
1874
+ title: 'Networking',
1875
+ condition: 'Apoio e dinamização de momentos de networking, interação e experiência dos participantes.',
1876
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrsFnjujfH5AeUxoEMB97YNQOpqhldvz8ZSgLk", alt: "Networking" },
1877
+ points: 25,
1878
+ initiative_id: initiatives[6].id,
1879
+ type_id: badgeTypes[1].id,
1880
+ is_draft: false
1881
+ }
1882
+ }),
1883
+ prisma.badges.create({
1884
+ data: {
1885
+ title: 'Eu estive lá',
1886
+ condition: 'Participou no Workshop Ser+ Digital.',
1887
+ img: { url: "https://8sudryl47u.ufs.sh/f/V8M5CvuiWwSrREz0QAxch9iaKOqHWX37NsJrgVYG6jlIv8oe", alt: "Ser+" },
1888
+ points: 500,
1889
+ initiative_id: initiatives[0].id,
1890
+ type_id: badgeTypes[0].id,
1891
+ is_draft: false
1892
+ }
1893
+ }),
1894
+
1895
+ // === INITIATIVE 8 (Pré-Piloto) ===
1896
+ // Badges gerais (sem momento associado)
1897
+ prisma.badges.create({
1898
+ data: {
1899
+ title: 'O caso está oficialmente aberto',
1900
+ condition: 'Se estás a ler os arquivos iniciais desta investigação é porque entraste na aplicação com sucesso! Tens muitos outros badges para receber, basta abrires e verificares o que eles estão a pedir.',
1901
+ img: { url: "", alt: "Caso aberto" },
1902
+ points: 20,
1903
+ initiative_id: initiatives[7].id,
1904
+ type_id: badgeTypes[1].id,
1905
+ is_draft: false
1906
+ }
1907
+ }),
1908
+ prisma.badges.create({
1909
+ data: {
1910
+ title: 'Estratégia e paciência',
1911
+ condition: 'O detetive bigodes tem um Cubo Mágico na mão, ele diz que o ajuda a pensar enquanto está a resolver os seus casos. Num momento de pausa sem interromper nenhuma atividade encontra um cubo mágico e em dois minutos resolver um dos lados do cubo, se fores o primeiro este badge será apenas teu!',
1912
+ img: { url: "", alt: "Cubo mágico" },
1913
+ points: 15,
1914
+ initiative_id: initiatives[7].id,
1915
+ type_id: badgeTypes[1].id,
1916
+ is_draft: false
1917
+ }
1918
+ }),
1919
+ prisma.badges.create({
1920
+ data: {
1921
+ title: 'Arquivos',
1922
+ condition: 'Existe uma informação essencial para esta investigação e precisamos de um investigador informado sobre quantos departamentos existem no Campus da Universidade de Aveiro? Insere esta informação dentro do contexto em que te encontras sem interromper a dinâmica. Sê o primeiro porque este desafio é só para um investigador!',
1923
+ img: { url: "", alt: "Arquivos" },
1924
+ points: 15,
1925
+ initiative_id: initiatives[7].id,
1926
+ type_id: badgeTypes[1].id,
1927
+ is_draft: false
1928
+ }
1929
+ }),
1930
+ prisma.badges.create({
1931
+ data: {
1932
+ title: 'Hercule Poirot',
1933
+ condition: 'Entre vários investigadores, houve um ou mais que se destacou por ser particularmente astuto e por conseguir cumprir todos os desafios deixados pelo Detetive Bigodes. Parabéns! O(s) participante(s) com melhor pontuação ganha(m) este badge.',
1934
+ img: { url: "", alt: "Hercule Poirot" },
1935
+ points: 15,
1936
+ initiative_id: initiatives[7].id,
1937
+ type_id: badgeTypes[1].id,
1938
+ is_draft: false
1939
+ }
1940
+ }),
1941
+ prisma.badges.create({
1942
+ data: {
1943
+ title: 'Algo aqui não está bem',
1944
+ condition: 'Um bom investigador tem sempre papel e caneta à mão, pronto para registar todos os detalhes e pontos importantes observados durante a sua análise técnica. Escreve numa folha os erros encontrados e as melhorias que farias à aplicação e entrega-a a um voluntário no final da sessão.',
1945
+ img: { url: "", alt: "Análise técnica" },
1946
+ points: 15,
1947
+ initiative_id: initiatives[7].id,
1948
+ type_id: badgeTypes[1].id,
1949
+ is_draft: false
1950
+ }
1951
+ }),
1952
+
1953
+ // Badges do Momento 1 (Identidade e Primeiras Pistas) - Pré-Piloto
1954
+ prisma.badges.create({
1955
+ data: {
1956
+ title: 'Todas as pessoas tem uma história',
1957
+ condition: 'Está na altura de te dares a conhecer ao Detetive Bigodes e de descobrires quem são os outros investigadores. Tens 30 segundos para te apresentares e falares um pouco sobre ti.',
1958
+ img: { url: "", alt: "História pessoal" },
1959
+ points: 20,
1960
+ initiative_id: initiatives[7].id,
1961
+ moment_id: moments[17].id,
1962
+ type_id: badgeTypes[1].id,
1963
+ is_draft: false
1964
+ }
1965
+ }),
1966
+ prisma.badges.create({
1967
+ data: {
1968
+ title: 'British detective in the room',
1969
+ condition: 'Um bom detetive sabe observar quem o rodeia. Pela forma como a costura do chapéu foi feita e pelo estilo da gabardine, um dos participantes claramente não é de cá, é um detetive do Reino Unido. Se leres esta nota a tempo, deves fazer um dos restantes badges do primeiro momento em inglês.',
1970
+ img: { url: "", alt: "British detective" },
1971
+ points: 15,
1972
+ initiative_id: initiatives[7].id,
1973
+ moment_id: moments[17].id,
1974
+ type_id: badgeTypes[1].id,
1975
+ is_draft: false
1976
+ }
1977
+ }),
1978
+ prisma.badges.create({
1979
+ data: {
1980
+ title: 'Qual é o teu álibi?',
1981
+ condition: 'Suspeitas podem surgir a cada palavra que digas, mas é melhor esclarecer já o teu álibi. Durante a tua apresentação, partilha uma curiosidade sobre a tua semana.',
1982
+ img: { url: "", alt: "Álibi" },
1983
+ points: 15,
1984
+ initiative_id: initiatives[7].id,
1985
+ moment_id: moments[17].id,
1986
+ type_id: badgeTypes[1].id,
1987
+ is_draft: false
1988
+ }
1989
+ }),
1990
+ prisma.badges.create({
1991
+ data: {
1992
+ title: 'Provas',
1993
+ condition: 'O Detetive Bigodes quer saber tudo sobre os participantes desta iniciativa. Ainda durante a tua apresentação, diz-lhe em que iniciativas gostas de participar nos teus tempos livres.',
1994
+ img: { url: "", alt: "Provas" },
1995
+ points: 20,
1996
+ initiative_id: initiatives[7].id,
1997
+ moment_id: moments[17].id,
1998
+ type_id: badgeTypes[1].id,
1999
+ is_draft: false
2000
+ }
2001
+ }),
2002
+
2003
+ // Badges do Momento 2 (A Investigação em Campo) - Pré-Piloto
2004
+ prisma.badges.create({
2005
+ data: {
2006
+ title: 'Encontrámos algo',
2007
+ condition: 'A primeira grande descoberta! Aqui começas a desvendar o que é o Ser+, através de uma explicação clara e direta. O primeiro investigador a explicar o que é Ser+ ganha este badge.',
2008
+ img: { url: "", alt: "Encontrámos algo" },
2009
+ points: 20,
2010
+ initiative_id: initiatives[7].id,
2011
+ moment_id: moments[18].id,
2012
+ type_id: badgeTypes[1].id,
2013
+ is_draft: false
2014
+ }
2015
+ }),
2016
+ prisma.badges.create({
2017
+ data: {
2018
+ title: 'Novas descobertas',
2019
+ condition: 'Um bom investigador nunca se fica pela primeira pista. Neste momento, aprofundas o conceito Ser+, acrescenta evidências relevantes, reflexões e pontos de melhoria que ajudam a completar e fortalecer a sua definição.',
2020
+ img: { url: "", alt: "Novas descobertas" },
2021
+ points: 15,
2022
+ initiative_id: initiatives[7].id,
2023
+ moment_id: moments[18].id,
2024
+ type_id: badgeTypes[1].id,
2025
+ is_draft: false
2026
+ }
2027
+ }),
2028
+ prisma.badges.create({
2029
+ data: {
2030
+ title: 'Interrogatórios',
2031
+ condition: 'Agora que já sabes o que estamos a investigar, é tempo de cruzar dados com a experiência real. Partilha a tua experiência pessoal em atividades que tenhas participado da Universidade de Aveiro, e contribui com testemunhos que enriquecem a investigação.',
2032
+ img: { url: "", alt: "Interrogatórios" },
2033
+ points: 15,
2034
+ initiative_id: initiatives[7].id,
2035
+ moment_id: moments[18].id,
2036
+ type_id: badgeTypes[1].id,
2037
+ is_draft: false
2038
+ }
2039
+ }),
2040
+ prisma.badges.create({
2041
+ data: {
2042
+ title: 'Retratos falados',
2043
+ condition: 'O Ser+ tem um símbolo enigmático, é hora de o revelar. A tua missão é descobrir, desenhar e registar o logótipo do Ser+, num quadro ou numa folha do kit, cria uma prova visual da investigação até ao final do momento.',
2044
+ img: { url: "", alt: "Retratos falados" },
2045
+ points: 15,
2046
+ initiative_id: initiatives[7].id,
2047
+ moment_id: moments[18].id,
2048
+ type_id: badgeTypes[1].id,
2049
+ is_draft: false
2050
+ }
2051
+ }),
2052
+
2053
+ // Badges do Momento 3 (A Revelação: Reconhecimento e Fecho) - Pré-Piloto
2054
+ prisma.badges.create({
2055
+ data: {
2056
+ title: 'Medalha de mérito',
2057
+ condition: 'Está na altura de reconhecermos que as pessoas que trabalham contigo, existem valores que podem ser destacados e nomeados. Oferecer soft skills aos investigadores que participarem contigo nesta iniciativa.',
2058
+ img: { url: "", alt: "Medalha de mérito" },
2059
+ points: 20,
2060
+ initiative_id: initiatives[7].id,
2061
+ moment_id: moments[19].id,
2062
+ type_id: badgeTypes[1].id,
2063
+ is_draft: false
2064
+ }
2065
+ }),
2066
+ prisma.badges.create({
2067
+ data: {
2068
+ title: 'Faro Apurado',
2069
+ condition: 'Hoje estiveste muito bem e os restantes investigadores destacaram qualidades em ti. Se recebeste uma soft skill, procura-a a partir do perfil.',
2070
+ img: { url: "", alt: "Faro Apurado" },
2071
+ points: 20,
2072
+ initiative_id: initiatives[7].id,
2073
+ moment_id: moments[19].id,
2074
+ type_id: badgeTypes[1].id,
2075
+ is_draft: false
2076
+ }
2077
+ }),
2078
+ prisma.badges.create({
2079
+ data: {
2080
+ title: 'Pista escondida',
2081
+ condition: 'Uma dica anónima foi recebida que existe um badge que podes recolher se leres um QR code, mas para isso precisas de o encontrar e ele está muito bem escondido. Encontrar um QR code escondido com o fim da iniciativa.',
2082
+ img: { url: "", alt: "Pista escondida" },
2083
+ points: 15,
2084
+ initiative_id: initiatives[7].id,
2085
+ moment_id: moments[19].id,
2086
+ type_id: badgeTypes[1].id,
2087
+ is_draft: false
2088
+ }
2089
+ }),
2090
+ prisma.badges.create({
2091
+ data: {
2092
+ title: 'Recolha',
2093
+ condition: 'O Detetive Bigodes quer dar continuidade à investigação fora do terreno, mas para isso precisa da tua ajuda. No final da missão, é necessário recolher todos os papéis com informações sobre erros, melhorias e observações relacionadas com a aplicação. Cada contributo é uma peça essencial para que a investigação possa continuar e evoluir.',
2094
+ img: { url: "", alt: "Recolha" },
2095
+ points: 15,
2096
+ initiative_id: initiatives[7].id,
2097
+ moment_id: moments[19].id,
2098
+ type_id: badgeTypes[1].id,
2099
+ is_draft: false
2100
+ }
2101
+ }),
2102
+ prisma.badges.create({
2103
+ data: {
2104
+ title: 'Certificado',
2105
+ condition: 'Completaste o Pré-Piloto do Ser+! Este certificado reconhece o teu empenho e participação ativa nesta fase crucial do projeto. Obrigado por fazeres parte desta jornada connosco.',
2106
+ img: {"id":"c0229a89-f1d9-4ee8-adf7-a3324b939fac","url":"https://minio.sermaisapp-qa.ua.pt/badges/76/c0229a89-f1d9-4ee8-adf7-a3324b939fac.pdf","size":459032,"mimeType":"application/pdf","uploadedAt":"2026-01-28T15:16:11.178Z","originalName":"certificadosermais.pdf","thumbnailUrl":"https://minio.sermaisapp-qa.ua.pt/badges/76/c0229a89-f1d9-4ee8-adf7-a3324b939fac_thumb.jpg"},
2107
+ points: 50,
2108
+ initiative_id: initiatives[7].id,
2109
+ type_id: badgeTypes[0].id,
2110
+ is_draft: false
2111
+ }
2112
+ })
2113
+ ]);
2114
+
2115
+ console.log(`✅ Created ${badges.length} badges`);
2116
+
2117
+ // roles_initiative_badges
2118
+ console.log('🏷️ Creating roles initiatives badges...');
2119
+ await Promise.all([
2120
+ // Apresentação com estilo
2121
+ prisma.roles_initiatives_badges.create({
2122
+ data: {
2123
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2124
+ badges_id: badges[0].id
2125
+ }
2126
+ }),
2127
+ // Funcionalidades principais
2128
+ prisma.roles_initiatives_badges.create({
2129
+ data: {
2130
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2131
+ badges_id: badges[1].id
2132
+ }
2133
+ }),
2134
+ // Protótipos finalizados
2135
+ prisma.roles_initiatives_badges.create({
2136
+ data: {
2137
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2138
+ badges_id: badges[2].id
2139
+ }
2140
+ }),
2141
+ // Resultado inovador
2142
+ prisma.roles_initiatives_badges.create({
2143
+ data: {
2144
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2145
+ badges_id: badges[3].id
2146
+ }
2147
+ }),
2148
+ // Juízo final
2149
+ prisma.roles_initiatives_badges.create({
2150
+ data: {
2151
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2152
+ badges_id: badges[4].id
2153
+ }
2154
+ }),
2155
+
2156
+
2157
+ // Explorador Transmídia
2158
+ prisma.roles_initiatives_badges.create({
2159
+ data: {
2160
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2161
+ badges_id: badges[5].id
2162
+ }
2163
+ }),
2164
+ // Mestre da Conexão Narrativa
2165
+ prisma.roles_initiatives_badges.create({
2166
+ data: {
2167
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2168
+ badges_id: badges[6].id
2169
+ }
2170
+ }),
2171
+ // Arquiteto Visual Transmídia
2172
+ prisma.roles_initiatives_badges.create({
2173
+ data: {
2174
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2175
+ badges_id: badges[7].id
2176
+ }
2177
+ }),
2178
+ // Visionário da Monetização
2179
+ prisma.roles_initiatives_badges.create({
2180
+ data: {
2181
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2182
+ badges_id: badges[8].id
2183
+ }
2184
+ }),
2185
+ // Campanha Transmídia Pro
2186
+ prisma.roles_initiatives_badges.create({
2187
+ data: {
2188
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2189
+ badges_id: badges[9].id
2190
+ }
2191
+ }),
2192
+
2193
+
2194
+ // Fundamentos SEO Desvendados
2195
+ prisma.roles_initiatives_badges.create({
2196
+ data: {
2197
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2198
+ badges_id: badges[10].id
2199
+ }
2200
+ }),
2201
+ // Analista Web Prático
2202
+ prisma.roles_initiatives_badges.create({
2203
+ data: {
2204
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2205
+ badges_id: badges[11].id
2206
+ }
2207
+ }),
2208
+ // Otimizador em Ação
2209
+ prisma.roles_initiatives_badges.create({
2210
+ data: {
2211
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2212
+ badges_id: badges[12].id
2213
+ }
2214
+ }),
2215
+ // Solucionador SEO
2216
+ prisma.roles_initiatives_badges.create({
2217
+ data: {
2218
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2219
+ badges_id: badges[13].id
2220
+ }
2221
+ }),
2222
+
2223
+
2224
+ // Transição Ensino Superior
2225
+ prisma.roles_initiatives_badges.create({
2226
+ data: {
2227
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2228
+ badges_id: badges[14].id
2229
+ }
2230
+ }),
2231
+ // Comunicação Empática
2232
+ prisma.roles_initiatives_badges.create({
2233
+ data: {
2234
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2235
+ badges_id: badges[15].id
2236
+ }
2237
+ }),
2238
+ // Defensor da Inclusão
2239
+ prisma.roles_initiatives_badges.create({
2240
+ data: {
2241
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2242
+ badges_id: badges[16].id
2243
+ }
2244
+ }),
2245
+ // Pilar de Suporte Emocional
2246
+ prisma.roles_initiatives_badges.create({
2247
+ data: {
2248
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2249
+ badges_id: badges[17].id
2250
+ }
2251
+ }),
2252
+ // Mediador de Conflitos
2253
+ prisma.roles_initiatives_badges.create({
2254
+ data: {
2255
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2256
+ badges_id: badges[18].id
2257
+ }
2258
+ }),
2259
+
2260
+ // Zona de partidas
2261
+ prisma.roles_initiatives_badges.create({
2262
+ data: {
2263
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2264
+ badges_id: badges[19].id
2265
+ }
2266
+ }),
2267
+ // Check-in
2268
+ prisma.roles_initiatives_badges.create({
2269
+ data: {
2270
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2271
+ badges_id: badges[20].id
2272
+ }
2273
+ }),
2274
+ // Check-out
2275
+ prisma.roles_initiatives_badges.create({
2276
+ data: {
2277
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2278
+ badges_id: badges[21].id
2279
+ }
2280
+ }),
2281
+ // Veterano
2282
+ prisma.roles_initiatives_badges.create({
2283
+ data: {
2284
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2285
+ badges_id: badges[22].id
2286
+ }
2287
+ }),
2288
+ // We made it
2289
+ prisma.roles_initiatives_badges.create({
2290
+ data: {
2291
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2292
+ badges_id: badges[23].id
2293
+ }
2294
+ }),
2295
+
2296
+ // UI-UX: Uma dúvida persistente
2297
+ prisma.roles_initiatives_badges.create({
2298
+ data: {
2299
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2300
+ badges_id: badges[24].id
2301
+ }
2302
+ }),
2303
+ // Transmídia para empreendedores
2304
+ prisma.roles_initiatives_badges.create({
2305
+ data: {
2306
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2307
+ badges_id: badges[25].id
2308
+ }
2309
+ }),
2310
+ // Otimização SEO
2311
+ prisma.roles_initiatives_badges.create({
2312
+ data: {
2313
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2314
+ badges_id: badges[26].id
2315
+ }
2316
+ }),
2317
+ // Mentor Capaz
2318
+ prisma.roles_initiatives_badges.create({
2319
+ data: {
2320
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2321
+ badges_id: badges[27].id
2322
+ }
2323
+ }),
2324
+ // Students@DigiMedia 2025/2026
2325
+ prisma.roles_initiatives_badges.create({
2326
+ data: {
2327
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2328
+ badges_id: badges[28].id
2329
+ }
2330
+ }),
2331
+ // Taça UA - Basquetebol 3x3
2332
+ prisma.roles_initiatives_badges.create({
2333
+ data: {
2334
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2335
+ badges_id: badges[29].id
2336
+ }
2337
+ }),
2338
+ // Convívio
2339
+ prisma.roles_initiatives_badges.create({
2340
+ data: {
2341
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2342
+ badges_id: badges[30].id
2343
+ }
2344
+ }),
2345
+ // Convívio
2346
+ prisma.roles_initiatives_badges.create({
2347
+ data: {
2348
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2349
+ badges_id: badges[31].id
2350
+ }
2351
+ }),
2352
+ // Convívio
2353
+ prisma.roles_initiatives_badges.create({
2354
+ data: {
2355
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2356
+ badges_id: badges[32].id
2357
+ }
2358
+ }),
2359
+ // Convívio
2360
+ prisma.roles_initiatives_badges.create({
2361
+ data: {
2362
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2363
+ badges_id: badges[33].id
2364
+ }
2365
+ }),
2366
+ prisma.roles_initiatives_badges.create({
2367
+ data: {
2368
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2369
+ badges_id: badges[34].id
2370
+ }
2371
+ }),
2372
+ prisma.roles_initiatives_badges.create({
2373
+ data: {
2374
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2375
+ badges_id: badges[35].id
2376
+ }
2377
+ }),
2378
+ prisma.roles_initiatives_badges.create({
2379
+ data: {
2380
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2381
+ badges_id: badges[36].id
2382
+ }
2383
+ }),
2384
+ prisma.roles_initiatives_badges.create({
2385
+ data: {
2386
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2387
+ badges_id: badges[37].id
2388
+ }
2389
+ }),
2390
+ prisma.roles_initiatives_badges.create({
2391
+ data: {
2392
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2393
+ badges_id: badges[38].id
2394
+ }
2395
+ }),
2396
+ prisma.roles_initiatives_badges.create({
2397
+ data: {
2398
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2399
+ badges_id: badges[39].id
2400
+ }
2401
+ }),
2402
+ prisma.roles_initiatives_badges.create({
2403
+ data: {
2404
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2405
+ badges_id: badges[40].id
2406
+ }
2407
+ }),
2408
+ prisma.roles_initiatives_badges.create({
2409
+ data: {
2410
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2411
+ badges_id: badges[41].id
2412
+ }
2413
+ }),
2414
+ prisma.roles_initiatives_badges.create({
2415
+ data: {
2416
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2417
+ badges_id: badges[42].id
2418
+ }
2419
+ }),
2420
+ prisma.roles_initiatives_badges.create({
2421
+ data: {
2422
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2423
+ badges_id: badges[43].id
2424
+ }
2425
+ }),
2426
+ prisma.roles_initiatives_badges.create({
2427
+ data: {
2428
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2429
+ badges_id: badges[44].id
2430
+ }
2431
+ }),
2432
+ prisma.roles_initiatives_badges.create({
2433
+ data: {
2434
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2435
+ badges_id: badges[45].id
2436
+ }
2437
+ }),
2438
+ prisma.roles_initiatives_badges.create({
2439
+ data: {
2440
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2441
+ badges_id: badges[46].id
2442
+ }
2443
+ }),
2444
+ prisma.roles_initiatives_badges.create({
2445
+ data: {
2446
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2447
+ badges_id: badges[47].id
2448
+ }
2449
+ }),
2450
+ prisma.roles_initiatives_badges.create({
2451
+ data: {
2452
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2453
+ badges_id: badges[48].id
2454
+ }
2455
+ }),
2456
+ prisma.roles_initiatives_badges.create({
2457
+ data: {
2458
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2459
+ badges_id: badges[49].id
2460
+ }
2461
+ }),
2462
+ prisma.roles_initiatives_badges.create({
2463
+ data: {
2464
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2465
+ badges_id: badges[50].id
2466
+ }
2467
+ }),
2468
+ prisma.roles_initiatives_badges.create({
2469
+ data: {
2470
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2471
+ badges_id: badges[51].id
2472
+ }
2473
+ }),
2474
+ prisma.roles_initiatives_badges.create({
2475
+ data: {
2476
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2477
+ badges_id: badges[52].id
2478
+ }
2479
+ }),
2480
+ prisma.roles_initiatives_badges.create({
2481
+ data: {
2482
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2483
+ badges_id: badges[53].id
2484
+ }
2485
+ }),
2486
+ prisma.roles_initiatives_badges.create({
2487
+ data: {
2488
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2489
+ badges_id: badges[54].id
2490
+ }
2491
+ }),
2492
+ prisma.roles_initiatives_badges.create({
2493
+ data: {
2494
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2495
+ badges_id: badges[55].id
2496
+ }
2497
+ }),
2498
+ prisma.roles_initiatives_badges.create({
2499
+ data: {
2500
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2501
+ badges_id: badges[56].id
2502
+ }
2503
+ }),
2504
+ prisma.roles_initiatives_badges.create({
2505
+ data: {
2506
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2507
+ badges_id: badges[57].id
2508
+ }
2509
+ }),
2510
+ prisma.roles_initiatives_badges.create({
2511
+ data: {
2512
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2513
+ badges_id: badges[58].id
2514
+ }
2515
+ }),
2516
+ prisma.roles_initiatives_badges.create({
2517
+ data: {
2518
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2519
+ badges_id: badges[59].id
2520
+ }
2521
+ }),
2522
+ prisma.roles_initiatives_badges.create({
2523
+ data: {
2524
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2525
+ badges_id: badges[60].id
2526
+ }
2527
+ }),
2528
+ prisma.roles_initiatives_badges.create({
2529
+ data: {
2530
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2531
+ badges_id: badges[61].id
2532
+ }
2533
+ }),
2534
+ prisma.roles_initiatives_badges.create({
2535
+ data: {
2536
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2537
+ badges_id: badges[62].id
2538
+ }
2539
+ }),
2540
+ prisma.roles_initiatives_badges.create({
2541
+ data: {
2542
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2543
+ badges_id: badges[63].id
2544
+ }
2545
+ }),
2546
+ prisma.roles_initiatives_badges.create({
2547
+ data: {
2548
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2549
+ badges_id: badges[64].id
2550
+ }
2551
+ }),
2552
+ prisma.roles_initiatives_badges.create({
2553
+ data: {
2554
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2555
+ badges_id: badges[65].id
2556
+ }
2557
+ }),
2558
+ prisma.roles_initiatives_badges.create({
2559
+ data: {
2560
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2561
+ badges_id: badges[66].id
2562
+ }
2563
+ }),
2564
+ prisma.roles_initiatives_badges.create({
2565
+ data: {
2566
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2567
+ badges_id: badges[67].id
2568
+ }
2569
+ }),
2570
+ prisma.roles_initiatives_badges.create({
2571
+ data: {
2572
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2573
+ badges_id: badges[68].id
2574
+ }
2575
+ }),
2576
+ prisma.roles_initiatives_badges.create({
2577
+ data: {
2578
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2579
+ badges_id: badges[69].id
2580
+ }
2581
+ }),
2582
+ prisma.roles_initiatives_badges.create({
2583
+ data: {
2584
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2585
+ badges_id: badges[70].id
2586
+ }
2587
+ }),
2588
+ prisma.roles_initiatives_badges.create({
2589
+ data: {
2590
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2591
+ badges_id: badges[71].id
2592
+ }
2593
+ }),
2594
+ prisma.roles_initiatives_badges.create({
2595
+ data: {
2596
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2597
+ badges_id: badges[72].id
2598
+ }
2599
+ }),
2600
+ prisma.roles_initiatives_badges.create({
2601
+ data: {
2602
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2603
+ badges_id: badges[73].id
2604
+ }
2605
+ }),
2606
+ prisma.roles_initiatives_badges.create({
2607
+ data: {
2608
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2609
+ badges_id: badges[74].id
2610
+ }
2611
+ }),
2612
+ prisma.roles_initiatives_badges.create({
2613
+ data: {
2614
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2615
+ badges_id: badges[75].id
2616
+ }
2617
+ }),
2618
+ prisma.roles_initiatives_badges.create({
2619
+ data: {
2620
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2621
+ badges_id: badges[76].id
2622
+ }
2623
+ }),
2624
+ prisma.roles_initiatives_badges.create({
2625
+ data: {
2626
+ roles_initiatives_id: VOLUNTEERrole.id,
2627
+ badges_id: badges[77].id
2628
+ }
2629
+ }),
2630
+ prisma.roles_initiatives_badges.create({
2631
+ data: {
2632
+ roles_initiatives_id: VOLUNTEERrole.id,
2633
+ badges_id: badges[78].id
2634
+ }
2635
+ }),
2636
+ prisma.roles_initiatives_badges.create({
2637
+ data: {
2638
+ roles_initiatives_id: VOLUNTEERrole.id,
2639
+ badges_id: badges[79].id
2640
+ }
2641
+ }),
2642
+ prisma.roles_initiatives_badges.create({
2643
+ data: {
2644
+ roles_initiatives_id: VOLUNTEERrole.id,
2645
+ badges_id: badges[80].id
2646
+ }
2647
+ }),
2648
+ prisma.roles_initiatives_badges.create({
2649
+ data: {
2650
+ roles_initiatives_id: VOLUNTEERrole.id,
2651
+ badges_id: badges[81].id
2652
+ }
2653
+ }),
2654
+ prisma.roles_initiatives_badges.create({
2655
+ data: {
2656
+ roles_initiatives_id: VOLUNTEERrole.id,
2657
+ badges_id: badges[82].id
2658
+ }
2659
+ }),
2660
+ prisma.roles_initiatives_badges.create({
2661
+ data: {
2662
+ roles_initiatives_id: VOLUNTEERrole.id,
2663
+ badges_id: badges[83].id
2664
+ }
2665
+ }),
2666
+ prisma.roles_initiatives_badges.create({
2667
+ data: {
2668
+ roles_initiatives_id: VOLUNTEERrole.id,
2669
+ badges_id: badges[84].id
2670
+ }
2671
+ }),
2672
+ prisma.roles_initiatives_badges.create({
2673
+ data: {
2674
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2675
+ badges_id: badges[85].id
2676
+ }
2677
+ }),
2678
+
2679
+ // === PRÉ-PILOTO BADGES (Initiative 8) ===
2680
+ // Badge 86: "O caso está oficialmente aberto" - PARTICIPANT + VOLUNTEER
2681
+ prisma.roles_initiatives_badges.create({
2682
+ data: {
2683
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2684
+ badges_id: badges[86].id
2685
+ }
2686
+ }),
2687
+ prisma.roles_initiatives_badges.create({
2688
+ data: {
2689
+ roles_initiatives_id: VOLUNTEERrole.id,
2690
+ badges_id: badges[86].id
2691
+ }
2692
+ }),
2693
+ // Badge 87: "Estratégia e paciência" - PARTICIPANT
2694
+ prisma.roles_initiatives_badges.create({
2695
+ data: {
2696
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2697
+ badges_id: badges[87].id
2698
+ }
2699
+ }),
2700
+ // Badge 88: "Arquivos" - PARTICIPANT
2701
+ prisma.roles_initiatives_badges.create({
2702
+ data: {
2703
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2704
+ badges_id: badges[88].id
2705
+ }
2706
+ }),
2707
+ // Badge 89: "Hercule Poirot" - PARTICIPANT + VOLUNTEER
2708
+ prisma.roles_initiatives_badges.create({
2709
+ data: {
2710
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2711
+ badges_id: badges[89].id
2712
+ }
2713
+ }),
2714
+ prisma.roles_initiatives_badges.create({
2715
+ data: {
2716
+ roles_initiatives_id: VOLUNTEERrole.id,
2717
+ badges_id: badges[89].id
2718
+ }
2719
+ }),
2720
+ // Badge 90: "Algo aqui não está bem" - PARTICIPANT + VOLUNTEER
2721
+ prisma.roles_initiatives_badges.create({
2722
+ data: {
2723
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2724
+ badges_id: badges[90].id
2725
+ }
2726
+ }),
2727
+ prisma.roles_initiatives_badges.create({
2728
+ data: {
2729
+ roles_initiatives_id: VOLUNTEERrole.id,
2730
+ badges_id: badges[90].id
2731
+ }
2732
+ }),
2733
+
2734
+ // === PRÉ-PILOTO MOMENTO 1 BADGES ===
2735
+ // Badge 91: "Todas as pessoas tem uma história" - PARTICIPANT + VOLUNTEER
2736
+ prisma.roles_initiatives_badges.create({
2737
+ data: {
2738
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2739
+ badges_id: badges[91].id
2740
+ }
2741
+ }),
2742
+ prisma.roles_initiatives_badges.create({
2743
+ data: {
2744
+ roles_initiatives_id: VOLUNTEERrole.id,
2745
+ badges_id: badges[91].id
2746
+ }
2747
+ }),
2748
+ // Badge 92: "British detective in the room" - PARTICIPANT + VOLUNTEER
2749
+ prisma.roles_initiatives_badges.create({
2750
+ data: {
2751
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2752
+ badges_id: badges[92].id
2753
+ }
2754
+ }),
2755
+ prisma.roles_initiatives_badges.create({
2756
+ data: {
2757
+ roles_initiatives_id: VOLUNTEERrole.id,
2758
+ badges_id: badges[92].id
2759
+ }
2760
+ }),
2761
+ // Badge 93: "Qual é o teu álibi?" - PARTICIPANT + VOLUNTEER
2762
+ prisma.roles_initiatives_badges.create({
2763
+ data: {
2764
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2765
+ badges_id: badges[93].id
2766
+ }
2767
+ }),
2768
+ prisma.roles_initiatives_badges.create({
2769
+ data: {
2770
+ roles_initiatives_id: VOLUNTEERrole.id,
2771
+ badges_id: badges[93].id
2772
+ }
2773
+ }),
2774
+ // Badge 94: "Provas" - PARTICIPANT + VOLUNTEER
2775
+ prisma.roles_initiatives_badges.create({
2776
+ data: {
2777
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2778
+ badges_id: badges[94].id
2779
+ }
2780
+ }),
2781
+ prisma.roles_initiatives_badges.create({
2782
+ data: {
2783
+ roles_initiatives_id: VOLUNTEERrole.id,
2784
+ badges_id: badges[94].id
2785
+ }
2786
+ }),
2787
+
2788
+ // === PRÉ-PILOTO MOMENTO 2 BADGES ===
2789
+ // Badge 95: "Encontrámos algo" - PARTICIPANT + VOLUNTEER
2790
+ prisma.roles_initiatives_badges.create({
2791
+ data: {
2792
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2793
+ badges_id: badges[95].id
2794
+ }
2795
+ }),
2796
+ prisma.roles_initiatives_badges.create({
2797
+ data: {
2798
+ roles_initiatives_id: VOLUNTEERrole.id,
2799
+ badges_id: badges[95].id
2800
+ }
2801
+ }),
2802
+ // Badge 96: "Novas descobertas" - PARTICIPANT + VOLUNTEER
2803
+ prisma.roles_initiatives_badges.create({
2804
+ data: {
2805
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2806
+ badges_id: badges[96].id
2807
+ }
2808
+ }),
2809
+ prisma.roles_initiatives_badges.create({
2810
+ data: {
2811
+ roles_initiatives_id: VOLUNTEERrole.id,
2812
+ badges_id: badges[96].id
2813
+ }
2814
+ }),
2815
+ // Badge 97: "Interrogatórios" - PARTICIPANT + VOLUNTEER
2816
+ prisma.roles_initiatives_badges.create({
2817
+ data: {
2818
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2819
+ badges_id: badges[97].id
2820
+ }
2821
+ }),
2822
+ prisma.roles_initiatives_badges.create({
2823
+ data: {
2824
+ roles_initiatives_id: VOLUNTEERrole.id,
2825
+ badges_id: badges[97].id
2826
+ }
2827
+ }),
2828
+ // Badge 98: "Retratos falados" - PARTICIPANT only
2829
+ prisma.roles_initiatives_badges.create({
2830
+ data: {
2831
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2832
+ badges_id: badges[98].id
2833
+ }
2834
+ }),
2835
+
2836
+ // === PRÉ-PILOTO MOMENTO 3 BADGES ===
2837
+ // Badge 99: "Medalha de mérito" - PARTICIPANT + VOLUNTEER
2838
+ prisma.roles_initiatives_badges.create({
2839
+ data: {
2840
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2841
+ badges_id: badges[99].id
2842
+ }
2843
+ }),
2844
+ prisma.roles_initiatives_badges.create({
2845
+ data: {
2846
+ roles_initiatives_id: VOLUNTEERrole.id,
2847
+ badges_id: badges[99].id
2848
+ }
2849
+ }),
2850
+ // Badge 100: "Faro Apurado" - PARTICIPANT + VOLUNTEER
2851
+ prisma.roles_initiatives_badges.create({
2852
+ data: {
2853
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2854
+ badges_id: badges[100].id
2855
+ }
2856
+ }),
2857
+ prisma.roles_initiatives_badges.create({
2858
+ data: {
2859
+ roles_initiatives_id: VOLUNTEERrole.id,
2860
+ badges_id: badges[100].id
2861
+ }
2862
+ }),
2863
+ // Badge 101: "Pista escondida" - PARTICIPANT only
2864
+ prisma.roles_initiatives_badges.create({
2865
+ data: {
2866
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2867
+ badges_id: badges[101].id
2868
+ }
2869
+ }),
2870
+ // Badge 102: "Recolha" - VOLUNTEER only
2871
+ prisma.roles_initiatives_badges.create({
2872
+ data: {
2873
+ roles_initiatives_id: VOLUNTEERrole.id,
2874
+ badges_id: badges[102].id
2875
+ }
2876
+ }),
2877
+ // Badge 103: "Certificado" - PARTICIPANT + VOLUNTEER + ORGANIZATOR
2878
+ prisma.roles_initiatives_badges.create({
2879
+ data: {
2880
+ roles_initiatives_id: PARTICIPANTinitiativerole.id,
2881
+ badges_id: badges[103].id
2882
+ }
2883
+ }),
2884
+ prisma.roles_initiatives_badges.create({
2885
+ data: {
2886
+ roles_initiatives_id: VOLUNTEERrole.id,
2887
+ badges_id: badges[103].id
2888
+ }
2889
+ }),
2890
+ prisma.roles_initiatives_badges.create({
2891
+ data: {
2892
+ roles_initiatives_id: ORGANIZATORrole.id,
2893
+ badges_id: badges[103].id
2894
+ }
2895
+ })
2896
+
2897
+ ]);
2898
+
2899
+ // Associate initiatives with soft skills
2900
+ console.log('🔗 Creating initiative-soft skills associations...');
2901
+ await Promise.all([
2902
+ prisma.initiatives_soft_skills.create({
2903
+ data: {
2904
+ initiative_id: initiatives[0].id,
2905
+ soft_skill_id: softskills[0].id // Resolução de Problemas
2906
+ }
2907
+ }),
2908
+ prisma.initiatives_soft_skills.create({
2909
+ data: {
2910
+ initiative_id: initiatives[0].id,
2911
+ soft_skill_id: softskills[1].id // Criatividade e Inovação
2912
+ }
2913
+ }),
2914
+ prisma.initiatives_soft_skills.create({
2915
+ data: {
2916
+ initiative_id: initiatives[1].id,
2917
+ soft_skill_id: softskills[1].id // Criatividade e Inovação
2918
+ }
2919
+ }),
2920
+ prisma.initiatives_soft_skills.create({
2921
+ data: {
2922
+ initiative_id: initiatives[1].id,
2923
+ soft_skill_id: softskills[5].id // Comunicação Oral
2924
+ }
2925
+ }),
2926
+ prisma.initiatives_soft_skills.create({
2927
+ data: {
2928
+ initiative_id: initiatives[2].id,
2929
+ soft_skill_id: softskills[8].id // Pensamento Crítico
2930
+ }
2931
+ }),
2932
+ prisma.initiatives_soft_skills.create({
2933
+ data: {
2934
+ initiative_id: initiatives[3].id,
2935
+ soft_skill_id: softskills[2].id // Trabalho de Equipa
2936
+ }
2937
+ }),
2938
+ prisma.initiatives_soft_skills.create({
2939
+ data: {
2940
+ initiative_id: initiatives[3].id,
2941
+ soft_skill_id: softskills[4].id // Liderança
2942
+ }
2943
+ }),
2944
+ prisma.initiatives_soft_skills.create({
2945
+ data: {
2946
+ initiative_id: initiatives[4].id,
2947
+ soft_skill_id: softskills[0].id // Resolução de Problemas
2948
+ }
2949
+ }),
2950
+ prisma.initiatives_soft_skills.create({
2951
+ data: {
2952
+ initiative_id: initiatives[7].id,
2953
+ soft_skill_id: softskills[5].id // Comunicação Oral
2954
+ }
2955
+ }),
2956
+ prisma.initiatives_soft_skills.create({
2957
+ data: {
2958
+ initiative_id: initiatives[7].id,
2959
+ soft_skill_id: softskills[2].id // Trabalho de Equipa
2960
+ }
2961
+ }),
2962
+ prisma.initiatives_soft_skills.create({
2963
+ data: {
2964
+ initiative_id: initiatives[7].id,
2965
+ soft_skill_id: softskills[1].id // Criatividade e Inovação
2966
+ }
2967
+ }),
2968
+ prisma.initiatives_soft_skills.create({
2969
+ data: {
2970
+ initiative_id: initiatives[7].id,
2971
+ soft_skill_id: softskills[8].id // Pensamento Crítico
2972
+ }
2973
+ })
2974
+ ]);
2975
+
2976
+ // Update summary at the end
2977
+ console.log('✅ Database seeding completed successfully!');
2978
+ console.log('📊 Summary:');
2979
+ console.log(` - ${areas.length} areas created`);
2980
+ console.log(` - ${typologies.length} typologies created`);
2981
+ console.log(` - ${softskills.length} soft skills created`);
2982
+ console.log(` - ${programs.length} programs created`);
2983
+ console.log(` - ${initiatives.length} initiatives created`);
2984
+ console.log(` - ${moments.length} moments created`);
2985
+ console.log(` - ${badges.length} badges created`);
2986
+
2987
+ console.log('✅ Database seeding completed successfully!');
2988
+
2989
+ }
2990
+
2991
+ main()
2992
+ .catch((e) => {
2993
+ console.error('❌ Error during seeding:', e);
2994
+ process.exit(1);
2995
+ })
2996
+ .finally(async () => {
2997
+ await prisma.$disconnect();
2998
+ });