> ## Documentation Index
> Fetch the complete documentation index at: https://api-documentation.kare-app.fr/llms.txt
> Use this file to discover all available pages before exploring further.

# Seed en local

> Compte de dev généré, compte de démonstration, remise à zéro

## Prérequis

```bash theme={null}
cd apps/api
make up          # postgres, redis, garage (S3), mailpit
yarn workspace @kare/database migrate
```

Les uploads passent par le S3 local compatible (Garage/MinIO). Les connexions prestataire se font
par OTP e-mail : le code se lit dans **Mailpit** (`http://mail.kare.localhost`).

## Compte de dev généré

```bash theme={null}
yarn db:seed account \
  --email=owner@example.com \
  --archetype=hotel \
  --size=s
```

La commande affiche le **mot de passe généré**, l'**id d'organisation** et le **seed** utilisé.
Ajouter `--password=...` pour choisir le mot de passe, `--name` et `--org-name` pour l'identité.

| Défaut     | Valeur                  |
| ---------- | ----------------------- |
| `--size`   | `s`                     |
| `--assets` | `upload`                |
| `--as-of`  | aujourd'hui             |
| `--seed`   | tiré au sort et affiché |

Six archétypes : `hotel`, `centre_commercial`, `ehpad`, `logistique`, `bureaux`,
`etablissement_scolaire`. Tailles : `s` = 1 établissement, `m` = 3, `l` = 8.

<Tip>
  `--assets=none` saute l'upload S3 : un `s` passe alors sous la minute, ce qui suffit pour tout ce
  qui ne touche pas aux pièces jointes.
</Tip>

## Compte de démonstration

```bash theme={null}
yarn db:seed account \
  --email=demo@example.com \
  --password='...' \
  --blueprint=test-account \
  --assets=upload
```

Le blueprint décide tout : établissements, équipe, prestataires, règles, chronologie, et les vrais
PDF de son dossier `documents/`. Deux runs avec le même `--as-of` produisent le même compte.

## Remettre un compte à zéro

<Warning>
  `reset` supprime les données du tenant. Il préserve l'organisation, sa connexion et les rôles
  système. Il est **désactivé en production**.
</Warning>

<Steps>
  <Step title="Prévisualiser">
    Aucune confirmation n'est requise pour un dry run ; il affiche le plan et les compteurs de
    suppression.

    ```bash theme={null}
    yarn db:seed reset \
      --email=demo@example.com \
      --blueprint=test-account \
      --dry-run
    ```
  </Step>

  <Step title="Rejouer avec l'id affiché">
    ```bash theme={null}
    yarn db:seed reset \
      --email=demo@example.com \
      --blueprint=test-account \
      --confirm-organization-id=<organizationId>
    ```
  </Step>
</Steps>

Cibler par `--org=<uuid>` plutôt que par `--email` quand la connexion appartient à plusieurs
organisations. Les objets S3 devenus orphelins sont supprimés en fin de run ; avec `--assets=none`
ils sont laissés en place et le run le signale.

## Opérateur backoffice

```bash theme={null}
yarn db:seed bo-admin --email=operator@akord-securite.fr
```

Idempotent, génère un mot de passe s'il n'est pas fourni.

## Reproduire un jeu de données

```bash theme={null}
yarn db:seed account \
  --email=repro@example.com \
  --archetype=ehpad --size=m \
  --seed=42 --as-of=2026-03-01
```

`--seed` rejoue exactement le même contenu généré, `--as-of` ancre toutes les dates relatives en
UTC. Les deux ensemble suffisent à reproduire un compte à l'identique sur n'importe quelle machine.

## Vérifier sans écrire

```bash theme={null}
yarn db:seed account --email=x@example.com --archetype=bureaux --size=l --dry-run
```

Le dry run résout la source, valide le blueprint et affiche le plan (établissements, cellules,
équipe, prestataires, règles, événements par type) sans toucher la base.
