from ..models import Database from ..schemas import DatabaseBase, DatabaseSchema from sqlalchemy import select, delete from sqlalchemy.ext.asyncio import AsyncSession from typing import Sequence, Optional, List async def get_all( session: AsyncSession ) -> Sequence[DatabaseSchema]: stmt = select(Database).order_by(Database.id) result = await session.scalars(stmt) return result.all() async def get( session: AsyncSession, id: int ) -> DatabaseSchema: db_login = await session.get(Database,id) if db_login is None: return None return db_login async def create( session:AsyncSession, model: DatabaseBase ) -> DatabaseSchema: login = Database(**model.model_dump()) session.add(login) await session.commit() return login async def delete( session: AsyncSession, id: int ): db_login = await session.get(Database,id) if db_login is None: return None stmt = delete(Database).filter(Database.id == id) await session.execute(stmt) await session.commit() async def update( session:AsyncSession, id: int, model: DatabaseBase ) -> DatabaseSchema: db_login = await session.get(Database,id) if db_login is None: return None for var, value in vars(model).items(): setattr(db_login, var, value) if value else None await session.commit() return db_login