Neemias — API Reference
    Preparing search index...

    Variable attendanceFeedEventSchemaConst

    attendanceFeedEventSchema: ZodObject<
        {
            eventType: ZodEnum<
                {
                    CHECK_IN: "CHECK_IN";
                    CHECK_OUT: "CHECK_OUT";
                    EMERGENCY_CHECKOUT: "EMERGENCY_CHECKOUT";
                },
            >;
            sessionId: ZodString;
            slotId: ZodString;
            studentId: ZodString;
            timestamp: ZodString;
        },
        $strip,
    > = ...

    Evento do feed attendance — o evento É o payload (kind: "data").

    slotId entrou em 2026-09-12, ao CONSTRUIR o primeiro consumidor (telão de lotação, #759). O consumidor precisa dizer EM QUE SALA a movimentação aconteceu, e nem sessionId nem studentId respondem isso: quem liga sessão → sala é class_sessions.slot_id. Sem o campo, o telão só mostraria "alguém entrou" — informação que não sustenta a tela.

    É a IDENTIDADE da sala, não o rótulo: o rótulo continua vindo do snapshot de capacidade (capacitySnapshotSchema), que já é a definição única de rótulos (ADR-0043 decisão 6). Renomear uma sala não deixa texto velho preso aqui.

    Obrigatório (não nullable): class_sessions.slot_id é NOT NULL, então toda sessão válida tem sala. Um evento sem sala não é um evento válido — o produtor não publica, em vez de emitir um payload que o schema rejeita.

    Privacidade (LGPD): o evento NÃO carrega o nome da criança. O telão é tela PÚBLICA — o consumidor não deve juntar studentId com nome algum.