-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTask.py
More file actions
65 lines (50 loc) · 1.76 KB
/
Task.py
File metadata and controls
65 lines (50 loc) · 1.76 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from datetime import datetime
from typing import Any
KINDS = ["", "todo", "in-progress", "done"]
class Task:
def __init__(self, id, description, status, created_at, updated_at):
self.id = id
self.description = description
self.status = status
self.created_at = created_at
self.updated_at = updated_at
def to_dict(self) -> dict:
return {
"id": self.id,
"description": self.description,
"status": self.status,
"created_at": self.created_at,
"updated_at": self.updated_at,
}
def get_id(self) -> Any:
return self.id
def get_description(self) -> str:
return self.description
def get_status(self) -> str:
return self.status
def get_created_at(self) -> datetime:
return self.created_at
def get_updated_at(self) -> datetime:
return self.updated_at
def set_description(self, description: str) -> None:
self.description = description
def set_status(self, status: str) -> None:
self.status = status
def set_created_at(self, created_at: datetime) -> None:
self.created_at = created_at
def set_updated_at(self, updated_at: datetime) -> None:
self.updated_at = updated_at
def to_string(self) -> str:
created_at_str = datetime.fromtimestamp(self.created_at).strftime(
"%H:%M %d/%m/%Y"
)
updated_at_str = datetime.fromtimestamp(self.updated_at).strftime(
"%H:%M %d/%m/%Y"
)
return (
f"{str(self.id).ljust(5)}"
f"{self.description.ljust(40)}"
+ str(self.status).ljust(13)
+ f"{created_at_str.ljust(20)}"
f"{updated_at_str.ljust(20)}"
)