fix(db): Added db to actual price
This commit is contained in:
1 parent
39cc73d71a
commit
beb94d2b0d
4 files changed
+364
-134
No files matched your search
+143
-35
@@ -19,6 +19,7 @@ def init_tables(db_name='pipe_store.db'):
|
||||
|
||||
log.info("Начинаем инициализацию базы категорий...")
|
||||
|
||||
# Основная категория
|
||||
main_category_id = add_category(
|
||||
conn,
|
||||
"Трубы ПВХ",
|
||||
@@ -26,6 +27,7 @@ def init_tables(db_name='pipe_store.db'):
|
||||
image_path="/images/categories/pvc_pipes_main.jpg"
|
||||
)
|
||||
|
||||
# Подкатегории для труб
|
||||
internal_category_id = add_category(
|
||||
conn,
|
||||
"Для внутренней канализации",
|
||||
@@ -42,7 +44,8 @@ def init_tables(db_name='pipe_store.db'):
|
||||
image_path="/images/categories/external_pipes.jpg"
|
||||
)
|
||||
|
||||
add_category(
|
||||
# Категория для фитингов
|
||||
fittings_category_id = add_category(
|
||||
conn,
|
||||
"Фитинги для ПВХ труб",
|
||||
"Соединительные элементы для ПВХ труб",
|
||||
@@ -50,63 +53,168 @@ def init_tables(db_name='pipe_store.db'):
|
||||
image_path="/images/categories/fittings.jpg"
|
||||
)
|
||||
|
||||
add_category(
|
||||
# Подкатегории для фитингов
|
||||
elbows_category_id = add_category(
|
||||
conn,
|
||||
"Колена и отводы",
|
||||
"Угловые соединения для ПВХ труб",
|
||||
main_category_id,
|
||||
fittings_category_id,
|
||||
image_path="/images/categories/elbows.jpg"
|
||||
)
|
||||
|
||||
tee_category_id = add_category(
|
||||
conn,
|
||||
"Тройники",
|
||||
"Тройники для разветвления труб",
|
||||
fittings_category_id,
|
||||
image_path="/images/categories/tees.jpg"
|
||||
)
|
||||
|
||||
couplings_category_id = add_category(
|
||||
conn,
|
||||
"Муфты и переходы",
|
||||
"Соединительные муфты и переходники",
|
||||
fittings_category_id,
|
||||
image_path="/images/categories/couplings.jpg"
|
||||
)
|
||||
|
||||
accessories_category_id = add_category(
|
||||
conn,
|
||||
"Заглушки и ревизии",
|
||||
"Заглушки и ревизионные элементы",
|
||||
fittings_category_id,
|
||||
image_path="/images/categories/accessories.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")
|
||||
add_filter(conn, "Угол", "angle", "multiple") # Для отводов и колен
|
||||
add_filter(conn, "Тип фитинга", "fitting_type", "single") # Для фитингов
|
||||
|
||||
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"},
|
||||
# ==================== ТОВАРЫ ====================
|
||||
|
||||
# 1. Внутренние трубы (серые)
|
||||
internal_pipes = [
|
||||
("110х2,2х500", 110, 2.2, 500, "серый", "внутренняя", None),
|
||||
("110х2,2х1000", 110, 2.2, 1000, "серый", "внутренняя", None),
|
||||
("110х2,2х1500", 110, 2.2, 1500, "серый", "внутренняя", None),
|
||||
("110х2,2х2000", 110, 2.2, 2000, "серый", "внутренняя", None),
|
||||
("110х2,2х3000", 110, 2.2, 3000, "серый", "внутренняя", None),
|
||||
]
|
||||
|
||||
|
||||
added_products = 0
|
||||
for product_info in products_data:
|
||||
product_text = product_info["text"]
|
||||
image_path = product_info["image"]
|
||||
|
||||
for size, diameter, thickness, length, color, app_type, stiffness in internal_pipes:
|
||||
full_name = f"Труба ПВХ для ВНУТРЕННЕЙ канализации (цвет {color}), со сплошной стенкой толщиной {thickness} мм {diameter}x{thickness}x{length}"
|
||||
image_path = f"/images/products/internal_{diameter}_{length}.jpg"
|
||||
|
||||
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)
|
||||
product_id = add_product(
|
||||
conn, full_name, internal_category_id, image_path,
|
||||
diameter, thickness, length, color, app_type, stiffness
|
||||
)
|
||||
if product_id:
|
||||
added_products += 1
|
||||
log.info(f"Добавлен товар: {product_text[:50]}...")
|
||||
else:
|
||||
log.error(f"Ошибка при добавлении товара: {product_text}")
|
||||
log.info(f"Добавлен товар: {full_name[:50]}...")
|
||||
|
||||
# 2. Наружные трубы (оранжево-коричневые) - все типы
|
||||
external_pipes = [
|
||||
# Без маркировки (обычные)
|
||||
("110х2,3х500", 110, 2.3, 500, "оранжево-коричневый", "наружная", None),
|
||||
("110х2,3х1000", 110, 2.3, 1000, "оранжево-коричневый", "наружная", None),
|
||||
("110х2,3х2000", 110, 2.3, 2000, "оранжево-коричневый", "наружная", None),
|
||||
("110х2,3х3000", 110, 2.3, 3000, "оранжево-коричневый", "наружная", None),
|
||||
("110х2,3х4000", 110, 2.3, 4000, "оранжево-коричневый", "наружная", None),
|
||||
# SN2
|
||||
("110х2,7х500 SN2", 110, 2.7, 500, "оранжево-коричневый", "наружная", "SN2"),
|
||||
("110х2,7х1000 SN2", 110, 2.7, 1000, "оранжево-коричневый", "наружная", "SN2"),
|
||||
("110х2,7х2000 SN2", 110, 2.7, 2000, "оранжево-коричневый", "наружная", "SN2"),
|
||||
("110х2,7х3000 SN2", 110, 2.7, 3000, "оранжево-коричневый", "наружная", "SN2"),
|
||||
("110х2,7х4000 SN2", 110, 2.7, 4000, "оранжево-коричневый", "наружная", "SN2"),
|
||||
# SN4
|
||||
("110х3,2х500 SN4", 110, 3.2, 500, "оранжево-коричневый", "наружная", "SN4"),
|
||||
("110х3,2х1000 SN4", 110, 3.2, 1000, "оранжево-коричневый", "наружная", "SN4"),
|
||||
("110х3,2х2000 SN4", 110, 3.2, 2000, "оранжево-коричневый", "наружная", "SN4"),
|
||||
("110х3,2х3000 SN4", 110, 3.2, 3000, "оранжево-коричневый", "наружная", "SN4"),
|
||||
("110х3,2х4000 SN4", 110, 3.2, 4000, "оранжево-коричневый", "наружная", "SN4"),
|
||||
# 160 мм
|
||||
("160х3,6х1000 SN2", 160, 3.6, 1000, "оранжево-коричневый", "наружная", "SN2"),
|
||||
("160х3,6х2000 SN2", 160, 3.6, 2000, "оранжево-коричневый", "наружная", "SN2"),
|
||||
("160х3,6х3000 SN2", 160, 3.6, 3000, "оранжево-коричневый", "наружная", "SN2"),
|
||||
("160х4,0х1000 SN4", 160, 4.0, 1000, "оранжево-коричневый", "наружная", "SN4"),
|
||||
("160х4,0х2000 SN4", 160, 4.0, 2000, "оранжево-коричневый", "наружная", "SN4"),
|
||||
("160х4,0х3000 SN4", 160, 4.0, 3000, "оранжево-коричневый", "наружная", "SN4"),
|
||||
]
|
||||
|
||||
for size, diameter, thickness, length, color, app_type, stiffness in external_pipes:
|
||||
stiffness_text = f", класс жесткости {stiffness}" if stiffness else ""
|
||||
full_name = f"Труба ПВХ для НАРУЖНОЙ канализации (цвет {color}), со сплошной стенкой{stiffness_text} {diameter}x{thickness}x{length}"
|
||||
image_path = f"/images/products/external_{diameter}_{stiffness or 'std'}_{length}.jpg"
|
||||
|
||||
product_id = add_product(
|
||||
conn, full_name, external_category_id, image_path,
|
||||
diameter, thickness, length, color, app_type, stiffness
|
||||
)
|
||||
if product_id:
|
||||
added_products += 1
|
||||
log.info(f"Добавлен товар: {full_name[:50]}...")
|
||||
|
||||
# 3. Фитинги
|
||||
fittings = [
|
||||
# Отводы (колена)
|
||||
("Отвод 110х15°", elbows_category_id, "отвод", 110, None, None, None, None, "15°"),
|
||||
("Отвод 110х30°", elbows_category_id, "отвод", 110, None, None, None, None, "30°"),
|
||||
("Отвод 110х45°", elbows_category_id, "отвод", 110, None, None, None, None, "45°"),
|
||||
("Отвод 110х87°", elbows_category_id, "отвод", 110, None, None, None, None, "87°"),
|
||||
("Отвод 160х15°", elbows_category_id, "отвод", 160, None, None, None, None, "15°"),
|
||||
("Отвод 160х30°", elbows_category_id, "отвод", 160, None, None, None, None, "30°"),
|
||||
("Отвод 160х45°", elbows_category_id, "отвод", 160, None, None, None, None, "45°"),
|
||||
("Отвод 160х87°", elbows_category_id, "отвод", 160, None, None, None, None, "87°"),
|
||||
|
||||
# Тройники
|
||||
("Тройник 45° 110х110", tee_category_id, "тройник", 110, None, None, None, None, "45°"),
|
||||
("Тройник 45° 160х110", tee_category_id, "тройник", 160, None, None, None, None, "45°"),
|
||||
("Тройник 45° 160х160", tee_category_id, "тройник", 160, None, None, None, None, "45°"),
|
||||
("Тройник 87° 110х110", tee_category_id, "тройник", 110, None, None, None, None, "87°"),
|
||||
("Тройник 87° 160х110", tee_category_id, "тройник", 160, None, None, None, None, "87°"),
|
||||
("Тройник 87° 160х160", tee_category_id, "тройник", 160, None, None, None, None, "87°"),
|
||||
|
||||
# Муфты
|
||||
("Муфта надвижная (ремонтная) 110", couplings_category_id, "муфта", 110, None, None, None, None, None),
|
||||
("Муфта надвижная (ремонтная) 160", couplings_category_id, "муфта", 160, None, None, None, None, None),
|
||||
("Муфта соединительная 110", couplings_category_id, "муфта", 110, None, None, None, None, None),
|
||||
("Муфта соединительная 160", couplings_category_id, "муфта", 160, None, None, None, None, None),
|
||||
("Редуктор 160", couplings_category_id, "редуктор", 160, None, None, None, None, None),
|
||||
|
||||
# Заглушки и ревизии
|
||||
("Заглушка для раструба 110", accessories_category_id, "заглушка", 110, None, None, None, None, None),
|
||||
("Заглушка для раструба 160", accessories_category_id, "заглушка", 160, None, None, None, None, None),
|
||||
("Ревизия 110", accessories_category_id, "ревизия", 110, None, None, None, None, None),
|
||||
("Ревизия 160", accessories_category_id, "ревизия", 160, None, None, None, None, None),
|
||||
]
|
||||
|
||||
for name, cat_id, fitting_type, diameter, thickness, length, color, app_type, angle in fittings:
|
||||
full_name = f"{name} для наружной канализации"
|
||||
image_path = f"/images/products/{name.lower().replace(' ', '_').replace('°', 'deg')}.jpg"
|
||||
|
||||
product_id = add_product(
|
||||
conn, full_name, cat_id, image_path,
|
||||
diameter, thickness, length, color, app_type, None,
|
||||
fitting_type=fitting_type, angle=angle
|
||||
)
|
||||
if product_id:
|
||||
added_products += 1
|
||||
log.info(f"Добавлен товар: {full_name[:50]}...")
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
log.success(f"Успешно добавлено {added_products} товаров в базу категорий!")
|
||||
log.success(f"Успешно добавлено {added_products} товаров в базу данных!")
|
||||
Reference in new issue
Block a user