felicity-lims/felicity/apps/reflex/repository.py

75 lines
1.9 KiB
Python
Raw Normal View History

2024-07-21 15:06:51 +08:00
import sqlalchemy as sa
2024-07-21 21:44:22 +08:00
from felicity.apps.reflex.entities import (
2024-07-21 15:06:51 +08:00
ReflexRule,
ReflexBrainAddition,
ReflexBrainFinal,
ReflexBrainCriteria,
ReflexBrain,
ReflexAction,
)
2024-07-22 16:20:56 +08:00
from felicity.database.paging import PageCursor
from felicity.database.repository import BaseRepository
2024-07-21 15:06:51 +08:00
2024-07-22 16:20:56 +08:00
class ReflexRuleRepository(BaseRepository[ReflexRule]):
2024-07-21 15:06:51 +08:00
def __init__(self) -> None:
2024-07-22 16:20:56 +08:00
super().__init__(ReflexRule)
2024-07-21 15:06:51 +08:00
async def paginate_with_cursors(
self,
page_size: int | None = None,
after_cursor: str | None = None,
before_cursor: str | None = None,
text: str | None = None,
sort_by: list[str] | None = None,
) -> PageCursor:
filters = {}
_or_ = dict()
if text:
arg_list = ["name__ilike", "description__ilike"]
for _arg in arg_list:
_or_[_arg] = f"%{text}%"
filters = {sa.or_: _or_}
2024-07-22 16:20:56 +08:00
return super().paginate_with_cursors(
2024-07-21 15:06:51 +08:00
page_size=page_size,
after_cursor=after_cursor,
before_cursor=before_cursor,
filters=filters,
sort_by=sort_by,
)
class ReflexBrainAdditionRepository(
2024-07-22 16:20:56 +08:00
BaseRepository[ReflexBrainAddition]
2024-07-21 15:06:51 +08:00
):
def __init__(self) -> None:
2024-07-22 16:20:56 +08:00
super().__init__(ReflexBrainAddition)
2024-07-21 15:06:51 +08:00
class ReflexBrainFinalRepository(
2024-07-22 16:20:56 +08:00
BaseRepository[ReflexBrainFinal]
2024-07-21 15:06:51 +08:00
):
def __init__(self) -> None:
2024-07-22 16:20:56 +08:00
super().__init__(ReflexBrainFinal)
2024-07-21 15:06:51 +08:00
class ReflexBrainCriteriaRepository(
2024-07-22 16:20:56 +08:00
BaseRepository[ReflexBrainCriteria]
2024-07-21 15:06:51 +08:00
):
def __init__(self) -> None:
2024-07-22 16:20:56 +08:00
super().__init__(ReflexBrainCriteria)
2024-07-21 15:06:51 +08:00
2024-07-22 16:20:56 +08:00
class ReflexBrainRepository(BaseRepository[ReflexBrain]):
2024-07-21 15:06:51 +08:00
def __init__(self) -> None:
2024-07-22 16:20:56 +08:00
super().__init__(ReflexBrain)
2024-07-21 15:06:51 +08:00
2024-07-22 16:20:56 +08:00
class ReflexActionRepository(BaseRepository[ReflexAction]):
2024-07-21 15:06:51 +08:00
def __init__(self) -> None:
2024-07-22 16:20:56 +08:00
super().__init__(ReflexAction)