Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions dbschema/migrations/00049-m1m66kk.edgeql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
CREATE MIGRATION m1m66kk5nognqxp7hwt4w2on7qnfuclv7u2zdj7rstidlntw7a23kq
ONTO m1fjqfwzmxszvkdaqxd3ygmk75xhfd35kmfkr4xmgswlkh7xxoddaq
{
CREATE SCALAR TYPE waicolle::WaifuStatus EXTENDING enum<WAICOLLE, WAIVENTURE, DEAD, RETIRED>;
ALTER TYPE waicolle::Waifu {
CREATE PROPERTY season: std::str;
CREATE PROPERTY status: waicolle::WaifuStatus {
SET default := (waicolle::WaifuStatus.WAICOLLE);
};
};
};
5 changes: 5 additions & 0 deletions dbschema/waicolle.esdl
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ module waicolle {
}

scalar type CollagePosition extending enum<DEFAULT, LEFT_OF, RIGHT_OF>;
scalar type WaifuStatus extending enum<WAICOLLE, WAIVENTURE, DEAD, RETIRED>;

type Waifu extending default::ClientObject {
required property timestamp -> datetime {
Expand Down Expand Up @@ -76,6 +77,10 @@ module waicolle {
on target delete allow;
}
multi link ascended_to := .<ascended_from[is Waifu];
property status -> WaifuStatus {
default := WaifuStatus.WAICOLLE;
}
property season -> str;
property disabled := exists .ascended_to;
property frozen := exists .owner.frozen_at;
property trade_locked := exists (
Expand Down
11 changes: 11 additions & 0 deletions nanapi/database/waicolle/trade_insert.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class TradeInsertResultReceivedOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -118,6 +125,8 @@ class TradeInsertResultReceived(BaseModel):
nanaed: bool
original_owner: TradeInsertResultReceivedOriginalOwner | None
owner: TradeInsertResultReceivedOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down Expand Up @@ -170,6 +179,8 @@ class TradeInsertResultOffered(BaseModel):
nanaed: bool
original_owner: TradeInsertResultOfferedOriginalOwner | None
owner: TradeInsertResultOfferedOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
11 changes: 11 additions & 0 deletions nanapi/database/waicolle/trade_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class TradeSelectResultReceivedOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -102,6 +109,8 @@ class TradeSelectResultReceived(BaseModel):
nanaed: bool
original_owner: TradeSelectResultReceivedOriginalOwner | None
owner: TradeSelectResultReceivedOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down Expand Up @@ -154,6 +163,8 @@ class TradeSelectResultOffered(BaseModel):
nanaed: bool
original_owner: TradeSelectResultOfferedOriginalOwner | None
owner: TradeSelectResultOfferedOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
9 changes: 9 additions & 0 deletions nanapi/database/waicolle/waifu_ascendable.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuAscendableResultKey(BaseModel):
chara_id_al: int
level: int
Expand Down Expand Up @@ -102,6 +109,8 @@ class WaifuAscendableResultElements(BaseModel):
nanaed: bool
original_owner: WaifuAscendableResultElementsOriginalOwner | None
owner: WaifuAscendableResultElementsOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
9 changes: 9 additions & 0 deletions nanapi/database/waicolle/waifu_bulk_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuBulkUpdateResultOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -92,6 +99,8 @@ class WaifuBulkUpdateResult(BaseModel):
nanaed: bool
original_owner: WaifuBulkUpdateResultOriginalOwner | None
owner: WaifuBulkUpdateResultOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
9 changes: 9 additions & 0 deletions nanapi/database/waicolle/waifu_change_owner.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuChangeOwnerResultOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -88,6 +95,8 @@ class WaifuChangeOwnerResult(BaseModel):
nanaed: bool
original_owner: WaifuChangeOwnerResultOriginalOwner | None
owner: WaifuChangeOwnerResultOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
9 changes: 9 additions & 0 deletions nanapi/database/waicolle/waifu_edged.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuEdgedResultKey(BaseModel):
chara_id_al: int

Expand Down Expand Up @@ -101,6 +108,8 @@ class WaifuEdgedResultElements(BaseModel):
nanaed: bool
original_owner: WaifuEdgedResultElementsOriginalOwner | None
owner: WaifuEdgedResultElementsOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
9 changes: 9 additions & 0 deletions nanapi/database/waicolle/waifu_insert.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuInsertResultOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -88,6 +95,8 @@ class WaifuInsertResult(BaseModel):
nanaed: bool
original_owner: WaifuInsertResultOriginalOwner | None
owner: WaifuInsertResultOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
9 changes: 9 additions & 0 deletions nanapi/database/waicolle/waifu_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuSelectResultOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -75,6 +82,8 @@ class WaifuSelectResult(BaseModel):
nanaed: bool
original_owner: WaifuSelectResultOriginalOwner | None
owner: WaifuSelectResultOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
9 changes: 9 additions & 0 deletions nanapi/database/waicolle/waifu_select_by_chara.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuSelectByCharaResultOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -78,6 +85,8 @@ class WaifuSelectByCharaResult(BaseModel):
nanaed: bool
original_owner: WaifuSelectByCharaResultOriginalOwner | None
owner: WaifuSelectByCharaResultOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
2 changes: 2 additions & 0 deletions nanapi/database/waicolle/waifu_select_by_user.edgeql
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ with
as_og := <optional bool>$as_og ?? false,
disabled := <optional bool>$disabled ?? false,
exclude_custom_image := <optional bool>$exclude_custom_image ?? false,
status := <waicolle::WaifuStatus>$status,
player := (select waicolle::Player filter .client = global client and .user.discord_id = discord_id),
select waicolle::Waifu {
*,
Expand All @@ -37,6 +38,7 @@ and (.trade_locked = trade_locked if exists trade_locked else true)
and (.blooded = blooded if exists blooded else true)
and (.nanaed = nanaed if exists nanaed else true)
and (.custom_collage = custom_collage if exists custom_collage else true)
and (.status = status if exists status else true)
and (.level > 0 if exists ascended else true)
and .disabled = disabled
order by .timestamp desc
22 changes: 22 additions & 0 deletions nanapi/database/waicolle/waifu_select_by_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# pyright: strict
from datetime import datetime
from enum import StrEnum
from typing import Literal
from uuid import UUID

from gel import AsyncIOExecutor
Expand All @@ -21,6 +22,7 @@
as_og := <optional bool>$as_og ?? false,
disabled := <optional bool>$disabled ?? false,
exclude_custom_image := <optional bool>$exclude_custom_image ?? false,
status := <waicolle::WaifuStatus>$status,
player := (select waicolle::Player filter .client = global client and .user.discord_id = discord_id),
select waicolle::Waifu {
*,
Expand All @@ -47,18 +49,34 @@
and (.blooded = blooded if exists blooded else true)
and (.nanaed = nanaed if exists nanaed else true)
and (.custom_collage = custom_collage if exists custom_collage else true)
and (.status = status if exists status else true)
and (.level > 0 if exists ascended else true)
and .disabled = disabled
order by .timestamp desc
"""


WAIFU_SELECT_BY_USER_STATUS = Literal[
'WAICOLLE',
'WAIVENTURE',
'DEAD',
'RETIRED',
]


class WaicolleCollagePosition(StrEnum):
DEFAULT = 'DEFAULT'
LEFT_OF = 'LEFT_OF'
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuSelectByUserResultOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -99,6 +117,8 @@ class WaifuSelectByUserResult(BaseModel):
nanaed: bool
original_owner: WaifuSelectByUserResultOriginalOwner | None
owner: WaifuSelectByUserResultOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand All @@ -110,6 +130,7 @@ async def waifu_select_by_user(
executor: AsyncIOExecutor,
*,
discord_id: str,
status: WAIFU_SELECT_BY_USER_STATUS,
characters_ids_al: list[int] | None = None,
level: int | None = None,
locked: bool | None = None,
Expand All @@ -125,6 +146,7 @@ async def waifu_select_by_user(
resp = await executor.query_json( # pyright: ignore[reportUnknownMemberType]
EDGEQL_QUERY,
discord_id=discord_id,
status=status,
characters_ids_al=characters_ids_al,
level=level,
locked=locked,
Expand Down
9 changes: 9 additions & 0 deletions nanapi/database/waicolle/waifu_track_unlocked.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,13 @@ class WaicolleCollagePosition(StrEnum):
RIGHT_OF = 'RIGHT_OF'


class WaicolleWaifuStatus(StrEnum):
DEAD = 'DEAD'
RETIRED = 'RETIRED'
WAICOLLE = 'WAICOLLE'
WAIVENTURE = 'WAIVENTURE'


class WaifuTrackUnlockedResultOwnerUser(BaseModel):
discord_id: str

Expand Down Expand Up @@ -116,6 +123,8 @@ class WaifuTrackUnlockedResult(BaseModel):
nanaed: bool
original_owner: WaifuTrackUnlockedResultOriginalOwner | None
owner: WaifuTrackUnlockedResultOwner
season: str | None
status: WaicolleWaifuStatus | None
timestamp: datetime
trade_locked: bool

Expand Down
Loading