const { onSchedule } = require('firebase-functions/v2/scheduler') const { db } = require('../index') exports.resetMonthViews = onSchedule( { schedule: '0 0 1 * *', timeZone: 'Europe/Paris', timeoutSeconds: 540, memory: '512MiB', }, async (event) => { console.log('Starting monthly reset of project views...') const projectsRef = db.collection('projects') const bulkWriter = db.bulkWriter() bulkWriter.onWriteError((error) => { console.error('Failed to write document:', error.documentRef.path, error.error) return false // Do not retry indefinitely for this use case }) try { const stream = projectsRef.stream() let count = 0 for await (const doc of stream) { const docRef = db.collection('projects').doc(doc.id) bulkWriter.update(docRef, { monthViews: 0 }) count++ } await bulkWriter.close() console.log(`Successfully scheduled reset for ${count} projects.`) } catch (error) { console.error('Error in resetMonthViews:', error) } } )