This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
devicehub-teal/ereuse_devicehub/resources/device/states.py

63 lines
1.7 KiB
Python
Raw Normal View History

from enum import Enum
2018-10-16 09:13:21 +00:00
import inflection
from ereuse_devicehub.resources.event import models as e
class State(Enum):
2019-03-26 09:55:38 +00:00
"""A mutable property of a device result of applying an
:ref:`actions:Action` to it.
"""
@classmethod
def events(cls):
"""Events participating in this state."""
return (s.value for s in cls)
2018-10-16 09:13:21 +00:00
def __str__(self):
2018-10-16 14:30:10 +00:00
return inflection.humanize(inflection.underscore(self.name))
2018-10-16 09:13:21 +00:00
class Trading(State):
"""
Trading states.
:cvar Reserved: The device has been reserved.
:cvar Cancelled: The device has been cancelled.
:cvar Sold: The device has been sold.
:cvar Donated: The device is donated.
:cvar Renting: The device is in renting
:cvar ToBeDisposed: The device is disposed.
This is the end of life of a device.
:cvar ProductDisposed: The device has been removed
from the facility. It does not mean end-of-life.
"""
Reserved = e.Reserve
Cancelled = e.CancelTrade
Sold = e.Sell
Donated = e.Donate
Renting = e.Rent
# todo add Pay = e.Pay
ToBeDisposed = e.ToDisposeProduct
ProductDisposed = e.DisposeProduct
class Physical(State):
"""
Physical states.
:cvar ToBeRepaired: The device has been selected for reparation.
:cvar Repaired: The device has been repaired.
:cvar Preparing: The device is going to be or being prepared.
:cvar Prepared: The device has been prepared.
:cvar ReadyToBeUsed: The device is in working conditions.
:cvar InUse: The device is being reported to be in active use.
"""
ToBeRepaired = e.ToRepair
Repaired = e.Repair
Preparing = e.ToPrepare
Prepared = e.Prepare
ReadyToBeUsed = e.ReadyToUse
InUse = e.Live