Olympus/backend/hermes/app/knowledge_seed.py

56 lines
1.6 KiB
Python

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})