import { Module } from '@nestjs/common'
import * as admin from 'firebase-admin'
import { FirebaseMessagingService } from './firebase-messaging.service'
import { FIREBASE_APP } from './tokens'

const firebaseProvider = {
	provide: FIREBASE_APP,
	useFactory: () => {
		const firebaseConfig = JSON.parse(process.env.FIREBASE!) as admin.ServiceAccount

		return admin.initializeApp({
			credential: admin.credential.cert(firebaseConfig),
		})
	},
}

@Module({
	imports: [],
	providers: [firebaseProvider, FirebaseMessagingService],
	exports: [FirebaseMessagingService],
})
export class FirebaseModule {}
