Aller au contenu principal

Pattern Service

Pour garder les contrôleurs légers et la logique testable, nous adhérons strictement au Pattern Service-Repository.

Structure des Dossiers

app/
├── Controllers/ # Gestion HTTP uniquement (Parsing input, retour JSON)
├── Services/ # Pure Logique Métier
├── Models/ # Définitions Base de Données
└── Validators/ # Validation de Schéma Yup/VineJS

Services Clés

🔧 Gestion des Appareils

CameraService & CameraManagerService

Ces services forment l'épine dorsale du provisionnement des appareils.

  • Provisioning : Gestion de la génération d'identifiants uniques pour l'accès caméra.
  • Monitoring : Tâches planifiées vérifiant la connectivité.

RtspToWebService

Un wrapper autour du projet open-source RTSPtoWeb. Il permet au backend de :

  • Démarrer/Arrêter les Flux : Actif uniquement quand un utilisateur regarde le dashboard (économie de bande passante).
  • Négociation de Protocole : Retourne des URLs HLS, WebRTC ou MSE selon les capacités du client.

🔔 Traitement d'Événements

RedisSubscriptionsService

Le point d'intégration avec le Système de Vision Python.

  • Entrée : Écoute le channel Redis camera:sitting.
  • Logique :
    1. Reçoit un MotionEvent (Score d'agitation, Nom de la Classe).
    2. Résout Camera -> Site -> Users.
    3. Filtre les utilisateurs selon emailNotificationsEnabled.
  • Sortie : Dispatche des emails via SMTP et SMS via Twilio.

NotificationService

Gère la persistance des notifications in-app (icône cloche) et les notifications push vers les appareils mobiles.