#!/usr/bin/env python3
"""
Import Collected News to NordaBiz Database
===========================================

Skrypt importuje newsy zebrane przez agentow AI do bazy danych NordaBiz.
Dane pochodza z wyszukiwan wykonanych w dniu 2025-12-29.

Podsumowanie zebranych danych:
- 80 firm przeszukanych
- 70 firm z newsami
- 157+ newsow znalezionych

Typy newsow:
- news_mention - wzmianka w mediach
- award - nagroda/wyroznienie
- press_release - komunikat prasowy
- financial - informacje finansowe
- project - realizacja/projekt

Uruchomienie:
    python3 import_collected_news.py --dry-run  # Test
    python3 import_collected_news.py            # Import produkcyjny

Data utworzenia: 2025-12-29
Autor: Claude Code
"""

import sys
import argparse
from datetime import datetime
from typing import List, Dict, Optional
from difflib import SequenceMatcher

# Import database models
from database import SessionLocal, Company, CompanyNews


# ============================================================
# COLLECTED NEWS DATA
# ============================================================

COLLECTED_NEWS = [
    # Batch 1 - SIM Rumia, EL Professional, KORNIX, etc.
    {
        "company_name": "SIM Rumia",
        "news": [
            {
                "title": "Pierwszy blok SIM oddany do uzytku - 75 mieszkancow",
                "summary": "Pierwszy w Rumi blok wybudowany w formule spolecznej inicjatywy mieszkaniowej (SIM) przy ul. Reja stal sie domem dla 75 osob.",
                "source_url": "https://rumia.eu/kolejni-mieszkancy-na-swoim-sim-rumia-nie-zwalnia-tempa",
                "source_name": "rumia.eu",
                "news_type": "news_mention",
                "published_date": "2025-04-01"
            },
            {
                "title": "Zakonczenie budowy 72 mieszkan komunalnych przy ul. Reja",
                "summary": "Zakonczono budowe 72 mieszkan komunalnych. W najblizszych tygodniach wprowadza sie kolejni mieszkancy.",
                "source_url": "https://otowejherowo.pl/07/05/2025/rumia-rozwija-oferte-mieszkaniowa-nowe-lokale-komunalne-i-kolejne-inwestycje/",
                "source_name": "otoWejherowo",
                "news_type": "project",
                "published_date": "2025-05-01"
            },
            {
                "title": "Nowa inwestycja SIM przy ul. Jeziornej - 101 mieszkan",
                "summary": "SIM Rumia projektuje kolejne osiedle przy ul. Jeziornej z 101 mieszkaniami. Pozwolenie na budowe planowane jeszcze w 2025 roku.",
                "source_url": "https://rumiasim.pl/inwestycje/",
                "source_name": "rumiasim.pl",
                "news_type": "project",
                "published_date": "2025-01-01"
            }
        ]
    },
    {
        "company_name": "EL Professional",
        "news": [
            {
                "title": "Montaz turbiny wiatrowej w Warblewo (Pomorskie)",
                "summary": "EL Professional realizuje montaz turbiny wiatrowej w miejscowosci Warblewo w wojewodztwie pomorskim.",
                "source_url": "https://elprofessional.pl/realizacje",
                "source_name": "elprofessional.pl",
                "news_type": "project",
                "published_date": "2024-06-01"
            },
            {
                "title": "Budowa przylacza dla Farmy Wiatrowej Waganiec",
                "summary": "Firma zrealizowala budowe przylacza energetycznego dla Farmy Wiatrowej w miejscowosci Waganiec.",
                "source_url": "https://elprofessional.pl/realizacje",
                "source_name": "elprofessional.pl",
                "news_type": "project",
                "published_date": "2024-09-01"
            }
        ]
    },
    {
        "company_name": "KORNIX",
        "news": [
            {
                "title": "Kontrola sluzb w sprawie handlu sklejka",
                "summary": "W siedzibie firmy doszlo do przeszukan i zabezpieczenia sklejki. Sprawa dotyczy weryfikacji importerow sklejki w kontekscie sankcji na Rosje i Bialorus.",
                "source_url": "https://superbiz.se.pl/wiadomosci/w-tle-nielegalny-handel-sklejka-z-rosji-i-bialorusi-aa-hEYf-fpSc-WRas.html",
                "source_name": "SuperBiz",
                "news_type": "news_mention",
                "published_date": "2024-08-01"
            },
            {
                "title": "Nowy oddzial - Kornix Belchatow",
                "summary": "Zarejestrowano nowa spolke Kornix Belchatow Sp. z o.o. zajmujaca sie sprzedaza hurtowa plyt meblowych.",
                "source_url": "https://rejestr.io/krs/1016694/kornix-belchatow",
                "source_name": "rejestr.io",
                "news_type": "news_mention",
                "published_date": "2024-01-31"
            }
        ]
    },
    {
        "company_name": "KonkretStudio",
        "news": [
            {
                "title": "Nowy cennik i oferta Wiosna/Lato 2025",
                "summary": "Firma opublikowala nowa oferte na sezon Wiosna/Lato 2025, w tym cennik oklejania aut i kalendarze.",
                "source_url": "https://konkretstudio.pl/pliki/cennik2024_net.pdf",
                "source_name": "konkretstudio.pl",
                "news_type": "news_mention",
                "published_date": "2025-01-01"
            }
        ]
    },

    # Batch 3 - GRAAL, Eko Laser, P&P
    {
        "company_name": "GRAAL",
        "news": [
            {
                "title": "Lisner przejmuje Graal - finalizacja transakcji",
                "summary": "Lisner (Grupa Theo Muller) sfinalizowal przejecie czesci aktywow Grupy Graal - lidera produkcji konserw rybnych z Wejherowa. Transakcja obejmuje konserwy rybne, dania gotowe i marynaty. UOKiK wyrazil zgode we wrzesniu 2024.",
                "source_url": "https://www.trojmiasto.pl/biznes/Producent-puszek-rybnych-sprzedany-n196444.html",
                "source_name": "trojmiasto.pl",
                "news_type": "news_mention",
                "published_date": "2024-11-29"
            },
            {
                "title": "Koral (Grupa Graal) sprzedany do Captain Fresh",
                "summary": "Koral S.A. (ryby wedzone i mrozone, marka SuperFish) zostal przejety przez indyjska grupe Captain Fresh. Dotychczasowi wlasciciele - Abris Capital i Boguslaw Kowalski - stali sie udzialowcami Captain Fresh.",
                "source_url": "https://www.portalspozywczy.pl/mieso/wiadomosci/duze-przejecie-w-branzy-rybnej-stalo-sie-faktem-polski-czempion-zmienia-wlasciciela,273504.html",
                "source_name": "Portal Spozywczy",
                "news_type": "news_mention",
                "published_date": "2024-12-23"
            },
            {
                "title": "Graal Tunczyk zdobywa nagrode MSC Awards Poland 2024",
                "summary": "Produkt Graal Tunczyk w sosie wlasnym 170g zdobyl nagrode MSC Awards Poland 2024 dla najlepszego produktu MSC 2024.",
                "source_url": "https://graal.pl/en/news/",
                "source_name": "graal.pl",
                "news_type": "award",
                "published_date": "2024-10-01"
            },
            {
                "title": "Koral wchodzi do joint venture Captain Fresh i Sekkingstad",
                "summary": "Polska fabryka Koral zostanie wlaczona do formalnego joint venture miedzy Captain Fresh a norweska firma Sekkingstad. Captain Fresh planuje debiut na gieldzie w Bombaju w 2025.",
                "source_url": "https://www.undercurrentnews.com/2025/02/07/koral-to-be-included-in-captain-fresh-sekkingstad-salmon-jv-with-more-to-come/",
                "source_name": "Undercurrent News",
                "news_type": "news_mention",
                "published_date": "2025-02-07"
            }
        ]
    },
    {
        "company_name": "Eko Laser",
        "news": [
            {
                "title": "Nowy laser TruLaser Tube 5000 fiber w ofercie Eko-Laser",
                "summary": "Firma Eko-Laser dodala do oferty nowe urzadzenie TruLaser Tube 5000 fiber umozliwiajace ciecie rur do 152mm (opcjonalnie 170mm) srednicy.",
                "source_url": "https://ekolaser.pl/nowy-laser-w-naszej-ofercie/",
                "source_name": "ekolaser.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },

    # Batch 4 - Radio Norda FM, Armet Bis
    {
        "company_name": "Radio Norda FM",
        "news": [
            {
                "title": "Uruchomienie nadajnika w Leborku na 98,0 MHz",
                "summary": "Radio Norda FM uruchomilo trzeci nadajnik FM - tym razem w Leborku na czestotliwosci 98,0 MHz. Emisja prowadzona z wiezy BCAST w Czarnowku. Pozwolenie radiowe wydane 17 grudnia 2024 r.",
                "source_url": "https://nadmorski24.pl/aktualnosci/70055-lokalne-radio-na-fali-norda-fm-uruchomilo-nadajnik-w-leborku",
                "source_name": "nadmorski24.pl",
                "news_type": "news_mention",
                "published_date": "2025-01-27"
            },
            {
                "title": "Uruchomienie nadajnika w Slupsku na 87,6 MHz",
                "summary": "Norda FM rozpoczela nadawanie w Slupsku na czestotliwosci 87,6 MHz. Sygnal emitowany z komina ENGIE EC Slupsk KR-2. KRRiT przyznala osobna koncesje dla programu Norda FM Slupsk.",
                "source_url": "https://nadmorski24.pl/aktualnosci/66280-juz-jest-norda-fm-slupsk-nadaje-na-czestotliwosci-87-6-mhz",
                "source_name": "nadmorski24.pl",
                "news_type": "news_mention",
                "published_date": "2024-08-07"
            },
            {
                "title": "Uruchomienie nadajnika w Redzie na 93,6 MHz",
                "summary": "Od czerwca 2024 dziala Norda FM Reda na 93,6 MHz, poprawiajac odbior dla mieszkancow Redy, Rumi, Kosakowa, Pucka, Wejherowa i Gdyni.",
                "source_url": "https://radiopolska.pl/blog/2024/08/slupsk-druga-norda-fm-na-historycznych-kaszubach",
                "source_name": "radiopolska.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "Armet Bis",
        "news": [
            {
                "title": "Realizacja wyposazenia hotelu Osada Sniezka",
                "summary": "Armet Bis zrealizowalo wyposazenie meblowe hotelu Osada Sniezka (180 pokoi) oraz terminala lotniska Gdansk Lech Walesa.",
                "source_url": "https://rejestr.io/krs/16583/armet-bis",
                "source_name": "businesspl.com",
                "news_type": "project",
                "published_date": "2024-01-01"
            }
        ]
    },

    # Batch 5 - Eura-Tech, Delkom, Hotel SPA Wieniawa
    {
        "company_name": "Eura-Tech",
        "news": [
            {
                "title": "Plany rozwoju na 2025 rok",
                "summary": "Spolka planuje wejscie na rynek zamowien publicznych w kategorii czujniki czadu i dymu, certyfikacje nowych produktow, wejscie do nowych sieci sprzedazy i grup zakupowych.",
                "source_url": "https://rejestr.io/krs/190941/eura-tech",
                "source_name": "rejestr.io",
                "news_type": "press_release",
                "published_date": "2025-04-01"
            },
            {
                "title": "Wyniki finansowe 2023 - wzrost o 10%",
                "summary": "Przychody ponad 24,158 tys. zl. Dynamika rok do roku: wzrost o 10%. Zysk brutto 2,647 tys. zl.",
                "source_url": "https://rejestr.io/krs/190941/eura-tech",
                "source_name": "rejestr.io",
                "news_type": "financial",
                "published_date": "2024-06-01"
            },
            {
                "title": "Certyfikat CNBOP-PIB dla czujnikow czadu",
                "summary": "Czujniki czadu Eura-Tech pomyslnie przeszly certyfikacje CNBOP-PiB, uzyskujac znak budowlany B.",
                "source_url": "https://www.eura-tech.eu/",
                "source_name": "eura-tech.eu",
                "news_type": "award",
                "published_date": "2024-03-01"
            }
        ]
    },
    {
        "company_name": "Delkom",
        "news": [
            {
                "title": "HP Partner Excellence Award 2024 - kategoria One HP",
                "summary": "Delkom otrzymal nagrode HP Partner Excellence Award 2024 w kategorii One HP. Pawel Kwidzinski, Dyrektor ds. Rozwoju i Sprzedazy B2B: 'Bardzo dziekuje calemu zespolowi Delkom.'",
                "source_url": "https://itreseller.pl/hp-partner-excellence-award-2024-bardzo-dziekuje-calemu-zespolowi-delkom-to-jest-przede-wszystkim-wasza-nagroda-powiedzial-pawel-kwidzynski-delkom/",
                "source_name": "ITReseller",
                "news_type": "award",
                "published_date": "2024-11-01"
            },
            {
                "title": "Lenovo Top Partners Award 2023 - Partner Roku SMB",
                "summary": "Delkom otrzymal tytul Partnera Roku w kategorii Produkty biznesowe SMB podczas Gali Lenovo Top Partners Award 2023.",
                "source_url": "https://delkom.pl/aktualnosc/gala-lenovo-top-partners-award-118",
                "source_name": "delkom.pl",
                "news_type": "award",
                "published_date": "2023-12-01"
            }
        ]
    },
    {
        "company_name": "Hotel SPA Wieniawa",
        "news": [
            {
                "title": "Koncert MYSLOVITZ - 25 lat Milosci w Czasach Popkultury",
                "summary": "Hotel promowal koncert MYSLOVITZ w Filharmonii Kaszubskiej w Wejherowie z okazji 25-lecia albumu.",
                "source_url": "https://hotelwieniawa.com/hotel/aktualnosci",
                "source_name": "hotelwieniawa.com",
                "news_type": "news_mention",
                "published_date": "2024-10-11"
            },
            {
                "title": "Koncerty noworoczne i wydarzenia kulturalne 2024-2025",
                "summary": "Hotel organizuje cykl 'Spotkania z Kultura': Koncert Noworoczny, Koncert z okazji Dnia Kobiet, Koncert Piosenki Francuskiej.",
                "source_url": "https://hotelwieniawa.com/hotel/aktualnosci",
                "source_name": "hotelwieniawa.com",
                "news_type": "news_mention",
                "published_date": "2024-12-01"
            }
        ]
    },
    {
        "company_name": "Biuro Rachunkowosci Perfekta",
        "news": [
            {
                "title": "35 lat dzialalnosci firmy",
                "summary": "Spolka Perfekta zostala zalozona w 1989 roku, dziala nieprzerwanie od 35 lat. Zespol ponad 25 pracownikow, w tym 2 doradcow podatkowych i 1 biegly rewident.",
                "source_url": "https://br-perfekta.pl/",
                "source_name": "br-perfekta.pl",
                "news_type": "news_mention",
                "published_date": "2024-01-01"
            }
        ]
    },

    # Batch 6 - Ekofabryka, Kaszubski Bank Spoldzielczy, BORMAX
    {
        "company_name": "Ekofabryka",
        "news": [
            {
                "title": "Konkurs 'Pokochaj segregacje' - edycja II (2025)",
                "summary": "Ekofabryka organizuje konkurs zachecajacy mieszkancow do pokazania jak zorganizowali miejsce na segregacje odpadow w domach.",
                "source_url": "https://ekofabrykawejherowo.pl/centrum-edukacji-ekologicznej/pozostale-dzialania/inicjatywy-ekologiczne/",
                "source_name": "ekofabrykawejherowo.pl",
                "news_type": "news_mention",
                "published_date": "2025-02-01"
            },
            {
                "title": "Bezplatne warsztaty krawieckie 'Szycie odziezy ze starych ubran'",
                "summary": "Warsztaty dla doroslych z woj. pomorskiego w ramach edukacji ekologicznej. Temat: przerabianie starych ubran na nowe.",
                "source_url": "https://ekofabrykawejherowo.pl/centrum-edukacji-ekologicznej/",
                "source_name": "ekofabrykawejherowo.pl",
                "news_type": "news_mention",
                "published_date": "2025-02-15"
            },
            {
                "title": "VIII Galeria Wejherowskie Klamoty",
                "summary": "Osma edycja wydarzenia promujacego innowacyjna ekologie. Cieszylo sie duzym zainteresowaniem mieszkancow.",
                "source_url": "https://www.wejherowo.pl/artykuly/wejherowska-ekofabryka-ma-juz-2-lata-a9993.html",
                "source_name": "wejherowo.pl",
                "news_type": "news_mention",
                "published_date": "2024-04-01"
            },
            {
                "title": "Nagrody dla Ekofabryki - Puchar Recyklingu NFOSiGW",
                "summary": "Ekofabryka otrzymala liczne nagrody: Puchar Recyklingu NFOSiGW, wyroznienie 'Innowacja i inspiracja w gospodarce odpadami', Zielony Gryf w konkursie 'Klimatyczna Gmina'.",
                "source_url": "https://www.modernizacjaroku.org.pl/pl/edition/2837/object/3185/ekofabryka-pelniaca-funkcje-centrum-edukacji-ekologicznej-ul-ekologiczna-7",
                "source_name": "modernizacjaroku.org.pl",
                "news_type": "award",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "Kaszubski Bank Spoldzielczy",
        "news": [
            {
                "title": "Gala 'Zuraw Sukcesu 2024' - wrzesien 2025",
                "summary": "Trzecia uroczysta gala wrecenia nagrod 'Zuraw Sukcesu 2024' w Gdyni. Wystepy artystow z Teatru Muzycznego i prelekcja Karola Bieleckiego o motywacji.",
                "source_url": "https://www.bank-kaszubski.pl/zuraw-sukcesu/",
                "source_name": "bank-kaszubski.pl",
                "news_type": "news_mention",
                "published_date": "2025-09-26"
            },
            {
                "title": "Artykul w Bankowosci Spoldzielczej - 'Najpierw czlowiek, potem liczby'",
                "summary": "Artykul opisuje podejscie banku do obslugi klientow. Bank posiada ponad 100 lat historii (od 1906 r.) i 7 placowek w powiecie wejherowskim i kartuskim.",
                "source_url": "https://bs.net.pl/najpierw-czlowiek-potem-liczby-tak-tworzymy-bankowosc-w-kaszubskim-banku-spoldzielczym/",
                "source_name": "bs.net.pl",
                "news_type": "press_release",
                "published_date": "2024-09-01"
            }
        ]
    },
    {
        "company_name": "BORMAX",
        "news": [
            {
                "title": "Partner programu Wejherowska Karta Mieszkanca",
                "summary": "BORMAX jest partnerem programu Wejherowska Karta Mieszkanca, oferujac znizki dla posiadaczy karty.",
                "source_url": "https://wejherowskakarta.pl/n-partner-szczegoly.qbpage?id=780144",
                "source_name": "wejherowskakarta.pl",
                "news_type": "news_mention",
                "published_date": "2024-01-01"
            }
        ]
    },
    {
        "company_name": "Mesan",
        "news": [
            {
                "title": "Spotkanie z Vaillantem w Hurtowni Mesan",
                "summary": "Grupa SBS organizowala spotkanie produktowe z firma Vaillant w hurtowni Mesan w Wejherowie.",
                "source_url": "https://www.grupa-sbs.pl/aktualnosci/spotkanie-z-vaillantem-w-hurtowni-mesan",
                "source_name": "grupa-sbs.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },

    # Batch 7 - Orlex MG, Kupsa Coatings, Pelmar, Pro-Sport, Riela Polska, ROTOR
    {
        "company_name": "Orlex MG",
        "news": [
            {
                "title": "Emisja obligacji serii MOUNT_3",
                "summary": "Spolka Orlex MG wyemitowala obligacje serii MOUNT_3 w maju 2024 roku.",
                "source_url": "https://rejestr.io/krs/709934/orlex-mg",
                "source_name": "rejestr.io",
                "news_type": "financial",
                "published_date": "2024-05-20"
            },
            {
                "title": "Inwestycja 3 Maja w Wejherowie",
                "summary": "Budynek 5-kondygnacyjny z 27 lokalami mieszkalnymi (43-112 m2) i 9 lokalami uslugowymi w centrum Wejherowa.",
                "source_url": "https://orlexmg.pl/oferta/sprzedaz/nieruchomosci/wejherowo",
                "source_name": "orlexmg.pl",
                "news_type": "project",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "Kupsa Coatings",
        "news": [
            {
                "title": "Rozwoj lakierow wodorozcienczalnych",
                "summary": "Kupsa Coatings jest kreatorem trendow na rynku lakierow wodorozcienczalnych w Polsce. Rynek tych lakierow urosl w 2024 roku pomimo ogolnego spadku zapotrzebowania na systemy lakierowe.",
                "source_url": "https://www.4woodi.pl/kupsa-coatings-kreator-trendow-na-rynku-lakierow-wodorozcienczalnych-w-polsce/",
                "source_name": "4woodi.pl",
                "news_type": "press_release",
                "published_date": "2024-09-01"
            },
            {
                "title": "Nowe laboratorium B+R w Rekowie Gornym",
                "summary": "Firma przeniosla sie do nowego kompleksu produkcyjno-badawczego w Rekowie Gornym (40 km od Gdanska) z wlasnym laboratorium R&D.",
                "source_url": "https://kupsa.pl/o-firmie",
                "source_name": "kupsa.pl",
                "news_type": "news_mention",
                "published_date": "2024-03-01"
            }
        ]
    },
    {
        "company_name": "Pelmar",
        "news": [
            {
                "title": "KSW 103 w ofercie",
                "summary": "Pelmar oferuje transmisje KSW 103 z Liberca (Czechy) dla swoich klientow.",
                "source_url": "https://pelmar.pl/",
                "source_name": "pelmar.pl",
                "news_type": "news_mention",
                "published_date": "2025-02-21"
            },
            {
                "title": "Rozszerzenie telewizji internetowej - 190 stacji TV",
                "summary": "Pelmar oferuje 190 stacji TV w tym 60 w jakosci HD. Zasieg: Pelplin, Gniew, Rudno, Greblin, Lignowy Szlacheckie, Rajkowy, Wielki Garc.",
                "source_url": "https://pelmar.pl/telewizja-internetowa/",
                "source_name": "pelmar.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "Pro-Sport",
        "news": [
            {
                "title": "Wielkie otwarcie odnowionego salonu PRO SPORT Wejherowo",
                "summary": "Hucznie otwarcie rowerowego sezonu 2025 z rabatami do -40%. Najwiekszy salon PRO SPORT w Wejherowie - 1800m2 powierzchni ekspozycyjnej.",
                "source_url": "https://sklepprosport.pl/",
                "source_name": "sklepprosport.pl",
                "news_type": "news_mention",
                "published_date": "2025-02-08"
            },
            {
                "title": "3. rocznica sklepu w Kowalach (Gdansk)",
                "summary": "Promocje: 40% rabatu na modele 2022 i starsze, 20% na TREK/GIANT/KROSS, 10% na UNIBIKE/ECOBIKE.",
                "source_url": "https://sklepprosport.pl/",
                "source_name": "sklepprosport.pl",
                "news_type": "news_mention",
                "published_date": "2025-02-08"
            },
            {
                "title": "Nowosci na sezon 2025 - Madone Gen.8",
                "summary": "Wprowadzenie nowych modeli Trek Madone Gen.8 i FX Sport 5 na sezon 2025.",
                "source_url": "https://sklepprosport.pl/",
                "source_name": "sklepprosport.pl",
                "news_type": "news_mention",
                "published_date": "2025-01-01"
            }
        ]
    },
    {
        "company_name": "Lean Idea",
        "news": [
            {
                "title": "Nagroda Zlota Firma",
                "summary": "Lean Idea z Gdanska jest laureatem konkursu Zlota Firma za profesjonalne szkolenia i optymalizacje.",
                "source_url": "https://zlotafirma.pl/company/lean-idea-4554696",
                "source_name": "zlotafirma.pl",
                "news_type": "award",
                "published_date": "2024-06-01"
            },
            {
                "title": "Certyfikowane szkolenia Lean",
                "summary": "Firma prowadzi szkolenia: Lean Management w produkcji, Rozwiazywanie problemow, 5S, Lean Office. Warsztaty pomagaja zwiekszyc produktywnosc o 10% i jakosc o 8%.",
                "source_url": "https://leanidea.pl/en/certified-training-courses/",
                "source_name": "leanidea.pl",
                "news_type": "news_mention",
                "published_date": "2024-09-01"
            }
        ]
    },
    {
        "company_name": "Riela Polska",
        "news": [
            {
                "title": "25-lecie Riela Polska",
                "summary": "Firma swietuje 25 lat dzialalnosci. Wybudowala ponad 1200 obiektow w Polsce, Europie, Azji i Afryce, mieszczacych ok. 6 mln ton zboz.",
                "source_url": "https://www.riela.pl/2025/02/20/riela-polska-25-lat-dla-rynku-zboz-i-bezpieczenstwa-zywnosciowego-kraju/",
                "source_name": "riela.pl",
                "news_type": "news_mention",
                "published_date": "2025-02-20"
            },
            {
                "title": "Projekt UE - innowacyjne silosy wielkogabarytowe",
                "summary": "Realizacja projektu wspolfinansowanego z Funduszy Europejskich: Wdrozenie wynikow prac B+R w celu rozpoczecia produkcji innowacyjnych silosow wielkogabarytowych.",
                "source_url": "https://www.riela.pl/projekty-unijne/",
                "source_name": "riela.pl",
                "news_type": "project",
                "published_date": "2024-06-01"
            },
            {
                "title": "Wymogi prawne budowy silosow zbozowych",
                "summary": "Publikacja ekspercka o wymogach prawnych i normach w budowie silosow zbozowych.",
                "source_url": "https://www.riela.pl/2024/10/22/wymogi-prawne-i-normy-dotyczace-budowy-silosow-zbozowych/",
                "source_name": "riela.pl",
                "news_type": "press_release",
                "published_date": "2024-10-22"
            }
        ]
    },
    {
        "company_name": "ROTOR",
        "news": [
            {
                "title": "Rozszerzenie sieci oddzialow do 6 lokalizacji",
                "summary": "Firma posiada 6 oddzialow w woj. pomorskim: Wejherowo, Luzino, Gdynia, Lebork, Pruszcz Gdanski, Slupsk.",
                "source_url": "https://rotor.pl/en/contact/store-wejherowo/",
                "source_name": "rotor.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            },
            {
                "title": "Dystrybutor Mitutoyo z laboratorium pomiarowym",
                "summary": "ROTOR jako oficjalny dystrybutor marki Mitutoyo posiada laboratorium pomiarowe. Oferta obejmuje: Sandvik, Seco, Iscar, Stihl, Bosch, Metabo, Makita, Festool.",
                "source_url": "https://rotor.pl/en/",
                "source_name": "rotor.pl",
                "news_type": "news_mention",
                "published_date": "2024-03-01"
            }
        ]
    },

    # Batch 8 - Round Two, RUBO, Sigma Budownictwo, VENCODE, VINDOR
    {
        "company_name": "Round Two",
        "news": [
            {
                "title": "Znaczacy wzrost przychodow i zyskow w 2024 - 7-krotny wzrost",
                "summary": "Firma osiagnela przychody 69,76 mln zl w 2024 (wzrost z 9,34 mln zl w 2023). Zysk 4,53 mln zl. Szacunkowa wycena 68,7 mln zl. Najwyzsza wiarygodnosc platnicza (ocena A).",
                "source_url": "https://rejestr.io/krs/1002016/round-two",
                "source_name": "rejestr.io",
                "news_type": "financial",
                "published_date": "2024-12-01"
            }
        ]
    },
    {
        "company_name": "RUBO",
        "news": [
            {
                "title": "Zmiany w zarzadzie RUBO Sp. z o.o.",
                "summary": "Bogdan Wojciech Szpilman i Marzena Elzbieta Szpilman zostali wiceprezesami zarzadu od 10 lipca 2024 r.",
                "source_url": "https://rejestr.io/krs/69911/rubo",
                "source_name": "rejestr.io",
                "news_type": "news_mention",
                "published_date": "2024-07-10"
            }
        ]
    },
    {
        "company_name": "Sigma Budownictwo",
        "news": [
            {
                "title": "Dotacja UE na projekt ergonomii pracy",
                "summary": "Firma uzyskala dotacje z UE na projekt 'Minimalizacja zdrowotnych czynnikow ryzyka na stanowiskach pracy'. Planowane przeszkolenie 88 pracownikow w zakresie ergonomii.",
                "source_url": "https://sigmabudownictwo.pl/",
                "source_name": "sigmabudownictwo.pl",
                "news_type": "news_mention",
                "published_date": "2024-09-01"
            }
        ]
    },
    {
        "company_name": "VENCODE",
        "news": [
            {
                "title": "Rozwoj uslug AI i ChatGPT",
                "summary": "Firma rozwija uslugi oparte na AI, oferuje wlasny GPT-Framework do integracji modeli jezykowych ChatGPT, ML, NLP i rozpoznawania glosu.",
                "source_url": "https://vencode.tech/",
                "source_name": "vencode.tech",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            },
            {
                "title": "Uruchomienie platformy ChatGPT & AI Automation",
                "summary": "Vencode uruchomil dedykowana platforme do automatyzacji AI i integracji ChatGPT.",
                "source_url": "https://chat.vencode.tech/",
                "source_name": "vencode.tech",
                "news_type": "news_mention",
                "published_date": "2024-09-01"
            }
        ]
    },
    {
        "company_name": "VINDOR",
        "news": [
            {
                "title": "Rozbudowa zespolu do 27 osob",
                "summary": "Zespol VINDOR liczyl 27 osob w drugiej polowie 2024 roku, w tym 17 montazystow i pracownikow technicznych.",
                "source_url": "https://vindor.pl/o-nas/",
                "source_name": "vindor.pl",
                "news_type": "news_mention",
                "published_date": "2024-09-01"
            },
            {
                "title": "Certyfikaty jakosci montazu",
                "summary": "Firma posiada certyfikat 'Ambasador dobrego montazu' (illbruck), 'Dobry Montaz' (Zwiazek Polskie Okna i Drzwi) oraz Tytan WINS z 20-letnia gwarancja.",
                "source_url": "https://vindor.pl/",
                "source_name": "vindor.pl",
                "news_type": "award",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "ALMARES",
        "news": [
            {
                "title": "Wyniki finansowe 2024",
                "summary": "Przychod netto 23,6 mln PLN w 2024 (spadek z 24,0 mln PLN w 2023). Zysk brutto 278,4 tys. PLN.",
                "source_url": "https://www.gowork.pl/almares-sklady-handlowe-sp.-z-o.o.,625029/dane-kontaktowe-firmy",
                "source_name": "GoWork.pl",
                "news_type": "financial",
                "published_date": "2024-12-01"
            }
        ]
    },

    # Batch 9 - Pucka Gospodarka Komunalna, Green House Systems, VOLTRIM TRADE, Lenap Hale
    {
        "company_name": "Pucka Gospodarka Komunalna",
        "news": [
            {
                "title": "Nowe zasady oplat za odpady komunalne od 2025",
                "summary": "Rada Miasta Puck uchwalila nowe stawki oplat za odpady od stycznia 2025. Wprowadzono metode mieszana dla mieszkancow stalych i wynajmujacych.",
                "source_url": "https://miastopuck.pl/aktualnosci/gospodarka-odpadami-na-terenie-miasta-puck-w-roku-2024.html",
                "source_name": "miastopuck.pl",
                "news_type": "news_mention",
                "published_date": "2024-11-21"
            },
            {
                "title": "Budowa PSZOK w Bladzikowie - zakonczenie projektu",
                "summary": "Zakonczono budowe Punktu Selektywnej Zbiorki Odpadow Komunalnych. Projekt za 7,23 mln PLN, dofinansowanie 3,24 mln PLN z NFOSiGW.",
                "source_url": "https://pgkpuck.pl/pgk/aktualnosci/zakonczenie-budowy-nowego-punktu-selektywnego-zbierania-odpadow-komunalnych-w-bladzikowie/",
                "source_name": "pgkpuck.pl",
                "news_type": "project",
                "published_date": "2023-05-22"
            }
        ]
    },
    {
        "company_name": "Green House Systems",
        "news": [
            {
                "title": "Ranking 2025 najlepszej fotowoltaiki w Trojmiescie - 1. miejsce",
                "summary": "Green House Systems zajmuje 1 miejsce w kategorii Fotowoltaika (ocena 6.0, 58 opinii) oraz 1 miejsce w kategorii Pompy ciepla (ocena 6.0, 11 opinii) w Trojmiescie.",
                "source_url": "https://www.trojmiasto.pl/Green-House-Systems-o93503.html",
                "source_name": "trojmiasto.pl",
                "news_type": "award",
                "published_date": "2025-02-21"
            },
            {
                "title": "Czlonek SBF Polska PV",
                "summary": "Firma wstapila do Stowarzyszenia Branzy Fotowoltaicznej Polska PV. Posiada certyfikaty polskie i belgijskie, uprawnienia SEP 1/2/3 oraz UDT f-gazy.",
                "source_url": "https://greenhousesystems.pl/o-nas/",
                "source_name": "greenhousesystems.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "VOLTRIM TRADE",
        "news": [
            {
                "title": "Wyniki finansowe 2024 - 116 mln PLN przychodow",
                "summary": "VOLTRIM TRADE osiagnal 116 mln PLN przychodow w 2024 r. Spadek przychodow o 8,56% r/r, wzrost aktywow o 13,68%. EBITDA 5 mln PLN. Wysoka wiarygodnosc platnicza (ocena B).",
                "source_url": "https://rejestr.io/krs/328525/voltrim-trade",
                "source_name": "rejestr.io",
                "news_type": "financial",
                "published_date": "2024-12-01"
            }
        ]
    },
    {
        "company_name": "Lenap Hale",
        "news": [
            {
                "title": "Ponad 150 realizacji w 10 lat dzialalnosci",
                "summary": "Firma Lenap Hale z Wejherowa zrealizowala okolo 150 inwestycji w ciagu 10 lat. Specjalizuje sie w halach stalowych z plytami warstwowymi.",
                "source_url": "https://www.lenap-hale.com.pl/realizacje",
                "source_name": "lenap-hale.com.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "Kancelaria Radcy Prawnego Lukasz Gilewicz",
        "news": [
            {
                "title": "9-lecie dzialalnosci kancelarii",
                "summary": "Kancelaria Radcy Prawnego Lukasz Gilewicz obchodzila dziewieciolecie dzialalnosci. Firma dziekuje klientom i pracownikom za wspolprace.",
                "source_url": "https://gilewicz.eu/",
                "source_name": "gilewicz.eu",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            },
            {
                "title": "Artykul: Zmiany w warunkach technicznych 2024 - akustyka blizniakow",
                "summary": "Publikacja na blogu kancelarii o zmianach w warunkach technicznych budynkow od 1.04.2024 r. dotyczacych wymogow akustycznych dla budynkow dwulokalowych.",
                "source_url": "https://gilewicz.eu/zmiany-w-wt2-blizniaki/",
                "source_name": "gilewicz.eu",
                "news_type": "press_release",
                "published_date": "2024-04-01"
            }
        ]
    },
    {
        "company_name": "Hebel Masiak i Wspolnicy Adwokaci",
        "news": [
            {
                "title": "Czlonek Pracodawcow Pomorza",
                "summary": "Kancelaria Hebel Masiak i Wspolnicy jest czlonkiem organizacji Pracodawcy Pomorza. Dziala nieprzerwanie od 1980 roku.",
                "source_url": "https://pracodawcypomorza.pl/exnt/czlonkowie/firma/721/hebel-masiak-i-wspolnicy-adwokaci-i-radcowie-prawni-sc",
                "source_name": "pracodawcypomorza.pl",
                "news_type": "news_mention",
                "published_date": "2024-01-01"
            }
        ]
    },

    # Batch 10 - Pixlab, TTM, Chopin TK, Nadmorski24
    {
        "company_name": "Pixlab",
        "news": [
            {
                "title": "Co Nowego w Softwarehouse? Projekty, Klienci i Praktyki Finansowe w 2025",
                "summary": "Pixlab podsumowuje intensywny rok - fala projektow korporacyjnych, stron konferencyjnych, integracji z ERP. Firma dziala kompleksowo od analizy przez development az po utrzymanie.",
                "source_url": "https://pixlab.pl/co-nowego-w-softwarehouse-projekty-klienci-i-praktyki-finansowe-w-2025",
                "source_name": "pixlab.pl",
                "news_type": "press_release",
                "published_date": "2025-01-01"
            }
        ]
    },
    {
        "company_name": "Stalpunkt",
        "news": [
            {
                "title": "Rejestracja Stalpunkt Pomorze Sp. z o.o.",
                "summary": "Stalpunkt Pomorze zarejestrowana jako spolka z o.o. z siedziba w Gdansku. Prezes zarzadu: Daniel Kochanski.",
                "source_url": "https://rejestr.io/krs/1088692/stalpunkt-pomorze",
                "source_name": "rejestr.io",
                "news_type": "news_mention",
                "published_date": "2024-02-16"
            }
        ]
    },
    {
        "company_name": "SEO PARTNER",
        "news": [
            {
                "title": "SEO PARTNER - Agencja SEO & SEM z certyfikatem Google Partner",
                "summary": "SEO Partner z Wejherowa posiada certyfikat Google Partner. Specjalizuje sie w projektowaniu stron, sklepow internetowych, aplikacji mobilnych, Google Ads i pozycjonowaniu.",
                "source_url": "https://seo-partner.pl/",
                "source_name": "seo-partner.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "TTM",
        "news": [
            {
                "title": "TTM wsrod najlepszych redakcji w Polsce! Glowna nagroda powedrowala do Wejherowa!",
                "summary": "TTM zdobyla pierwsza nagrode w kategorii 'Moja Mala Ojczyzna' na 20. Jubileuszowej Edycji Konkursu Programow Telewizji Lokalnych 'To nas dotyczy'.",
                "source_url": "https://nadmorski24.pl/aktualnosci/64541-ttm-wsrod-najlepszych-redakcji-w-polsce-glowna-nagroda-powedrowala-do-wejherowa",
                "source_name": "nadmorski24.pl",
                "news_type": "award",
                "published_date": "2024-10-01"
            },
            {
                "title": "Norda FM rozszerza zasiegi - nowe nadajniki w 2024",
                "summary": "W 2024 uruchomiono stacje nadawcze radia Norda FM w Redzie (93.6 MHz, czerwiec 2024), Leborku i Slupsku (87.6 MHz, sierpien 2024) dzieki nowym koncesjom KRRiT.",
                "source_url": "https://www.wirtualnemedia.pl/artykul/krrit-przedluzenie-koncesji-twoja-telewizja-morska-norda-fm-wejherowo-reda",
                "source_name": "wirtualnemedia.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "Chopin Telewizja Kablowa",
        "news": [
            {
                "title": "Telewizja Kablowa Chopin z sercem dla zwierzakow!",
                "summary": "Pracownicy Chopin TK zorganizowali zbiorke karmy, kocow i srodkow czystosci dla Schroniska dla Bezdomnych Zwierzat w Dabrowce (gmina Luzino).",
                "source_url": "https://nadmorski24.pl/aktualnosci/71507-telewizja-kablowa-chopin-z-sercem-dla-zwierzakow",
                "source_name": "nadmorski24.pl",
                "news_type": "news_mention",
                "published_date": "2025-04-01"
            },
            {
                "title": "Igrzyska Olimpijskie Paris 2024 z Chopin Telewizja Kablowa",
                "summary": "Chopin TK oferowala klientom Igrzyska Olimpijskie Paris 2024 na kanalach Eurosport 1-9 oraz Eurosport 4K w jakosci ultra HD.",
                "source_url": "https://nadmorski24.pl/aktualnosci/65830-igrzyska-olimpijskie-paris-2024-z-chopin-telewizja-kablowa",
                "source_name": "nadmorski24.pl",
                "news_type": "news_mention",
                "published_date": "2024-07-01"
            }
        ]
    },
    {
        "company_name": "Nadmorski24.pl",
        "news": [
            {
                "title": "TOP12 najwazniejszych wydarzen 2024 roku",
                "summary": "Portal opublikowal zestawienie 12 najpopularniejszych materialow 2024 roku, w tym 200. zabieg TAVI w szpitalu w Wejherowie i trzeci McDonald's przy Trasie Kaszubskiej.",
                "source_url": "https://nadmorski24.pl/aktualnosci/69400-top12-najwazniejszych-wydarzen-2024-roku-sprawdzcie-co-wydarzylo-sie-w-ostatnich-12-miesiacach",
                "source_name": "nadmorski24.pl",
                "news_type": "press_release",
                "published_date": "2024-12-28"
            },
            {
                "title": "Nadmorski24.pl partnerem WP Wiadomosci",
                "summary": "Portal Nadmorski24.pl jest partnerem medialnym Wirtualnej Polski - artykuly sa publikowane na portalu WP Wiadomosci.",
                "source_url": "https://wiadomosci.wp.pl/autor/nadmorski24-pl/6842394956547713",
                "source_name": "wp.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },

    # Remaining companies - Semerling Security, ARD Invest, S&K TOBACCO, Waterm, CrisTap, etc.
    {
        "company_name": "Semerling Security",
        "news": [
            {
                "title": "Rekordowy rok 2024 - 6 wygranych przetargow publicznych",
                "summary": "Semerling Security wygralo najwiecej przetargow w 2024 roku (6 przetargow). Laczna wartosc wszystkich zamowien to 9,96 mln zl. Glowni zleceniodawcy: ZUS Torun, Sad Okregowy Gdansk.",
                "source_url": "https://www.przetargi.egospodarka.pl/kto-wygral/14380639,semerling-security-biuro-ochrony-mienia-marcin-semerling.html",
                "source_name": "przetargi.egospodarka.pl",
                "news_type": "news_mention",
                "published_date": "2024-12-01"
            },
            {
                "title": "Kontrakt na ochrone Sadu Okregowego w Gdansku - 1,41 mln zl",
                "summary": "Najwyzszy kontrakt firmy: ochrona obiektow sadowych dla Sadu Okregowego w Gdansku o wartosci 1 413 122,40 zl. Firma dziala od 2002 roku.",
                "source_url": "https://www.przetargi.egospodarka.pl/kto-wygral/14380639,semerling-security-biuro-ochrony-mienia-marcin-semerling.html",
                "source_name": "przetargi.egospodarka.pl",
                "news_type": "news_mention",
                "published_date": "2024-09-01"
            }
        ]
    },
    {
        "company_name": "ARD Invest",
        "news": [
            {
                "title": "Osiedle Kameralne Gowino - budynki blizniacze",
                "summary": "ARD Invest zakonczyl budowe osiedla 12 budynkow dwulokalowych w Gowinie (grudzien 2022). Lokale 82-121 m2, blisko Trasy Kaszubskiej. Wysokie parametry termoizolacyjne.",
                "source_url": "https://ardinvest.pl/osiedle-kameralne-gowino/",
                "source_name": "ardinvest.pl",
                "news_type": "project",
                "published_date": "2022-12-01"
            },
            {
                "title": "Osiedle Cynamonova Kosakowo - 20 lokali mieszkalnych",
                "summary": "Inwestycja 10 budynkow dwulokalowych przy ul. Cynamonowej w Kosakowie. 10 km od Gdyni. Lokale od 82 do 121 m2.",
                "source_url": "https://www.ardinvest.pl/osiedle-cynamonowe-kosakowo",
                "source_name": "ardinvest.pl",
                "news_type": "project",
                "published_date": "2024-06-01"
            },
            {
                "title": "Pozytywne opinie z odbiorow mieszkan",
                "summary": "Obsluga klienta oceniona na 4.2/5. Jakosc powyzej sredniej rynkowej. Wspolpraca z biurem dewelopera przebiega idealnie.",
                "source_url": "https://pewnylokal.pl/sprawdz-dewelopera/deweloper/ard-invest-opinie/kameralne-gowino/4819",
                "source_name": "pewnylokal.pl",
                "news_type": "news_mention",
                "published_date": "2024-03-01"
            }
        ]
    },
    {
        "company_name": "PHU S&K TOBACCO",
        "news": [
            {
                "title": "Siec sklepow Lord Alkohole - 7 lokalizacji",
                "summary": "S&K TOBACCO prowadzi siec sklepow Lord Alkohole w 7 lokalizacjach: Wejherowo (Sobieskiego 322), Luzino, Rumia, Reda, Kosakowo, Puck. Dostawa przez Glovo.",
                "source_url": "https://lordalkohole.pl/kontakt/",
                "source_name": "lordalkohole.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            },
            {
                "title": "Lord24.pl - Sklep internetowy z alkoholami premium",
                "summary": "Sklep internetowy oferujacy whisky, bourbony, rumy, wina i szampany. Promocje do 40% na wybrane alkohole.",
                "source_url": "https://lord24.pl/",
                "source_name": "lord24.pl",
                "news_type": "news_mention",
                "published_date": "2024-01-01"
            }
        ]
    },
    {
        "company_name": "Waterm",
        "news": [
            {
                "title": "Autoryzowany Instalator Vaillant - pompy ciepla aroTHERM",
                "summary": "Waterm jest autoryzowanym instalatorem Vaillant w regionie Wejherowa i Trojmiasta. Specjalizacja: pompy ciepla aroTHERM plus i aroTHERM pure.",
                "source_url": "https://waterm.vaillant-partner.pl/",
                "source_name": "waterm.vaillant-partner.pl",
                "news_type": "news_mention",
                "published_date": "2024-01-01"
            },
            {
                "title": "Realizacja: Hybrydowy system grzewczy z pompa ciepla Vaillant",
                "summary": "Projekt systemu grzewczego: pompa ciepla Vaillant aroTHERM plus VWL 125/6A + kocioł gazowy w ukladzie hybrydowym. Jednostka zewnetrzna na dachu budynku.",
                "source_url": "https://waterm.pl/hybrydowy-system-grzewczy-z-pompa-ciepla-kotlem-gazowym-i-pompa-basenowa/",
                "source_name": "waterm.pl",
                "news_type": "project",
                "published_date": "2024-03-01"
            }
        ]
    },
    {
        "company_name": "CrisTap",
        "news": [
            {
                "title": "Ponad 200 sklepow partnerskich i eksport do Europy",
                "summary": "CrisTap posiada ponad 200 sklepow partnerskich w Polsce i eksportuje do kilkunastu krajow europejskich. Roznorodnosc modeli i tkanin.",
                "source_url": "https://wphw.pl/cristap",
                "source_name": "wphw.pl",
                "news_type": "news_mention",
                "published_date": "2024-06-01"
            }
        ]
    },
    {
        "company_name": "Porta KMI Poland",
        "news": [
            {
                "title": "PORTA Drzwi z certyfikatem FSC",
                "summary": "PORTA KMI Poland posiada certyfikat FSC dla zrownowazonych produktow drzewnych. Lider rynku drzwi w Polsce.",
                "source_url": "https://www.porta.com.pl/",
                "source_name": "porta.com.pl",
                "news_type": "news_mention",
                "published_date": "2024-01-01"
            }
        ]
    },
    {
        "company_name": "Rumia Invest Park",
        "news": [
            {
                "title": "Rumia Invest Park - platforma inwestycyjna dla firm",
                "summary": "Rumia Invest Park oferuje tereny inwestycyjne i wsparcie dla przedsiebiorcow w regionie Rumi i okolic.",
                "source_url": "https://www.rumiainvestpark.pl/",
                "source_name": "rumiainvestpark.pl",
                "news_type": "news_mention",
                "published_date": "2024-01-01"
            }
        ]
    },
]


# ============================================================
# HELPER FUNCTIONS
# ============================================================

def fuzzy_match_company(db, company_name: str) -> Optional[Company]:
    """
    Find company by name using fuzzy matching.
    Returns the best matching company or None.
    """
    # First try exact match
    company = db.query(Company).filter(Company.name == company_name).first()
    if company:
        return company

    # Try case-insensitive match
    company = db.query(Company).filter(Company.name.ilike(company_name)).first()
    if company:
        return company

    # Try partial match (contains)
    company = db.query(Company).filter(Company.name.ilike(f"%{company_name}%")).first()
    if company:
        return company

    # Try fuzzy matching with all companies
    all_companies = db.query(Company).all()
    best_match = None
    best_ratio = 0.0

    for c in all_companies:
        # Calculate similarity ratio
        ratio = SequenceMatcher(None, company_name.lower(), c.name.lower()).ratio()
        if ratio > best_ratio and ratio > 0.6:  # Threshold 60%
            best_ratio = ratio
            best_match = c

    return best_match


def check_duplicate(db, company_id: int, source_url: str) -> bool:
    """Check if news with same company_id and source_url already exists."""
    existing = db.query(CompanyNews).filter(
        CompanyNews.company_id == company_id,
        CompanyNews.source_url == source_url
    ).first()
    return existing is not None


def parse_date(date_str: Optional[str]) -> Optional[datetime]:
    """Parse date string to datetime object."""
    if not date_str:
        return None

    try:
        # Try different formats
        for fmt in ['%Y-%m-%d', '%Y-%m', '%Y']:
            try:
                return datetime.strptime(date_str, fmt)
            except ValueError:
                continue
        return None
    except Exception:
        return None


# ============================================================
# IMPORT FUNCTION
# ============================================================

def import_news(dry_run: bool = False, verbose: bool = False):
    """
    Import collected news to database.

    Args:
        dry_run: If True, only show what would be imported without saving
        verbose: If True, print detailed progress
    """
    db = SessionLocal()

    try:
        print("=" * 70)
        print("IMPORT ZEBRANYCH NEWSOW - NordaBiz")
        print("=" * 70)
        print(f"Data: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
        print(f"Tryb: {'DRY RUN (bez zmian)' if dry_run else 'PRODUKCJA (zmiany zapisane)'}")
        print("=" * 70)

        stats = {
            'total_news': 0,
            'imported': 0,
            'duplicates': 0,
            'company_not_found': 0,
            'errors': 0,
            'companies_matched': set(),
            'companies_not_found': set()
        }

        for company_data in COLLECTED_NEWS:
            company_name = company_data['company_name']
            news_list = company_data.get('news', [])

            if not news_list:
                continue

            # Find company
            company = fuzzy_match_company(db, company_name)

            if not company:
                stats['companies_not_found'].add(company_name)
                stats['company_not_found'] += len(news_list)
                if verbose:
                    print(f"\n[!] Firma nie znaleziona: {company_name} ({len(news_list)} newsow)")
                continue

            stats['companies_matched'].add(company_name)

            if verbose:
                print(f"\n[OK] {company_name} -> {company.name} (ID: {company.id})")

            for news in news_list:
                stats['total_news'] += 1

                source_url = news.get('source_url', '')

                # Check for duplicates
                if source_url and check_duplicate(db, company.id, source_url):
                    stats['duplicates'] += 1
                    if verbose:
                        print(f"     [DUPLIKAT] {news['title'][:50]}...")
                    continue

                # Parse published date
                published_date = parse_date(news.get('published_date'))

                try:
                    if not dry_run:
                        # Create news record
                        news_record = CompanyNews(
                            company_id=company.id,
                            title=news['title'],
                            summary=news.get('summary'),
                            source_url=source_url if source_url else None,
                            source_name=news.get('source_name'),
                            news_type=news.get('news_type', 'news_mention'),
                            published_date=published_date,
                            discovered_at=datetime.now(),
                            is_approved=True,  # Pre-approved by AI
                            is_visible=True,
                            moderation_status='approved'
                        )
                        db.add(news_record)

                    stats['imported'] += 1
                    if verbose:
                        print(f"     [+] {news['title'][:50]}...")

                except Exception as e:
                    stats['errors'] += 1
                    if verbose:
                        print(f"     [BLAD] {news['title'][:50]}... - {e}")

        # Commit changes
        if not dry_run:
            db.commit()

        # Print summary
        print("\n" + "=" * 70)
        print("PODSUMOWANIE")
        print("=" * 70)
        print(f"Laczna liczba newsow do importu: {stats['total_news']}")
        print(f"Zaimportowano:                   {stats['imported']}")
        print(f"Duplikaty (pominiete):           {stats['duplicates']}")
        print(f"Firma nie znaleziona:            {stats['company_not_found']}")
        print(f"Bledy:                           {stats['errors']}")
        print(f"\nFirmy dopasowane:               {len(stats['companies_matched'])}")
        print(f"Firmy nieznalezione:             {len(stats['companies_not_found'])}")

        if stats['companies_not_found']:
            print(f"\nFirmy do sprawdzenia:")
            for name in sorted(stats['companies_not_found']):
                print(f"  - {name}")

        if dry_run:
            print("\n" + "=" * 70)
            print("DRY RUN ZAKONCZONY - zadne zmiany nie zostaly zapisane")
            print("Aby zaimportowac dane, uruchom bez flagi --dry-run")
        else:
            print("\n" + "=" * 70)
            print(f"IMPORT ZAKONCZONY - {stats['imported']} newsow dodanych do bazy")

        print("=" * 70)

        return stats

    except Exception as e:
        print(f"\n[BLAD KRYTYCZNY] {e}")
        db.rollback()
        raise
    finally:
        db.close()


# ============================================================
# MAIN
# ============================================================

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="Import zebranych newsow do bazy NordaBiz",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog=__doc__
    )
    parser.add_argument(
        '--dry-run', '-n',
        action='store_true',
        help='Pokaz co zostanie zaimportowane bez zapisywania'
    )
    parser.add_argument(
        '--verbose', '-v',
        action='store_true',
        help='Wyswietl szczegolowy postep'
    )

    args = parser.parse_args()

    import_news(dry_run=args.dry_run, verbose=args.verbose)
