"""
Aktualizacja danych KRS/REGON na podstawie weryfikacji z oficjalnych rejestrów
Data weryfikacji: 2025-11-25
"""
from datetime import datetime
from sqlalchemy import text
from database import SessionLocal

def fix_krs_verification():
    db = SessionLocal()
    try:
        print("=" * 70)
        print("WERYFIKACJA KRS/CEIDG - AKTUALIZACJA BRAKUJĄCYCH DANYCH")
        print("=" * 70)

        # === FIRMY Z NOWYM KRS ===

        # 1. BORMAX (ID: 24) - NOWY KRS!
        print("\n1. BORMAX (ID: 24)")
        print("   KRS: (brak) → 0001024906 ✅")
        print("   REGON: (brak) → 524744657 ✅")
        db.execute(text("""
            UPDATE companies SET
                krs = '0001024906',
                regon = '524744657',
                legal_name = 'BORMAX SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ',
                address_street = 'ul. Dębowa 30',
                address_city = 'Wejherowo',
                address_postal = '84-200',
                address_full = 'ul. Dębowa 30, 84-200 Wejherowo',
                last_verified_at = :now,
                data_source = 'KRS (verified 2025-11-25)'
            WHERE id = 24
        """), {'now': datetime.now()})

        # Dodaj osoby z KRS
        db.execute(text("""
            INSERT OR IGNORE INTO company_contacts (company_id, full_name, role)
            VALUES (24, 'Jakub Bornowski', 'Prezes Zarządu')
        """))
        db.execute(text("""
            INSERT OR IGNORE INTO company_contacts (company_id, full_name, role)
            VALUES (24, 'Justyna Bornowska', 'Członek Zarządu')
        """))

        # 2. Delkom (ID: 28) - NOWY KRS!
        print("\n2. DELKOM (ID: 28)")
        print("   KRS: (brak) → 0000037202 ✅")
        print("   REGON: (brak) → 192020769 ✅")
        db.execute(text("""
            UPDATE companies SET
                krs = '0000037202',
                regon = '192020769',
                legal_name = 'DELKOM 2000 SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ',
                address_street = 'ul. I Brygady Pancernej WP 36',
                last_verified_at = :now,
                data_source = 'KRS (verified 2025-11-25)'
            WHERE id = 28
        """), {'now': datetime.now()})

        # 3. EL Professional (ID: 33) - NOWY KRS!
        print("\n3. EL PROFESSIONAL (ID: 33)")
        print("   KRS: (brak) → 0000962964 ✅")
        print("   REGON: (brak) → 383124142 ✅")
        db.execute(text("""
            UPDATE companies SET
                krs = '0000962964',
                regon = '383124142',
                legal_name = 'EL PROFESSIONAL SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ',
                address_street = 'ul. Zielona 2',
                address_city = 'Kębłowo',
                address_postal = '84-242',
                address_full = 'ul. Zielona 2, 84-242 Kębłowo',
                last_verified_at = :now,
                data_source = 'KRS (verified 2025-11-25)'
            WHERE id = 33
        """), {'now': datetime.now()})

        db.execute(text("""
            INSERT OR IGNORE INTO company_contacts (company_id, full_name, role)
            VALUES (33, 'Mariusz Rafał Maszota', 'Prezes Zarządu')
        """))

        # 4. Pro-Invest (ID: 55) - AKTUALIZACJA KRS
        print("\n4. PRO-INVEST (ID: 55)")
        print("   KRS: (brak) → 0000876816 ✅")
        db.execute(text("""
            UPDATE companies SET
                krs = '0000876816',
                legal_name = 'PRO-INVEST SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ',
                address_street = 'ul. Włoska 2/2',
                address_city = 'Bolszewo',
                address_postal = '84-239',
                address_full = 'ul. Włoska 2/2, 84-239 Bolszewo',
                last_verified_at = :now,
                data_source = 'KRS (verified 2025-11-25)'
            WHERE id = 55
        """), {'now': datetime.now()})

        db.execute(text("""
            INSERT OR IGNORE INTO company_contacts (company_id, full_name, role)
            VALUES (55, 'Przemysław Andrzej Lademann', 'Prezes Zarządu')
        """))
        db.execute(text("""
            INSERT OR IGNORE INTO company_contacts (company_id, full_name, role)
            VALUES (55, 'Maciej Mikołaj Paluszek', 'Członek Zarządu')
        """))

        # 5. ROTOR (ID: 59) - NOWY KRS!
        print("\n5. ROTOR (ID: 59)")
        print("   KRS: (brak) → 0000712854 ✅")
        print("   REGON: (brak) → 369217481 ✅")
        db.execute(text("""
            UPDATE companies SET
                krs = '0000712854',
                regon = '369217481',
                legal_name = 'ROTOR SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ SPÓŁKA KOMANDYTOWA',
                address_street = 'ul. Przemysłowa 3B',
                last_verified_at = :now,
                data_source = 'KRS (verified 2025-11-25)'
            WHERE id = 59
        """), {'now': datetime.now()})

        # 6. Sibuk (ID: 67) - NOWY KRS!
        print("\n6. SIBUK (ID: 67)")
        print("   KRS: (brak) → 0000005764 ✅")
        print("   REGON: (brak) → 190387218 ✅")
        db.execute(text("""
            UPDATE companies SET
                krs = '0000005764',
                regon = '190387218',
                legal_name = 'PRZEDSIĘBIORSTWO HANDLOWE SIBUK SPÓŁKA JAWNA GERARD KUBIS I KRZYSZTOF KUBIS',
                address_street = 'ul. Morskiego Dywizjonu Lotniczego 11',
                address_city = 'Puck',
                address_postal = '84-100',
                address_full = 'ul. Morskiego Dywizjonu Lotniczego 11, 84-100 Puck',
                last_verified_at = :now,
                data_source = 'KRS (verified 2025-11-25)'
            WHERE id = 67
        """), {'now': datetime.now()})

        # 7. CoolAir (ID: 87) - NOWY KRS!
        print("\n7. COOLAIR (ID: 87)")
        print("   KRS: (brak) → 0000665368 ✅")
        print("   REGON: (brak) → 366640167 ✅")
        db.execute(text("""
            UPDATE companies SET
                krs = '0000665368',
                regon = '366640167',
                legal_name = 'COOLAIR HVAC SYSTEMS SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ',
                address_street = 'ul. Hutnicza 3/111',
                address_city = 'Gdynia',
                address_postal = '81-212',
                address_full = 'ul. Hutnicza 3/111, 81-212 Gdynia',
                last_verified_at = :now,
                data_source = 'KRS (verified 2025-11-25)'
            WHERE id = 87
        """), {'now': datetime.now()})

        db.execute(text("""
            INSERT OR IGNORE INTO company_contacts (company_id, full_name, role)
            VALUES (87, 'Katarzyna Czarkowska', 'Prezes Zarządu')
        """))

        # === FIRMY BEZ KRS (JDG/SPÓŁKI CYWILNE - TYLKO CEIDG) ===

        # 8. Waterm (ID: 12) - JDG, brak KRS
        print("\n8. WATERM (ID: 12) - JDG, brak KRS")
        print("   REGON: 191917760 (zgodny) ✅")
        db.execute(text("""
            UPDATE companies SET
                legal_name = 'WATERM ARTUR WIERTEL',
                industry_sector = 'Instalacje wodno-kanalizacyjne, cieplne, klimatyzacyjne',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 12
        """), {'now': datetime.now()})

        # 9. AMA (ID: 17) - ma KRS!
        print("\n9. AMA (ID: 17)")
        print("   KRS: (brak) → 0000099254 ✅")
        print("   REGON: (brak) → 190586136 ✅")
        db.execute(text("""
            UPDATE companies SET
                krs = '0000099254',
                regon = '190586136',
                legal_name = 'PRZEDSIĘBIORSTWO AMA SPÓŁKA Z OGRANICZONĄ ODPOWIEDZIALNOŚCIĄ',
                address_street = 'ul. Szkolna 37',
                address_city = 'Bolszewo',
                address_postal = '84-239',
                address_full = 'ul. Szkolna 37, 84-239 Bolszewo',
                last_verified_at = :now,
                data_source = 'KRS (verified 2025-11-25)'
            WHERE id = 17
        """), {'now': datetime.now()})

        # 10. Chłodnictwo Klimatyzacja (ID: 26) - JDG
        print("\n10. CHŁODNICTWO KLIMATYZACJA (ID: 26) - JDG")
        print("   REGON: 220828645 (zgodny) ✅")
        db.execute(text("""
            UPDATE companies SET
                legal_name = 'CHŁODNICTWO KLIMATYZACJA TOMASZ NOWAK',
                address_street = 'ul. Lęborska 28',
                address_city = 'Gościcino',
                address_postal = '84-241',
                address_full = 'ul. Lęborska 28, 84-241 Gościcino',
                phone = '587397397',
                email = 'biuro@nowak-klima.pl',
                website = 'https://www.nowak-klima.pl',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 26
        """), {'now': datetime.now()})

        # 11. CrisTap (ID: 27) - JDG
        print("\n11. CRISTAP (ID: 27) - JDG")
        print("   REGON: 221619961 (zgodny) ✅")
        db.execute(text("""
            UPDATE companies SET
                legal_name = 'CRISTAP IWONA MUSIAŁ',
                address_street = 'ul. Budowlanych 7',
                phone = '58 677 52 39',
                website = 'https://www.cristap.pl',
                industry_sector = 'Meble, produkcja i sprzedaż',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 27
        """), {'now': datetime.now()})

        # 12. Eko Laser (ID: 29) - JDG
        print("\n12. EKO LASER (ID: 29) - JDG")
        print("   REGON: 192205530 ✅")
        db.execute(text("""
            UPDATE companies SET
                regon = '192205530',
                legal_name = 'EKO LASER ANDRZEJ KOSTECKI',
                address_street = 'ul. Polna 1',
                address_city = 'Bożepole Małe',
                address_postal = '84-214',
                address_full = 'ul. Polna 1, 84-214 Bożepole Małe',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 29
        """), {'now': datetime.now()})

        # 13. El Forte (ID: 32) - Spółka Cywilna
        print("\n13. EL FORTE (ID: 32) - Spółka Cywilna")
        db.execute(text("""
            UPDATE companies SET
                legal_name = 'PRZEDSIĘBIORSTWO HANDLOWO-USŁUGOWE EL FORTE SPÓŁKA CYWILNA',
                address_street = 'ul. Usługowa 14',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 32
        """), {'now': datetime.now()})

        db.execute(text("""
            INSERT OR IGNORE INTO company_contacts (company_id, full_name, role)
            VALUES (32, 'Zbigniew Pliszka', 'Wspólnik')
        """))
        db.execute(text("""
            INSERT OR IGNORE INTO company_contacts (company_id, full_name, role)
            VALUES (32, 'Sebastian Miotk', 'Wspólnik')
        """))

        # 14. HILLOB (ID: 35) - JDG
        print("\n14. HILLOB (ID: 35) - JDG")
        db.execute(text("""
            UPDATE companies SET
                legal_name = 'HILL OB HURTOWNIA ART. PRZEMYSŁOWYCH JAROSŁAW OBSZYŃSKI',
                email = 'hillob@hillob.pl',
                website = 'http://www.hillob.pl',
                address_city = 'Gdynia',
                industry_sector = 'Maszyny szwalnicze, dystrybucja i serwis',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 35
        """), {'now': datetime.now()})

        # 15. KAMMET (ID: 38) - Spółka Cywilna
        print("\n15. KAMMET (ID: 38) - Spółka Cywilna")
        print("   REGON: 190046670 (zgodny) ✅")
        db.execute(text("""
            UPDATE companies SET
                legal_name = 'PRZEDSIĘBIORSTWO OBRÓBKI METALI KAMMET S.C. KLEPACCY A.I M.',
                address_street = 'ul. Józefa Łęgowskiego 44/46',
                phone = '58 672 25 77',
                email = 'kammet@kammet.com.pl',
                website = 'https://www.kammet.com.pl',
                industry_sector = 'Obróbka metali, kamieniarstwo',
                last_verified_at = :now,
                data_source = 'CEIDG/REGON (verified 2025-11-25)'
            WHERE id = 38
        """), {'now': datetime.now()})

        # 16. Kancelaria Radcy Prawnego Radosław Skwarło (ID: 40) - JDG
        print("\n16. KANCELARIA SKWARŁO (ID: 40) - JDG")
        print("   REGON: 220192510 ✅")
        db.execute(text("""
            UPDATE companies SET
                regon = '220192510',
                legal_name = 'SKWARŁO RADOSŁAW KANCELARIA RADCY PRAWNEGO RADOSŁAW SKWARŁO',
                address_street = 'ul. Wałowa 28C/L14',
                phone = '+48 600 358 832',
                website = 'http://skwarlo.pl',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 40
        """), {'now': datetime.now()})

        # 17. Joker (ID: 37) - REGON znaleziony
        print("\n17. JOKER (ID: 37)")
        print("   REGON: 192797593 (zgodny) ✅")
        db.execute(text("""
            UPDATE companies SET
                last_verified_at = :now,
                data_source = 'REGON (verified 2025-11-25)'
            WHERE id = 37
        """), {'now': datetime.now()})

        # 18. MKonsult (ID: 88) - JDG
        print("\n18. MKONSULT (ID: 88) - JDG")
        print("   REGON: (brak) → 527331967 ✅")
        db.execute(text("""
            UPDATE companies SET
                regon = '527331967',
                legal_name = 'MKONSULT MAGDALENA MATUSZAK',
                address_city = 'Reda',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 88
        """), {'now': datetime.now()})

        # 19. Portal (ID: 89) - JDG
        print("\n19. PORTAL (ID: 89) - JDG")
        print("   REGON: (brak) → 220074376 ✅")
        db.execute(text("""
            UPDATE companies SET
                regon = '220074376',
                legal_name = 'USŁUGI OGÓLNOBUDOWLANE PORTAL GRZEGORZ WOJCIECHOWSKI',
                last_verified_at = :now,
                data_source = 'CEIDG (verified 2025-11-25)'
            WHERE id = 89
        """), {'now': datetime.now()})

        # 20. Hebel Masiak (ID: 80) - Spółka Cywilna
        print("\n20. HEBEL MASIAK (ID: 80) - Spółka Cywilna")
        print("   REGON: (brak) → 192983002 ✅")
        db.execute(text("""
            UPDATE companies SET
                regon = '192983002',
                legal_name = 'HEBEL MASIAK I WSPÓLNICY ADWOKACI I RADCOWIE PRAWNI SPÓŁKA CYWILNA',
                address_street = 'ul. Floriana Ceynowy 2A/1',
                address_city = 'Reda',
                address_postal = '84-240',
                address_full = 'ul. Floriana Ceynowy 2A/1, 84-240 Reda',
                phone = '58 736-17-16',
                website = 'https://www.hebel-masiak.pl',
                last_verified_at = :now,
                data_source = 'REGON (verified 2025-11-25)'
            WHERE id = 80
        """), {'now': datetime.now()})

        db.commit()
        print("\n" + "=" * 70)
        print("✅ WERYFIKACJA KRS/CEIDG ZAKOŃCZONA - 20 FIRM ZAKTUALIZOWANYCH")
        print("=" * 70)

    except Exception as e:
        print(f"❌ ERROR: {e}")
        db.rollback()
    finally:
        db.close()

if __name__ == "__main__":
    fix_krs_verification()
