~homeworkprod/byceps

ref: 4144a29fdeb34e20d44e5cd78a324d9f9f6a2b0d byceps/byceps/events/ticketing.py -rw-r--r-- 853 bytes
4144a29f — Jochen Kupperschmidt Dim archived brands in admin brand navigation dropdown 1 year, 1 month ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"""
byceps.events.ticketing
~~~~~~~~~~~~~~~~~~~~~~~

:Copyright: 2006-2021 Jochen Kupperschmidt
:License: Revised BSD (see `LICENSE` file for details)
"""

from dataclasses import dataclass
from typing import Optional

from ..services.seating.transfer.models import SeatID
from ..services.ticketing.transfer.models import TicketCode, TicketID
from ..typing import PartyID, UserID

from .base import _BaseEvent


@dataclass(frozen=True)
class _TicketEvent(_BaseEvent):
    ticket_id: TicketID


@dataclass(frozen=True)
class TicketCheckedIn(_TicketEvent):
    ticket_code: TicketCode
    occupied_seat_id: Optional[SeatID]
    user_id: Optional[UserID]
    user_screen_name: Optional[str]


@dataclass(frozen=True)
class TicketsSold(_BaseEvent):
    party_id: PartyID
    owner_id: Optional[UserID]
    owner_screen_name: Optional[str]
    quantity: int