bot.tg.dc   A
last analyzed

Complexity

Total Complexity 0

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 0
eloc 50
dl 0
loc 76
rs 10
c 0
b 0
f 0
1
from dataclasses import dataclass, field
2
from dataclasses_json import dataclass_json, config, Undefined
3
from typing import Optional
4
5
6
@dataclass_json(undefined=Undefined.EXCLUDE)
7
@dataclass
8
class MessageFrom:
9
    """Отправитель сообщения"""
10
11
    id: int
12
    is_bot: bool
13
    first_name: str
14
    last_name: Optional[str] = None
15
    username: Optional[str] = None
16
    language_code: Optional[str] = None
17
    is_premium: Optional[bool] = None
18
    added_to_attachment_menu: Optional[bool] = None
19
20
21
@dataclass_json(undefined=Undefined.EXCLUDE)
22
@dataclass
23
class Chat:
24
    """Чат"""
25
26
    id: int
27
    type: str
28
    title: Optional[str] = None
29
    username: Optional[str] = None
30
    first_name: Optional[str] = None
31
    last_name: Optional[str] = None
32
33
34
@dataclass_json(undefined=Undefined.EXCLUDE)
35
@dataclass
36
class Message:
37
    """Сообщение"""
38
39
    message_id: int
40
    message_from: MessageFrom = field(metadata=config(field_name='from'))
41
    date: int
42
    chat: Chat
43
    text: Optional[str] = None
44
45
46
@dataclass_json(undefined=Undefined.EXCLUDE)
47
@dataclass
48
class Update:
49
    """Входящее обновление"""
50
51
    update_id: int
52
    message: Optional[Message] = None
53
    edited_message: Optional[Message] = None
54
55
56
@dataclass_json(undefined=Undefined.EXCLUDE)
57
@dataclass
58
class GetUpdatesResponse:
59
    """Ответ API на метод 'getUpdates'"""
60
61
    ok: bool
62
    result: list[Update]
63
64
65
@dataclass_json(undefined=Undefined.EXCLUDE)
66
@dataclass
67
class SendMessageResponse:
68
    """Ответ API на метод 'sendMessage'"""
69
70
    ok: bool
71
    result: Message
72
73
74
GetUpdatesResponseSchema = GetUpdatesResponse.schema()
75
SendMessageResponseSchema = SendMessageResponse.schema()
76