Files
PVHBackend/db/InitializeDBData.py
T
2026-03-17 12:08:19 +03:00

113 lines
7.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import sqlite3
from loguru import logger as log
from db.DBDataUtils import add_category, add_filter, add_product, parse_product_data
from db.InitializeDB import init_database
def init_tables(db_name='pipe_store.db'):
init_database(db_name)
conn = sqlite3.connect(db_name)
cursor = conn.cursor()
cursor.execute('SELECT COUNT(*) FROM categories')
category_count = cursor.fetchone()[0]
if category_count > 0:
log.info("Категории уже были добавлены в базу данных, пропускаем инициализацию")
conn.close()
return
log.info("Начинаем инициализацию базы категорий...")
main_category_id = add_category(
conn,
"Трубы ПВХ",
"Трубы ПВХ для канализационных систем",
image_path="/images/categories/pvc_pipes_main.jpg"
)
internal_category_id = add_category(
conn,
"Для внутренней канализации",
"Трубы для внутренней канализационной системы",
main_category_id,
image_path="/images/categories/internal_pipes.jpg"
)
external_category_id = add_category(
conn,
"Для наружной канализации",
"Трубы для наружной канализационной системы",
main_category_id,
image_path="/images/categories/external_pipes.jpg"
)
add_category(
conn,
"Фитинги для ПВХ труб",
"Соединительные элементы для ПВХ труб",
main_category_id,
image_path="/images/categories/fittings.jpg"
)
add_category(
conn,
"Колена и отводы",
"Угловые соединения для ПВХ труб",
main_category_id,
image_path="/images/categories/elbows.jpg"
)
log.info("Категории успешно созданы")
add_filter(conn, "Диаметр", "diameter", "multiple")
add_filter(conn, "Длина", "length", "multiple")
add_filter(conn, "Тип применения", "application_type", "single")
add_filter(conn, "Цвет", "color", "single")
add_filter(conn, "Класс жесткости", "stiffness_class", "single")
add_filter(conn, "Толщина стенки", "wall_thickness", "multiple")
log.info("Фильтры успешно добавлены")
# Данные продуктов
products_data = [
# Внутренние трубы
{"text": "Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), с внутренней структурной стенкой толщиной 2,2 мм 110х2,2х500", "image": "/images/products/internal_110_500.jpg"},
{"text": "Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), с внутренней структурной стенкой толщиной 2,2 мм 110х2,2х1000", "image": "/images/products/internal_110_1000.jpg"},
{"text": "Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), с внутренней структурной стенкой толщиной 2,2 мм 110х2,2х1500", "image": "/images/products/internal_110_1500.jpg"},
{"text": "Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), с внутренней структурной стенкой толщиной 2,2 мм 110х2,2х2000", "image": "/images/products/internal_110_2000.jpg"},
{"text": "Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет серый), с внутренней структурной стенкой толщиной 2,2 мм 110х2,2х3000", "image": "/images/products/internal_110_3000.jpg"},
# Наружные трубы
{"text": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), с внутренней структурной стенкой, класс жесткости SN4 110х3,2х500", "image": "/images/products/external_110_sn4_500.jpg"},
{"text": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), с внутренней структурной стенкой, класс жесткости SN4 110х3,2х1000", "image": "/images/products/external_110_sn4_1000.jpg"},
{"text": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), с внутренней структурной стенкой, класс жесткости SN4 110х3,2х2000", "image": "/images/products/external_110_sn4_2000.jpg"},
{"text": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), с внутренней структурной стенкой, класс жесткости SN4 110х3,2х3000", "image": "/images/products/external_110_sn4_3000.jpg"},
{"text": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), с внутренней структурной стенкой, класс жесткости SN4 110х3,2х4000", "image": "/images/products/external_110_sn4_4000.jpg"},
{"text": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), с внутренней структурной стенкой, класс жесткости SN2 160х3,6х1000", "image": "/images/products/external_160_sn2_1000.jpg"},
{"text": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), с внутренней структурной стенкой, класс жесткости SN2 160х3,6х2000", "image": "/images/products/external_160_sn2_2000.jpg"},
{"text": "Труба ПВХ для НАРУЖНОЙ канализации (цвет оранжево-коричневый), с внутренней структурной стенкой, класс жесткости SN2 160х3,6х3000", "image": "/images/products/external_160_sn2_3000.jpg"},
]
added_products = 0
for product_info in products_data:
product_text = product_info["text"]
image_path = product_info["image"]
if "ВНУТРЕННЕЙ" in product_text:
category_id = internal_category_id
else:
category_id = external_category_id
product_id = add_product(conn, product_text, category_id, image_path)
if product_id:
added_products += 1
log.info(f"Добавлен товар: {product_text[:50]}...")
else:
log.error(f"Ошибка при добавлении товара: {product_text}")
conn.commit()
conn.close()
log.success(f"Успешно добавлено {added_products} товаров в базу категорий!")