import logging from sqlalchemy.orm import Session from app.models.knowledge import KnowledgeManufacturer from app.repositories.knowledge_repository import KnowledgeRepository from app.services.knowledge_service import unique_slug logger = logging.getLogger(__name__) STANDARD_MANUFACTURERS = [ "Stabo", "President", "Albrecht", "Marconi", "Rohde & Schwarz", "HP", "CRT", "Alinco", "Motorola", "Team", ] def seed_knowledge_manufacturers(db: Session) -> None: created = 0 for name in STANDARD_MANUFACTURERS: manufacturer = KnowledgeRepository.get_manufacturer_by_name(db, name) if manufacturer is not None: changed = False if not manufacturer.slug: manufacturer.slug = unique_slug( db, manufacturer.name, lambda session, value: KnowledgeRepository.get_manufacturer_by_slug( session, value, manufacturer.id, ) is not None, ) changed = True if changed: db.add(manufacturer) continue slug = unique_slug( db, name, lambda session, value: KnowledgeRepository.get_manufacturer_by_slug(session, value) is not None, ) db.add(KnowledgeManufacturer(name=name, slug=slug, website="", notes="")) created += 1 db.commit() logger.info("knowledge.manufacturers.seeded", extra={"created": created})