import mysql.connector


def parse_a_vety_bulk():
    db_config = {
        'host': '192.168.1.76',
        'port': 3307,
        'user': 'root',
        'password': 'Vlado9674+',
        'database': 'ordinace'
    }

    conn = mysql.connector.connect(**db_config)
    cursor = conn.cursor(dictionary=True)

    # 1. Načtení všech 'A' vět z archivu
    print("Načítám věty typu A z databáze...")
    cursor.execute("SELECT id_davky, obsah_radku FROM vety WHERE typ_vety = 'A'")
    raw_records = cursor.fetchall()

    if not raw_records:
        print("Nenalezeny žádné věty typu A ke zpracování.")
        return

    # 2. Příprava seznamu dat pro hromadný insert
    data_to_insert = []

    for row in raw_records:
        s = row['obsah_radku']

        # Extrakce polí podle tvé specifikace (pozice + délka)
        # Slicing v Pythonu: s[start : start + delka]
        tuple_data = (
            row['id_davky'],  # id_davky
            s[13:16].strip(),  # HCPO (Pojišťovna)
            s[17:25].strip(),  # HICO (IČP)
            s[31:34].strip(),  # HODB (Odbornost)
            s[1:8].strip(),  # HCID (Číslo dokladu)
            s[34:44].strip(),  # HROD (Číslo pojištěnce / RČ)
            s[44:49].strip()  # HZDG (Diagnóza)
        )
        data_to_insert.append(tuple_data)

    # 3. Hromadné vložení (Insert Many)
    sql = """
        INSERT INTO doklady 
        (id_davky, pojistovna, icp, odbornost, cislo_poradove, rodne_cislo, diagnoza) 
        VALUES (%s, %s, %s, %s, %s, %s, %s)
    """

    try:
        print(f"Vkládám {len(data_to_insert)} záznamů do tabulky doklady...")
        cursor.executemany(sql, data_to_insert)
        conn.commit()
        print("Hromadný import dokladů byl úspěšně dokončen.")
    except mysql.connector.Error as err:
        print(f"Chyba při hromadném vkládání: {err}")
        conn.rollback()
    finally:
        cursor.close()
        conn.close()


if __name__ == "__main__":
    parse_a_vety_bulk()