71 lines
1.7 KiB
Python
71 lines
1.7 KiB
Python
import sqlite3
|
|
import os
|
|
|
|
DB_PATH = os.path.join(os.path.dirname(__file__), "enroll.db")
|
|
|
|
# ── allowed values ───────────────────────────────────────
|
|
VALID_TYPES = ("Annually", "Monthly")
|
|
VALID_SERVICES = ("Lite", "Value", "Pro")
|
|
|
|
|
|
def get_conn():
|
|
conn = sqlite3.connect(DB_PATH)
|
|
conn.row_factory = sqlite3.Row
|
|
return conn
|
|
|
|
|
|
def init_db():
|
|
conn = get_conn()
|
|
conn.execute("""
|
|
CREATE TABLE IF NOT EXISTS enroll (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
type TEXT NOT NULL,
|
|
service TEXT NOT NULL,
|
|
user TEXT NOT NULL
|
|
)
|
|
""")
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
|
|
def list_enrolls():
|
|
conn = get_conn()
|
|
rows = conn.execute("SELECT * FROM enroll ORDER BY id DESC").fetchall()
|
|
conn.close()
|
|
return [dict(r) for r in rows]
|
|
|
|
|
|
def get_enroll(enroll_id):
|
|
conn = get_conn()
|
|
row = conn.execute("SELECT * FROM enroll WHERE id = ?", (enroll_id,)).fetchone()
|
|
conn.close()
|
|
return dict(row) if row else None
|
|
|
|
|
|
def add_enroll(type_, service, user):
|
|
conn = get_conn()
|
|
cur = conn.execute(
|
|
"INSERT INTO enroll (type, service, user) VALUES (?, ?, ?)",
|
|
(type_, service, user),
|
|
)
|
|
conn.commit()
|
|
conn.close()
|
|
return cur.lastrowid
|
|
|
|
|
|
def edit_enroll(enroll_id, type_, service, user):
|
|
conn = get_conn()
|
|
conn.execute(
|
|
"UPDATE enroll SET type = ?, service = ?, user = ? WHERE id = ?",
|
|
(type_, service, user, enroll_id),
|
|
)
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
|
|
def remove_enroll(enroll_id):
|
|
conn = get_conn()
|
|
conn.execute("DELETE FROM enroll WHERE id = ?", (enroll_id,))
|
|
conn.commit()
|
|
conn.close()
|