Adding Manufacturers and ScopeModels

This commit is contained in:
Ian Roddis committed 2026-06-25 10:46:39 -03:00
1 parent 9111117404
commit b7ad517174
24 files changed
+822 -2

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.models.manufacturer import Manufacturer
async def get(db: AsyncSession, manufacturer_id: int) -> Manufacturer | None:
return await db.get(Manufacturer, manufacturer_id)
async def list_all(
db: AsyncSession, skip: int = 0, limit: int = 100
) -> list[Manufacturer]:
result = await db.execute(
select(Manufacturer).order_by(Manufacturer.name).offset(skip).limit(limit)
)
return list(result.scalars().all())
async def create(
db: AsyncSession,
*,
name: str,
url: str,
logo_url: str | None = None,
) -> Manufacturer:
m = Manufacturer(name=name, url=url, logo_url=logo_url)
db.add(m)
await db.commit()
await db.refresh(m)
return m
async def update(
db: AsyncSession, manufacturer: Manufacturer, data: dict
) -> Manufacturer:
for field, value in data.items():
setattr(manufacturer, field, value)
await db.commit()
await db.refresh(manufacturer)
return manufacturer
async def delete(db: AsyncSession, manufacturer: Manufacturer) -> None:
await db.delete(manufacturer)
await db.commit()
+44
View File
@@ -0,0 +1,44 @@
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.models.scope_model import ScopeModel
async def get(db: AsyncSession, scope_model_id: int) -> ScopeModel | None:
return await db.get(ScopeModel, scope_model_id)
async def list_all(
db: AsyncSession, skip: int = 0, limit: int = 100
) -> list[ScopeModel]:
result = await db.execute(
select(ScopeModel).order_by(ScopeModel.name).offset(skip).limit(limit)
)
return list(result.scalars().all())
async def create(
db: AsyncSession,
*,
name: str,
manufacturer_id: int,
url: str | None = None,
) -> ScopeModel:
sm = ScopeModel(name=name, manufacturer_id=manufacturer_id, url=url)
db.add(sm)
await db.commit()
await db.refresh(sm, attribute_names=["manufacturer"])
return sm
async def update(db: AsyncSession, scope_model: ScopeModel, data: dict) -> ScopeModel:
for field, value in data.items():
setattr(scope_model, field, value)
await db.commit()
await db.refresh(scope_model, attribute_names=["manufacturer"])
return scope_model
async def delete(db: AsyncSession, scope_model: ScopeModel) -> None:
await db.delete(scope_model)
await db.commit()