File size: 2,245 Bytes
3bc2a85
 
f0be696
3bc2a85
 
 
 
 
 
f0be696
3bc2a85
 
f0be696
 
 
 
 
3bc2a85
 
 
f0be696
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3bc2a85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import sqlite3
import pandas as pd
import hashlib

DB_NAME = "menuvision.db"

def init_db():
    conn = sqlite3.connect(DB_NAME)
    c = conn.cursor()
    # Table for Restaurants
    c.execute('''CREATE TABLE IF NOT EXISTS restaurants 
                 (id INTEGER PRIMARY KEY, name TEXT, location TEXT, owner TEXT)''')
    
    # Table for Users (Login/Signup)
    c.execute('''CREATE TABLE IF NOT EXISTS users 
                 (email TEXT PRIMARY KEY, password TEXT, role TEXT)''')
    
    conn.commit()
    conn.close()

# --- USER FUNCTIONS ---
def create_user(email, password, role):
    try:
        conn = sqlite3.connect(DB_NAME)
        c = conn.cursor()
        # Hash password for basic security
        hashed_pw = hashlib.sha256(password.encode()).hexdigest()
        c.execute("INSERT INTO users (email, password, role) VALUES (?, ?, ?)", (email, hashed_pw, role))
        conn.commit()
        conn.close()
        return f"✅ Account created for {email} as {role}!"
    except sqlite3.IntegrityError:
        return "❌ Error: User with this email already exists."
    except Exception as e:
        return f"Error: {e}"

def verify_login(email, password):
    conn = sqlite3.connect(DB_NAME)
    c = conn.cursor()
    hashed_pw = hashlib.sha256(password.encode()).hexdigest()
    
    c.execute("SELECT role FROM users WHERE email=? AND password=?", (email, hashed_pw))
    result = c.fetchone()
    conn.close()
    
    if result:
        return f"✅ Login Successful! Welcome back, {result[0]}."
    else:
        return "❌ Invalid email or password."

# --- RESTAURANT FUNCTIONS ---
def add_restaurant(name, location, owner):
    try:
        conn = sqlite3.connect(DB_NAME)
        c = conn.cursor()
        c.execute("INSERT INTO restaurants (name, location, owner) VALUES (?, ?, ?)", (name, location, owner))
        conn.commit()
        conn.close()
        return f"Success: Restaurant '{name}' added!"
    except Exception as e:
        return f"Error: {e}"

def search_restaurants(query):
    conn = sqlite3.connect(DB_NAME)
    sql = f"SELECT name, location, owner FROM restaurants WHERE name LIKE '%{query}%' OR location LIKE '%{query}%'"
    df = pd.read_sql_query(sql, conn)
    conn.close()
    return df