"""Database layer: SQLAlchemy models, Pydantic schemas, repository, init.""" from duty_teller.db.models import Base, User, Duty from duty_teller.db.schemas import ( UserCreate, UserInDb, DutyCreate, DutyInDb, DutyWithUser, ) from duty_teller.db.session import ( get_engine, get_session_factory, get_session, session_scope, ) from duty_teller.db.repository import ( delete_duties_in_range, get_or_create_user, get_or_create_user_by_full_name, get_duties, insert_duty, set_user_phone, ) __all__ = [ "Base", "User", "Duty", "UserCreate", "UserInDb", "DutyCreate", "DutyInDb", "DutyWithUser", "get_engine", "get_session_factory", "get_session", "session_scope", "delete_duties_in_range", "get_or_create_user", "get_or_create_user_by_full_name", "get_duties", "insert_duty", "set_user_phone", "init_db", ] def init_db(database_url: str) -> None: """Create tables from metadata (Alembic migrations handle schema in production).""" engine = get_engine(database_url) Base.metadata.create_all(bind=engine)