# 00 — Vision & périmètre

## Vision

**yima-shop** est une plateforme **SaaS de point de vente (POS)** pour commerçants, pensée pour l'Afrique de l'Ouest (contexte Sénégal : NINEA/RCCM, FCFA, français). Chaque commerçant (« boutique ») gère ses ventes, son stock, ses clients et ses rapports depuis une **application mobile PWA (Ionic)** connectée à une **API** ; le portail d'administration (Symfony) pilote les boutiques, la sécurité et la donnée centrale. À terme, chaque boutique peut disposer d'un **site e-commerce** alimenté par une projection de ses données POS.

## Objectifs produit

1. **POS complet et rapide** : encaisser une vente en quelques secondes, y compris **hors-ligne** et **sans client identifié** (vente anonyme).
2. **Multi-boutiques** : un utilisateur peut gérer/travailler dans plusieurs boutiques avec des rôles distincts par boutique (RBAC en place).
3. **Donnée centralisée et fiable** : une seule source de vérité, sauvegardes, analytics transverses.
4. **Extensible par modules** : catalogue, stock, caisse, clients, rapports, achats, promotions, facturation… activables selon le besoin.
5. **Ouverture e-commerce** : projeter le catalogue/stock vers un site par client, sans exposer la base centrale.
6. **Sécurité de niveau bancaire** : auth JWT, RBAC granulaire, chiffrement des secrets, détection de menaces, journalisation.

## Personas

| Persona | Rôle | Application | Besoins clés |
|---|---|---|---|
| **Administrateur plateforme** | `ROLE_ADMIN` (global) | Portail web | Créer des boutiques, gérer la sécurité, superviser, provisionner les bases clients |
| **Manager de boutique** | rôle boutique « Manager » | Portail web + PWA | Gérer employés, catalogue, stock, prix, consulter rapports, ouvrir/fermer la caisse |
| **Employé / caissier** | rôle boutique « Employé » | PWA | Encaisser (dont vente anonyme), consulter produits/stock, ses sessions de caisse |
| **Client final** | — | Site e-commerce (futur) | Parcourir le catalogue projeté, commander |

Les rôles boutique s'appuient sur le RBAC : voir [03 — Sécurité](03-securite.md).

## Périmètre (in / out)

**Dans le périmètre (v1 → v2)** : gestion boutiques & employés, catalogue produits, stock/inventaire, POS/ventes (dont anonymes), sessions de caisse & paiements, clients/CRM léger, rapports, achats/fournisseurs, promotions/remises, facturation/taxes, notifications, projection e-commerce, API PWA.

**Hors périmètre initial** : comptabilité complète, paie, marketplace multi-vendeurs, logistique/livraison avancée, intégrations bancaires temps réel (prévoir des connecteurs plus tard).

## Principes produit

- **Mobile-first & offline-first** : la PWA doit fonctionner en connectivité dégradée (file d'attente des ventes, synchro à la reconnexion).
- **Simplicité d'encaissement** : parcours de vente minimal, vente anonyme par défaut, client optionnel.
- **Sécurité par défaut** : moindre privilège (RBAC), secrets chiffrés, endpoints authentifiés.
- **Donnée centrale autoritaire** : le POS écrit au centre ; la base client est une projection en lecture.
- **Extensibilité** : chaque capacité = un module documenté ([modules/](modules/README.md)) avec ses permissions, entités, endpoints et tests.
- **Localisation** : français, FCFA (XOF), fuseau `Africa/Dakar`, identifiants légaux sénégalais (NINEA, RCCM).

## Indicateurs de succès (exemples)

- Temps moyen d'encaissement < 10 s.
- Disponibilité API ≥ 99,5 %.
- 0 secret en clair au repos.
- Couverture de tests des flux critiques (auth, vente, caisse) ≥ 80 %.

## Suite

Architecture technique : [01 — Architecture](01-architecture.md).
