Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok
This commit is contained in:
71
code-server-config/data/User/History/-72cc77ef/84BA.py
Executable file
71
code-server-config/data/User/History/-72cc77ef/84BA.py
Executable file
@@ -0,0 +1,71 @@
|
||||
import asyncio
|
||||
import os
|
||||
from sqlalchemy.ext.asyncio import create_async_engine
|
||||
from sqlalchemy import text
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
raw_url = os.getenv("DATABASE_URL")
|
||||
if not raw_url:
|
||||
raw_url = "postgresql://admin:PASSWORD_111@postgres-db:5432/service_finder"
|
||||
DATABASE_URL = raw_url.replace("postgresql://", "postgresql+asyncpg://").replace("/service_finder_db", "/service_finder")
|
||||
|
||||
async def seed_cost_types():
|
||||
engine = create_async_engine(DATABASE_URL)
|
||||
async with engine.begin() as conn:
|
||||
print("🔨 Költség típusok tábla létrehozása...")
|
||||
await conn.execute(text("""
|
||||
CREATE TABLE IF NOT EXISTS ref.cost_types (
|
||||
code VARCHAR(50) PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
parent_code VARCHAR(50) REFERENCES ref.cost_types(code), -- Hierarchia!
|
||||
is_active BOOLEAN DEFAULT TRUE,
|
||||
sort_order INTEGER DEFAULT 0
|
||||
);
|
||||
"""))
|
||||
|
||||
print("📥 Adatok feltöltése...")
|
||||
# Először a szülők (Főkategóriák)
|
||||
parents = [
|
||||
('FUEL', '⛽ Tankolás', 10),
|
||||
('PURCHASE', '💰 Beszerzés / Pénzügy', 20),
|
||||
('INSURANCE', '📄 Biztosítás', 30),
|
||||
('TAX', '🏛️ Adó / Illeték', 40),
|
||||
('SERVICE', '🔧 Szerviz', 50),
|
||||
('OTHER', 'Egyéb', 99)
|
||||
]
|
||||
for p in parents:
|
||||
await conn.execute(text("INSERT INTO ref.cost_types (code, name, sort_order) VALUES (:c, :n, :s) ON CONFLICT (code) DO NOTHING"), {"c": p[0], "n": p[1], "s": p[2]})
|
||||
|
||||
# Aztán a gyerekek (Alkategóriák)
|
||||
children = [
|
||||
# Beszerzés
|
||||
('PURCHASE_PRICE', 'Vételár', 'PURCHASE'),
|
||||
('FINANCE_LEASE', 'Lízing díj', 'PURCHASE'),
|
||||
('FINANCE_LOAN', 'Hitel törlesztő', 'PURCHASE'),
|
||||
('IMPORT_FEE', 'Honosítás / Regadó', 'PURCHASE'),
|
||||
# Biztosítás
|
||||
('INSURANCE_KGFB', 'Kötelező (KGFB)', 'INSURANCE'),
|
||||
('INSURANCE_CASCO', 'Casco', 'INSURANCE'),
|
||||
('INSURANCE_GAP', 'GAP', 'INSURANCE'),
|
||||
('INSURANCE_ASSIST', 'Assistance', 'INSURANCE'),
|
||||
# Adó
|
||||
('TAX_WEIGHT', 'Gépjárműadó (Súlyadó)', 'TAX'),
|
||||
('TAX_COMPANY', 'Cégautóadó', 'TAX'),
|
||||
('TAX_TRANSFER', 'Vagyonszerzési illeték', 'TAX'),
|
||||
('TAX_OTHER', 'Egyéb adó', 'TAX'),
|
||||
# Szerviz
|
||||
('SERVICE_MAINTENANCE', 'Kötelező karbantartás', 'SERVICE'),
|
||||
('SERVICE_REPAIR', 'Javítás', 'SERVICE'),
|
||||
('SERVICE_TIRE', 'Gumicsere', 'SERVICE'),
|
||||
('SERVICE_MOT', 'Műszaki vizsga', 'SERVICE')
|
||||
]
|
||||
for c in children:
|
||||
await conn.execute(text("INSERT INTO ref.cost_types (code, name, parent_code) VALUES (:c, :n, :p) ON CONFLICT (code) DO NOTHING"), {"c": c[0], "n": c[1], "p": c[2]})
|
||||
|
||||
print("✅ KÉSZ! A tudás most már az adatbázisban van, nem a HTML-ben.")
|
||||
await engine.dispose()
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(seed_cost_types())
|
||||
Reference in New Issue
Block a user