Files
tainagustului/UI_V2/dbActions/categories.py
2025-10-27 21:11:31 +02:00

94 lines
3.0 KiB
Python

import sqlite3
from typing import Optional
class Categories:
def __init__(self, db_path="instance/app_database.db"):
self.db_path = db_path
self._create_categories_table()
def _create_categories_table(self):
"""Create the users table if it doesn't already exist."""
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS categories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
image TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
status TEXT NOT NULL DEFAULT 'active'
);
""")
conn.commit()
def add(self, name, image: str) -> bool:
try:
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
INSERT INTO categories (name, image)
VALUES (?, ?)
""", (name, image))
conn.commit()
return True
except sqlite3.IntegrityError:
return False
def get(self, id):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
SELECT * FROM categories
WHERE id = ?
""", (id,))
row = cursor.fetchone()
if row:
return {
"id": row[0],
"name": row[1],
"image": row[2],
"created_at": row[3],
"status":row[4],
}
else:
return None
def get_categories(self):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
SELECT * FROM categories;
""")
rows = cursor.fetchall()
if rows:
buffer = []
for row in rows:
r = {
"id": row[0],
"name": row[1],
"image": row[2],
"created_at": row[3],
"status":row[4],
}
buffer.append(r)
return buffer
else:
return []
def update(self, name, image, id):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute('''
UPDATE categories SET name = ?, image = ?
WHERE id = ?
''', (name, image, id))
conn.commit()
def delete(self, id):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute('''
DELETE FROM categories WHERE id=?;
''', (id,))
conn.commit()