HabitTracker/models/HabitList.py

49 lines
1.5 KiB
Python
Raw Normal View History

2024-02-12 21:07:55 +01:00
from dataclasses import dataclass
from datetime import date, datetime
from db.SQLiteClient import create_habitTrackings, get_habitTrackings, delete_habitTrackings, create_habitList, \
2024-02-12 22:31:51 +01:00
get_habitList, get_habits, get_users
2024-02-12 21:07:55 +01:00
from models.Habit import Habit
2024-02-12 22:31:51 +01:00
from models.User import User
2024-02-12 21:07:55 +01:00
@dataclass
class HabitList:
id: int
name: str
description: str
created_at: date
updated_at: date
2024-02-12 22:31:51 +01:00
habits: list = None
2024-02-12 21:07:55 +01:00
@staticmethod
def create(user_id: int, name: str, description: str):
id = create_habitList(user_id, name, description)
return HabitList(id, name, description, datetime.now(), datetime.now())
2024-02-12 21:07:55 +01:00
@staticmethod
def get(id: int):
habitList = get_habitList(id)
return HabitList(habitList[0], habitList[1], habitList[2], datetime.strptime(habitList[3], "%Y-%m-%dT%H:%M:%S.%f"), datetime.strptime(habitList[4], "%Y-%m-%dT%H:%M:%S.%f")) if habitList else None
2024-02-12 21:07:55 +01:00
def delete(self):
delete_habitTrackings(self.id)
def get_habits(self):
raw_habits = get_habits(self.id)
habits = []
for habit in raw_habits:
habit = Habit(habit[0], habit[1], habit[2], habit[3], habit[4], habit[5], habit[6])
habits.append(habit)
return habits
2024-02-12 22:31:51 +01:00
def get_users(self):
raw_users = get_users(self.id)
users = []
for user in raw_users:
user = User(user[0], user[1], user[2], user[3])
users.append(user)
return users