add fidelity card module

This commit is contained in:
2025-11-02 18:03:19 +02:00
parent ee4913487a
commit 4fe190ddad
7 changed files with 539 additions and 75 deletions

View File

@@ -0,0 +1,99 @@
import sqlite3
from typing import Optional
class FidelityCards:
def __init__(self, db_path="instance/app_database.db"):
self.db_path = db_path
self._create_fidelity_cards_table()
def _create_fidelity_cards_table(self):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS fidelity_cards (
id INTEGER PRIMARY KEY AUTOINCREMENT,
card_id TEXT,
card_type INTEGER,
client_name TEXT,
phone_number TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
""")
conn.commit()
def add_fidelity_card(self, card_id, card_type, client_name, phone_number):
try:
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
INSERT INTO fidelity_cards (card_id, card_type, client_name, phone_number)
VALUES (?, ?, ?, ?)
""", (card_id, card_type, client_name, phone_number,))
conn.commit()
return True
except sqlite3.IntegrityError:
return False
def get_all_fidelity_cards(self):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
SELECT * FROM fidelity_cards
""",)
rows = cursor.fetchall()
result = []
if rows:
for row in rows:
buffer = {
"id": row[0],
"card_id": row[1],
"card_type": row[2],
"client_name": row[3],
"phone_number": row[4],
"created_at": row[5]
}
result.append(buffer)
return result
return []
def get_fidelity_card(self, id):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
SELECT * FROM fidelity_cards WHERE id = ?
""",(id, ))
row = cursor.fetchone()
result = []
if row:
result = {
"id": row[0],
"card_id": row[1],
"card_type": row[2],
"client_name": row[3],
"phone_number": row[4],
"created_at": row[5]
}
return result
return None
def remove_fidelity_card(self, id):
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute('''
DELETE FROM fidelity_cards WHERE id=?;
''', (id,))
conn.commit()
def update_card(self, id, card_id, card_type, client_name, phone_number):
try:
with sqlite3.connect(self.db_path) as conn:
cursor = conn.cursor()
cursor.execute("""
UPDATE fidelity_cards
SET card_id = ?, card_type = ?, client_name = ?, phone_number = ?
WHERE id = ?
""", (card_id, card_type, client_name, phone_number, id))
conn.commit()
return True
except Exception:
return False