39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
from dataclasses import dataclass
|
|
from datetime import date, datetime
|
|
|
|
from db.SQLiteClient import create_habitTrackings, get_habitTrackings, delete_habitTrackings, create_habitList, \
|
|
get_habitList, get_habits
|
|
from models.Habit import Habit
|
|
|
|
|
|
@dataclass
|
|
class HabitList:
|
|
id: int
|
|
user_id: int
|
|
name: str
|
|
description: str
|
|
created_at: date
|
|
updated_at: date
|
|
|
|
@staticmethod
|
|
def create(user_id: int, name: str, description: str):
|
|
id = create_habitList(user_id, name, description)
|
|
return HabitList(id, user_id, name, description, datetime.now(), datetime.now())
|
|
|
|
@staticmethod
|
|
def get(id: int):
|
|
habitList = get_habitList(id)
|
|
return HabitList(habitList[0], habitList[1], habitList[2], habitList[3], datetime.strptime(habitList[4], "%Y-%m-%dT%H:%M:%S.%f"), datetime.strptime(habitList[5], "%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
|