89 lines
2.5 KiB
Python
89 lines
2.5 KiB
Python
import sqlite3
|
|
|
|
|
|
def create_tables():
|
|
conn = sqlite3.connect('bot_klining.db')
|
|
cursor = conn.cursor()
|
|
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY,
|
|
telegram_id INTEGER UNIQUE,
|
|
name TEXT,
|
|
phone TEXT
|
|
)
|
|
''')
|
|
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS addresses (
|
|
id INTEGER PRIMARY KEY,
|
|
user_id INTEGER,
|
|
address TEXT,
|
|
FOREIGN KEY(user_id) REFERENCES users(id)
|
|
)
|
|
''')
|
|
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS orders (
|
|
id INTEGER PRIMARY KEY,
|
|
user_id INTEGER,
|
|
address TEXT,
|
|
cleaning_time TEXT,
|
|
cleaning_type TEXT,
|
|
payment_method TEXT,
|
|
order_id TEXT UNIQUE,
|
|
FOREIGN KEY(user_id) REFERENCES users(id)
|
|
)
|
|
''')
|
|
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS logs (
|
|
id INTEGER PRIMARY KEY,
|
|
user_id INTEGER,
|
|
action TEXT,
|
|
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY(user_id) REFERENCES users(id)
|
|
)
|
|
''')
|
|
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
def add_user(telegram_id, name, phone):
|
|
conn = sqlite3.connect('bot_klining.db')
|
|
cursor = conn.cursor()
|
|
cursor.execute('INSERT OR IGNORE INTO users (telegram_id, name, phone) VALUES (?, ?, ?)', (telegram_id, name, phone))
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
def update_user_name(telegram_id, name):
|
|
conn = sqlite3.connect('bot_klining.db')
|
|
cursor = conn.cursor()
|
|
cursor.execute('UPDATE users SET name = ? WHERE telegram_id = ?', (name, telegram_id))
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
def update_user_phone(telegram_id, phone):
|
|
conn = sqlite3.connect('bot_klining.db')
|
|
cursor = conn.cursor()
|
|
cursor.execute('UPDATE users SET phone = ? WHERE telegram_id = ?', (phone, telegram_id))
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
def add_address(telegram_id, address):
|
|
conn = sqlite3.connect('bot_klining.db')
|
|
cursor = conn.cursor()
|
|
cursor.execute('SELECT id FROM users WHERE telegram_id = ?', (telegram_id,))
|
|
user_id = cursor.fetchone()[0]
|
|
cursor.execute('INSERT INTO addresses (user_id, address) VALUES (?, ?)', (user_id, address))
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
def delete_address(telegram_id, address):
|
|
conn = sqlite3.connect('bot_klining.db')
|
|
cursor = conn.cursor()
|
|
cursor.execute('SELECT id FROM users WHERE telegram_id = ?', (telegram_id,))
|
|
user_id = cursor.fetchone()[0]
|
|
cursor.execute('DELETE FROM addresses WHERE user_id = ? AND address = ?', (user_id, address))
|
|
conn.commit()
|
|
conn.close() |