Module genshin.models.zzz.chronicle.notes

ZZZ sticky notes (real-time notes) models.

Classes

class BatteryCharge (**data: Any)

ZZZ battery charge model.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Expand source code
class BatteryCharge(APIModel):
    """ZZZ battery charge model."""

    current: int
    max: int
    seconds_till_full: int = Aliased("restore")

    @property
    def is_full(self) -> bool:
        """Check if the energy is full."""
        return self.current == self.max

    @property
    def full_datetime(self) -> datetime.datetime:
        """Get the datetime when the energy will be full."""
        return datetime.datetime.now().astimezone() + datetime.timedelta(seconds=self.seconds_till_full)

    @pydantic.model_validator(mode="before")
    def __unnest_progress(cls, values: dict[str, typing.Any]) -> dict[str, typing.Any]:
        return {**values, **values.pop("progress")}

Ancestors

Class variables

var current : int
var max : int
var model_computed_fields
var model_config : pydantic.config.ConfigDict
var model_fields
var seconds_till_full : int

Instance variables

prop full_datetime : datetime.datetime

Get the datetime when the energy will be full.

Expand source code
@property
def full_datetime(self) -> datetime.datetime:
    """Get the datetime when the energy will be full."""
    return datetime.datetime.now().astimezone() + datetime.timedelta(seconds=self.seconds_till_full)
prop is_full : bool

Check if the energy is full.

Expand source code
@property
def is_full(self) -> bool:
    """Check if the energy is full."""
    return self.current == self.max
class VideoStoreState (value, names=None, *, module=None, qualname=None, type=None, start=1)

Video store management state.

Expand source code
class VideoStoreState(enum.Enum):
    """Video store management state."""

    REVENUE_AVAILABLE = "SaleStateDone"
    WAITING_TO_OPEN = "SaleStateNo"
    CURRENTLY_OPEN = "SaleStateDoing"

Ancestors

  • enum.Enum

Class variables

var CURRENTLY_OPEN
var REVENUE_AVAILABLE
var WAITING_TO_OPEN
class ZZZEngagement (**data: Any)

ZZZ engagement model.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Expand source code
class ZZZEngagement(APIModel):
    """ZZZ engagement model."""

    current: int
    max: int

Ancestors

Class variables

var current : int
var max : int
var model_computed_fields
var model_config : pydantic.config.ConfigDict
var model_fields
class ZZZNotes (**data: Any)

Zenless Zone Zero sticky notes model.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Expand source code
class ZZZNotes(APIModel):
    """Zenless Zone Zero sticky notes model."""

    battery_charge: BatteryCharge = Aliased("energy")
    engagement: ZZZEngagement = Aliased("vitality")
    scratch_card_completed: bool = Aliased("card_sign")
    video_store_state: VideoStoreState
    hollow_zero: HollowZero

    @pydantic.field_validator("scratch_card_completed", mode="before")
    def __transform_value(cls, v: typing.Literal["CardSignDone", "CardSignNotDone"]) -> bool:
        return v == "CardSignDone"

    @pydantic.model_validator(mode="before")
    def __unnest_value(cls, values: dict[str, typing.Any]) -> dict[str, typing.Any]:
        values["video_store_state"] = values["vhs_sale"]["sale_state"]
        values["hollow_zero"] = {
            "bounty_commission": values["bounty_commission"],
            "survey_points": values["survey_points"],
        }
        return values

Ancestors

Class variables

var battery_chargeBatteryCharge
var engagementZZZEngagement
var hollow_zero : genshin.models.zzz.chronicle.notes.HollowZero
var model_computed_fields
var model_config : pydantic.config.ConfigDict
var model_fields
var scratch_card_completed : bool
var video_store_stateVideoStoreState