2026.03.30 front és garázs logika

This commit is contained in:
Roo
2026-03-30 06:32:22 +00:00
parent ba8b6579ef
commit 2508ae7452
108 changed files with 3184 additions and 115 deletions

View File

@@ -0,0 +1,150 @@
#!/usr/bin/env python3
"""
Egyszerűbb változat: Garázs adatok ellenőrzése és javítása.
"""
import asyncio
import sys
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import selectinload
sys.path.insert(0, '/app')
from app.db.session import AsyncSessionLocal
from app.models.identity import User
from app.models.marketplace.organization import Organization, OrganizationMember
from app.models.vehicle.asset import Asset
async def main():
print("=" * 60)
print("GARÁZS ADATOK ELLENŐRZÉSE (Egyszerű változat)")
print("=" * 60)
async with AsyncSessionLocal() as db:
# 1. Keressük meg a teszt felhasználót
print("\n1. TESZT FELHASZNÁLÓ KERESÉSE...")
stmt = select(User).where(User.email == "tester_pro@profibot.hu")
result = await db.execute(stmt)
test_user = result.scalar_one_or_none()
if not test_user:
print("❌ HIBA: A teszt felhasználó nem található!")
return
print(f" ✅ Teszt felhasználó: ID={test_user.id}, Email={test_user.email}")
# 2. Ellenőrizzük a szervezeti tagságot
print("\n2. SZERVEZETI TAGSÁG ELLENŐRZÉSE...")
org_stmt = (
select(Organization)
.join(OrganizationMember)
.where(OrganizationMember.user_id == test_user.id)
.where(Organization.is_deleted == False)
)
org_result = await db.execute(org_stmt)
user_orgs = org_result.scalars().all()
if user_orgs:
print(f" ✅ A felhasználó tagja {len(user_orgs)} szervezetnek:")
for org in user_orgs:
print(f" - {org.name} (ID: {org.id})")
target_org = user_orgs[0]
else:
print(" Nincs szervezet. Új létrehozása...")
# Egyszerű szervezet létrehozás
new_org = Organization(
full_name="Teszt Flotta Kft.",
name="Teszt Flotta",
display_name="Teszt Flotta Kft.",
tax_number="12345678-2-42",
country_code="HU",
folder_slug="teszt-flotta-123",
org_type="business",
status="active",
is_active=True,
owner_id=test_user.id
)
db.add(new_org)
await db.flush()
org_member = OrganizationMember(
organization_id=new_org.id,
user_id=test_user.id,
role="ADMIN"
)
db.add(org_member)
await db.commit()
await db.refresh(new_org)
target_org = new_org
print(f" ✅ Új szervezet: {target_org.name} (ID: {target_org.id})")
# 3. Járművek lekérdezése
print("\n3. JÁRMŰVEK LEKÉRDEZÉSE...")
asset_stmt = (
select(Asset)
.where(Asset.owner_person_id == test_user.id)
)
asset_result = await db.execute(asset_stmt)
assets = asset_result.scalars().all()
print(f" ✅ Összesen {len(assets)} jármű található.")
if not assets:
print(" Nincsenek járművek. Nincs mit felosztani.")
return
# 4. Jelenlegi felosztás
private = [a for a in assets if a.owner_org_id is None]
corporate = [a for a in assets if a.owner_org_id == target_org.id]
other = [a for a in assets if a.owner_org_id not in [None, target_org.id]]
print(f"\n JELENLEGI ÁLLAPOT:")
print(f" • Privát: {len(private)} db")
print(f" • Céges ({target_org.name}): {len(corporate)} db")
if other:
print(f" • Egyéb: {len(other)} db")
# 5. Ha nincs elég adat, felosztjuk
if len(private) == 0 or len(corporate) == 0:
print("\n Járművek felosztása...")
half = len(assets) // 2
for i, asset in enumerate(assets):
if i < half:
asset.owner_org_id = None
else:
asset.owner_org_id = target_org.id
await db.commit()
print(f" ✅ Felosztva: {half} privát, {len(assets)-half} céges")
else:
print("\n ✅ A járművek már megfelelően fel vannak osztva.")
# 6. Végeredmény
print("\n" + "=" * 60)
print("VÉGEREDMÉNY:")
print("=" * 60)
print(f"\n📋 TESZT FELHASZNÁLÓ:")
print(f" • Email: {test_user.email}")
print(f" • User ID: {test_user.id}")
print(f" • Szervezet: {target_org.name} (ID: {target_org.id})")
# Új lekérdezés
asset_result = await db.execute(asset_stmt)
assets = asset_result.scalars().all()
private = [a for a in assets if a.owner_org_id is None]
corporate = [a for a in assets if a.owner_org_id == target_org.id]
print(f"\n🚗 JÁRMŰVEGYÜTT:")
print(f" • Összesen: {len(assets)} db")
print(f" • Privát garázs: {len(private)} db")
print(f" • Céges flotta: {len(corporate)} db")
print("\n" + "=" * 60)
print("KÉSZ! A tesztadatok előkészítve.")
print("=" * 60)
if __name__ == "__main__":
asyncio.run(main())