teama / crud.py
FabioSantos's picture
Update crud.py
897ac0f verified
from database import get_connection
def create_user(name, email, password, role):
conn = get_connection()
cur = conn.cursor()
cur.execute("INSERT INTO users (name, email, password, role) VALUES (?, ?, ?, ?)", (name, email, password, role))
conn.commit()
conn.close()
def get_user_by_email(email):
conn = get_connection()
cur = conn.cursor()
cur.execute("SELECT * FROM users WHERE email = ?", (email,))
user = cur.fetchone()
conn.close()
return user
def create_session(session):
conn = get_connection()
cur = conn.cursor()
cur.execute("""
INSERT INTO sessions (
user_id, date, activities, progress, challenges, observations,
performance_score, fails_score, task_completion, behavior_rating
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""", (
session.user_id, session.date, session.activities, session.progress,
session.challenges, session.observations, session.performance_score,
session.fails_score, session.task_completion, session.behavior_rating
))
session_id = cur.lastrowid
conn.commit()
conn.close()
return session_id
def create_aba_entry(data):
conn = get_connection()
cur = conn.cursor()
cur.execute("""
INSERT INTO aba_data (
session_id, behavior, frequency, reinforcer, technique
) VALUES (?, ?, ?, ?, ?)
""", (
data.session_id, data.behavior, data.frequency, data.reinforcer, data.technique
))
conn.commit()
conn.close()
def create_kid_entry(data):
conn = get_connection()
cur = conn.cursor()
cur.execute("INSERT INTO kid_data (user_id, nickname, age, suport_level) VALUES (?, ?, ?, ?)",
(data.user_id, data.nickname, data.age, data.suport_level))
conn.commit()
conn.close()
def get_kid_data_by_user(user_id):
conn = get_connection()
cur = conn.cursor()
cur.execute("SELECT * FROM kid_data WHERE user_id = ?", (user_id,))
rows = cur.fetchall()
conn.close()
return rows
def nickname_exists(nickname):
conn = get_connection()
cur = conn.cursor()
cur.execute("SELECT 1 FROM kid_data WHERE LOWER(nickname) = LOWER(?)", (nickname,))
exists = cur.fetchone() is not None
conn.close()
return exists
def get_user_sessions(user_id, start_date=None, end_date=None, limit=None):
conn = get_connection()
cur = conn.cursor()
query = "SELECT * FROM sessions WHERE user_id = ?"
params = [user_id]
if start_date and end_date:
query += " AND date BETWEEN ? AND ?"
params.extend([start_date, end_date])
query += " ORDER BY date DESC"
if limit:
query += " LIMIT ?"
params.append(limit)
cur.execute(query, tuple(params))
results = cur.fetchall()
conn.close()
return results
def link_therapist_to_kid(data):
conn = get_connection()
cur = conn.cursor()
cur.execute("INSERT INTO therapist_kid (user_id, nickname) VALUES (?, ?)", (data.user_id, data.nickname))
conn.commit()
conn.close()
def get_kids_by_therapist(user_id):
conn = get_connection()
cur = conn.cursor()
cur.execute("SELECT nickname FROM therapist_kid WHERE user_id = ?", (user_id,))
kids = [row["nickname"] for row in cur.fetchall()]
conn.close()
return kids
def get_therapists_by_kid(nickname):
conn = get_connection()
cur = conn.cursor()
cur.execute("""
SELECT u.id as user_id, u.name
FROM therapist_kid tk
JOIN users u ON tk.user_id = u.id
WHERE LOWER(tk.nickname) = LOWER(?)
""", (nickname,))
therapists = [{"user_id": row["user_id"], "name": row["name"]} for row in cur.fetchall()]
conn.close()
return therapists
def get_kid_by_nickname_full(nickname: str):
conn = get_connection()
cur = conn.cursor()
cur.execute("SELECT * FROM kid_data WHERE LOWER(nickname) = LOWER(?)", (nickname,))
row = cur.fetchone()
conn.close()
if row:
return {
"user_id": row["user_id"],
"nickname": row["nickname"],
"age": row["age"],
"suport_level": row["suport_level"]
}
return {}
def get_sessions_by_therapist_and_nickname(therapist_id: int, nickname: str):
conn = get_connection()
cur = conn.cursor()
cur.execute("""
SELECT s.*
FROM sessions s
JOIN kid_data k ON k.user_id = s.user_id
WHERE LOWER(k.nickname) = LOWER(?)
AND s.created_by = ?
ORDER BY s.date DESC
""", (nickname.lower(), therapist_id))
rows = cur.fetchall()
conn.close()
return [dict(row) for row in rows]
def get_sessions_by_nickname(nickname: str):
conn = get_connection()
cur = conn.cursor()
cur.execute("""
SELECT s.*
FROM sessions s
JOIN kid_data k ON k.user_id = s.user_id
WHERE LOWER(k.nickname) = LOWER(?)
ORDER BY s.date DESC
""", (nickname.lower(),))
rows = cur.fetchall()
conn.close()
return [dict(row) for row in rows]
def get_user_by_id(user_id: int):
conn = get_connection()
cur = conn.cursor()
cur.execute("SELECT * FROM users WHERE id = ?", (user_id,))
row = cur.fetchone()
conn.close()
return row
def create_session(data):
conn = get_connection()
cur = conn.cursor()
cur.execute("""
INSERT INTO sessions (
user_id, created_by, date, activities, progress, challenges,
observations, performance_score, fails_score,
task_completion, behavior_rating
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""", (
data.user_id, data.created_by, data.date, data.activities,
data.progress, data.challenges, data.observations,
data.performance_score, data.fails_score,
data.task_completion, data.behavior_rating
))
conn.commit()
session_id = cur.lastrowid
conn.close()
return session_id