Initial commit

This commit is contained in:
Anry Das
2026-04-26 10:08:54 +03:00
commit e3367c6a2e
13 changed files with 2338 additions and 0 deletions

73
model.py Normal file
View File

@@ -0,0 +1,73 @@
from dataclasses import dataclass, field
from datetime import datetime
from typing import List, Self
import app_config as cfg
LOG = cfg.LOG
@dataclass
class POData:
city: str = field(repr=False)
street: str = field(repr=False)
house: int = field(repr=False)
po_type: str = field(repr=False)
reason: str = field(repr=False)
placement_date: str
start_date: str
stop_date: str
start_time: str
stop_time: str
notified_at: datetime = field(repr=False, default=None)
updated_at: datetime = field(repr=False, default=datetime.now())
need_to_send: bool = field(repr=False, default=True)
start_ts: float = field(init=False)
def __post_init__(self):
if self.start_date and self.start_time:
self.start_ts = datetime.strptime(f'{self.start_date} {self.start_time}', '%Y.%m.%d %H:%M').timestamp()
else:
LOG.error(f'wrong start_date or start_time in {self}')
def set_sent(self):
self.need_to_send = False
def set_notified_now(self):
self.notified_at = datetime.now()
def update_notified_at(self, old_data: Self):
self.notified_at = old_data.notified_at
@dataclass
class GPVData:
approved_from: str
event_date: str
hours_off: List
hours_on: List
outage_queue: str = field(repr=False)
notified_at: datetime = field(repr=False, default=None)
updated_at: datetime = field(repr=False, default=datetime.now())
need_to_send: bool = field(repr=False, default=True)
start_ts: List[float] = field(default_factory=list, init=False)
def __post_init__(self):
if self.event_date and self.hours_off and self.hours_on:
for index, value in enumerate(self.hours_on):
self.start_ts.append(datetime.strptime(f'{self.event_date} {self.hours_on[index]}', '%d.%m.%Y %H:%M').timestamp())
else:
LOG.error(f'wrong start_date or start_time in {self}')
def set_send(self):
self.need_to_send = False
self.notified_at = datetime.now()
@dataclass
class JobData:
name: str
trigger: str
next: str
if __name__ == '__main__':
pass