62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
import sqlite3
|
|
from pathlib import Path
|
|
|
|
DB_PATH = Path("facebook_marketplace.db")
|
|
|
|
def get_connection():
|
|
conn = sqlite3.connect(DB_PATH)
|
|
conn.row_factory = sqlite3.Row
|
|
return conn
|
|
|
|
def create_tables():
|
|
conn = get_connection()
|
|
cursor = conn.cursor()
|
|
|
|
# Table quản lý tài khoản Facebook
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS accounts (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
email TEXT NOT NULL UNIQUE,
|
|
password TEXT NOT NULL,
|
|
is_active INTEGER DEFAULT 1
|
|
)
|
|
''')
|
|
|
|
# Table quản lý sản phẩm
|
|
cursor.execute("""
|
|
CREATE TABLE IF NOT EXISTS products (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT,
|
|
price REAL,
|
|
url TEXT,
|
|
status INTEGER DEFAULT 0, -- 0 = draft, 1 = published
|
|
images TEXT,
|
|
created_at INTEGER,
|
|
category TEXT DEFAULT NULL,
|
|
condition TEXT DEFAULT NULL,
|
|
brand TEXT,
|
|
description TEXT,
|
|
tags TEXT DEFAULT NULL, -- lưu dưới dạng JSON string
|
|
sku TEXT UNIQUE,
|
|
location TEXT DEFAULT NULL
|
|
)
|
|
""")
|
|
|
|
# Table quản lý sản phẩm đã listed bởi account
|
|
cursor.execute("""
|
|
CREATE TABLE IF NOT EXISTS listed (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
account_id INTEGER NOT NULL,
|
|
product_id INTEGER NOT NULL,
|
|
listed_at INTEGER,
|
|
status TEXT DEFAULT 'pending', -- 'pending' hoặc 'listed'
|
|
UNIQUE(account_id, product_id),
|
|
FOREIGN KEY(account_id) REFERENCES accounts(id) ON DELETE CASCADE,
|
|
FOREIGN KEY(product_id) REFERENCES products(id) ON DELETE CASCADE
|
|
)
|
|
""")
|
|
|
|
|
|
conn.commit()
|
|
conn.close()
|