from dataclasses import dataclass from datetime import date, datetime from db.SQLiteClient import delete_habitTrackings, create_habitList, get_habitList, get_habits, get_users from models.Habit import Habit from models.User import User @dataclass class HabitList: id: int name: str description: str created_at: date updated_at: date habits: list = None @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()) @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 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 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