This commit is contained in:
2025-12-02 17:02:20 -05:00
parent f82ba25160
commit 6423d1c1a2
49 changed files with 2320 additions and 349 deletions

18
events/types/child_add.py Normal file
View File

@@ -0,0 +1,18 @@
from events.types.payload import Payload
class ChildAdd(Payload):
def __init__(self, child_id: str, status: str):
super().__init__({
'child_id': child_id,
'status': status,
})
@property
def child_id(self) -> str:
return self.get("child_id")
@property
def status(self) -> str:
return self.get("status")

View File

@@ -0,0 +1,18 @@
from events.types.payload import Payload
class ChildDelete(Payload):
def __init__(self, child_id: str, status: str):
super().__init__({
'child_id': child_id,
'status': status,
})
@property
def child_id(self) -> str:
return self.get("child_id")
@property
def status(self) -> str:
return self.get("status")

View File

@@ -0,0 +1,18 @@
from events.types.payload import Payload
class ChildUpdate(Payload):
def __init__(self, child_id: str, status: str):
super().__init__({
'child_id': child_id,
'status': status,
})
@property
def child_id(self) -> str:
return self.get("child_id")
@property
def status(self) -> str:
return self.get("status")

18
events/types/event.py Normal file
View File

@@ -0,0 +1,18 @@
from dataclasses import dataclass, field
import time
from events.types.payload import Payload
@dataclass
class Event:
type: str
payload: Payload
timestamp: float = field(default_factory=time.time)
def to_dict(self):
return {
'type': self.type,
'payload': self.payload.data,
'timestamp': self.timestamp
}

View File

@@ -0,0 +1,19 @@
from enum import Enum
class EventType(Enum):
TASK_UPDATE = "task_update"
TASK_SET = "task_set"
TASK_TEST = "task_test"
REWARD_UPDATE = "reward_update"
REWARD_SET = "reward_set"
CHILD_UPDATE = "child_update"
CHILD_ADD = "child_add"
CHILD_DELETE = "child_delete"
TASK_CREATED = "task_created"
TASK_DELETED = "task_deleted"
TASK_EDITED = "task_edited"
REWARD_CREATED = "reward_created"
REWARD_DELETED = "reward_deleted"
REWARD_EDITED = "reward_edited"
# Add more event types here

6
events/types/payload.py Normal file
View File

@@ -0,0 +1,6 @@
class Payload:
def __init__(self, data: dict):
self.data = data
def get(self, key: str, default=None):
return self.data.get(key, default)

View File

@@ -0,0 +1,19 @@
from events.types.payload import Payload
class RewardCreated(Payload):
def __init__(self, reward_id: str, status: str):
super().__init__({
'reward_id': reward_id,
'status': status
})
@property
def reward_id(self) -> str:
return self.get("reward_id")
@property
def status(self) -> str:
return self.get("status")

View File

@@ -0,0 +1,19 @@
from events.types.payload import Payload
class RewardDeleted(Payload):
def __init__(self, reward_id: str, status: str):
super().__init__({
'reward_id': reward_id,
'status': status
})
@property
def reward_id(self) -> str:
return self.get("reward_id")
@property
def status(self) -> str:
return self.get("status")

View File

@@ -0,0 +1,19 @@
from events.types.payload import Payload
class RewardEdited(Payload):
def __init__(self, reward_id: str, status: str):
super().__init__({
'reward_id': reward_id,
'status': status
})
@property
def reward_id(self) -> str:
return self.get("reward_id")
@property
def status(self) -> str:
return self.get("status")

View File

@@ -0,0 +1,19 @@
from events.types.payload import Payload
class RewardSet(Payload):
def __init__(self, child_id: str, status: str):
super().__init__({
'child_id': child_id,
'status': status
})
@property
def child_id(self) -> str:
return self.get("child_id")
@property
def status(self) -> str:
return self.get("status")

View File

@@ -0,0 +1,29 @@
from events.types.payload import Payload
class RewardUpdate(Payload):
def __init__(self, reward_id: str, child_id: str, status: str, points: int):
super().__init__({
'reward_id': reward_id,
'child_id': child_id,
'status': status,
'points': points
})
@property
def reward_id(self) -> str:
return self.get("reward_id")
@property
def child_id(self) -> str:
return self.get("child_id")
@property
def status(self) -> str:
return self.get("status")
@property
def points(self) -> int:
return self.get("points", 0)

View File

@@ -0,0 +1,19 @@
from events.types.payload import Payload
class TaskCreated(Payload):
def __init__(self, task_id: str, status: str):
super().__init__({
'task_id': task_id,
'status': status
})
@property
def task_id(self) -> str:
return self.get("task_id")
@property
def status(self) -> str:
return self.get("status")

View File

@@ -0,0 +1,19 @@
from events.types.payload import Payload
class TaskDeleted(Payload):
def __init__(self, task_id: str, status: str):
super().__init__({
'task_id': task_id,
'status': status
})
@property
def task_id(self) -> str:
return self.get("task_id")
@property
def status(self) -> str:
return self.get("status")

View File

@@ -0,0 +1,19 @@
from events.types.payload import Payload
class TaskEdited(Payload):
def __init__(self, task_id: str, status: str):
super().__init__({
'task_id': task_id,
'status': status
})
@property
def task_id(self) -> str:
return self.get("task_id")
@property
def status(self) -> str:
return self.get("status")

19
events/types/task_set.py Normal file
View File

@@ -0,0 +1,19 @@
from events.types.payload import Payload
class TaskSet(Payload):
def __init__(self, child_id: str, status: str):
super().__init__({
'child_id': child_id,
'status': status
})
@property
def child_id(self) -> str:
return self.get("child_id")
@property
def status(self) -> str:
return self.get("status")

17
events/types/task_test.py Normal file
View File

@@ -0,0 +1,17 @@
from events.types.payload import Payload
class TaskTest(Payload):
def __init__(self, task_id: str, message: str):
super().__init__({
'task_id': task_id,
'message': message
})
@property
def task_id(self) -> str:
return self.get("task_id")
@property
def message(self) -> str:
return self.get("message")

View File

@@ -0,0 +1,29 @@
from events.types.payload import Payload
class TaskUpdate(Payload):
def __init__(self, task_id: str, child_id: str, status: str, points: int):
super().__init__({
'task_id': task_id,
'child_id': child_id,
'status': status,
'points': points
})
@property
def task_id(self) -> str:
return self.get("task_id")
@property
def child_id(self) -> str:
return self.get("child_id")
@property
def status(self) -> str:
return self.get("status")
@property
def points(self) -> int:
return self.get("points", 0)