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
|
2024-07-24 04:30:01 +08:00
|
|
|
from felicity.apps.abstract.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)
|