feat: add depense tagging

This commit is contained in:
2026-01-19 05:19:11 +01:00
parent c5e51a7513
commit 0fd6bdaeb3
8 changed files with 711 additions and 43 deletions

View File

@@ -0,0 +1,76 @@
"""Script pour initialiser les tags prédéfinis dans la base de données."""
from sqlalchemy.exc import IntegrityError
from ..database import init_db, get_session
from ..database.models import Tag
# Liste des tags prédéfinis
PREDEFINED_TAGS = [
"Ascenseur",
"Assurance",
"Contentieux",
"Diagnostics",
"Eau",
"Elec",
"Entretien",
"Hono E/S",
"Hono Gestion",
"Loyer Charge",
"Tel",
"Travaux",
]
def seed_tags():
"""Initialise les tags prédéfinis en base."""
# Initialize database
init_db()
# Get session
session = next(get_session())
try:
created_count = 0
skipped_count = 0
for tag_name in PREDEFINED_TAGS:
try:
# Check if tag already exists
existing = session.query(Tag).filter(Tag.nom == tag_name).first()
if existing:
print(f" ⏭️ Tag '{tag_name}' existe déjà (id={existing.id})")
skipped_count += 1
else:
tag = Tag(nom=tag_name)
session.add(tag)
session.flush()
print(f" ✅ Tag '{tag_name}' créé (id={tag.id})")
created_count += 1
except IntegrityError:
session.rollback()
print(f" ⚠️ Erreur lors de la création du tag '{tag_name}'")
skipped_count += 1
session.commit()
print(f"\n📊 Résumé:")
print(f" - {created_count} tags créés")
print(f" - {skipped_count} tags existants")
print(f" - Total: {len(PREDEFINED_TAGS)} tags")
except Exception as e:
session.rollback()
print(f"❌ Erreur: {e}")
raise
finally:
session.close()
if __name__ == "__main__":
print("🏷️ Initialisation des tags prédéfinis...\n")
seed_tags()
print("\n✨ Terminé!")