Files
AI-VideoAssistant/api/app/id_generator.py
2026-02-12 19:05:50 +08:00

18 lines
557 B
Python

import uuid
from typing import Any, Type
from sqlalchemy.orm import Session
def short_id(prefix: str, size: int = 8) -> str:
return f"{prefix}_{uuid.uuid4().hex[:size]}"
def unique_short_id(prefix: str, db: Session, model_cls: Type[Any], size: int = 8) -> str:
for _ in range(10):
candidate = short_id(prefix, size=size)
exists = db.query(model_cls.id).filter(model_cls.id == candidate).first()
if not exists:
return candidate
raise RuntimeError(f"failed to generate unique id for {model_cls.__name__}")