""" Script d'initialisation. Crée le schéma et le groupe de démonstration initial. Usage: cd /opt/app/backend && venv/bin/python ../deploy/seed.py """ import asyncio import sys import os # Ajouter le backend au path sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "backend")) from app.core.database import engine, Base, async_session from app.services.admin_database import assurer_sysadmin_instance, initialiser_demo # Importer TOUS les modèles pour que create_all crée toutes les tables from app.models.groupe import Groupe from app.models.membre import Membre from app.models.poste import Poste from app.models.affectation import Affectation from app.models.invitation import Invitation from app.models.collecte import Collecte from app.models.depense import Depense from app.models.reunion import Reunion from app.models.presence import Presence from app.models.pv_reunion import PvReunion from app.models.rotation import Rotation from app.models.rapport_rsg import RapportRsg from app.models.jeton import Jeton from app.models.litterature import Litterature from app.models.vente_litterature import VenteLitterature from app.models.envoi_contribution import EnvoiContribution from app.models.config_repartition import ConfigRepartition from app.models.sync_log import SyncLog from app.models.proposition import Proposition from app.models.operation_bancaire import OperationBancaire from app.models.evenement import Evenement from app.models.candidature import Candidature from app.models.poste_module import PosteModule from app.models.reserve import Reserve from app.models.transaction_comptable import TransactionComptable from app.models.mouvement_reserve import MouvementReserve from app.models.destinataire_contribution import DestinataireContribution from app.models.instance_admin import InstanceAdmin async def seed(): async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) async with async_session() as db: await assurer_sysadmin_instance(db) demo = await initialiser_demo(db) await db.commit() print("\n═══ Initialisation terminée ═══") print(" Groupe: Groupe Démonstration") print(f" {demo['message']}") print("\n Connectez-vous avec:") print(" Identifiant: sysadmin") print(" PIN: 0000") if __name__ == "__main__": asyncio.run(seed())