<?php

namespace App\Listeners;

use App\Events\AderenteCreated;
use Kreait\Firebase\Contract\Firestore;

class SyncAderenteToFirestore
{
    protected Firestore $firestore;

    public function __construct(Firestore $firestore)
    {
        $this->firestore = $firestore;
    }

    /**
     * Sincroniza aderente com Firestore, respeitando segmentação por boleia e papel original
     */
    public function handle(AderenteCreated $event): void
    {
        $this->firestore
            ->database()
            ->collection("boleya_{$event->postId}_aderentes")
            ->document((string) $event->clienteId)
            ->set([
                'typeUser' => 'cliente', // papel original mantido
                'contexto' => 'aderente', // granularidade semântica
                'postId' => $event->postId,
                'dados' => $event->payload,
                'timestamp' => now()->timestamp,
            ]);
    }
}
