import firebirdsql,re

def get_connection():
    return firebirdsql.connect(
        host="192.168.1.4",
        port=3050,
        database=r"z:\medicus 3\data\medicus.fdb",  # path must be valid on the server
        user="SYSDBA",
        password="masterkey",
        charset="WIN1250",
    )
def get_registrovani(cur): #vrati list rodnych cisel registrovanych pacientu "registrovani"
    cur.execute("""
        select rodcis from registr join kar
        on registr.idpac=kar.idpac where
        kar.vyrazen!='A' and
        kar.rodcis is not null and
        idicp!=0 and
        datum_zruseni is null
                """)
    registrovani=[]
    for radek in cur.fetchall():
        registrovani.append(radek[0])
    return registrovani

def je_registrovany(con,rodcis):
    cur=conn.cursor()
    cur.execute("""
        select 1 from registr join kar
        on registr.idpac=kar.idpac where
        kar.vyrazen!='A' and
        kar.rodcis is not null and
        idicp!=0 and
        datum_zruseni is null
        and rodcis=%s
        limit 1
                """)
    cur.execute(sql, (rodcis,))
    return cur.fetchone() is not None

def strip_cz_prefix(num: str) -> str:
    # remove spaces and non-digits first
    n = re.sub(r"\D", "", num)

    # strip +420, 00420 or 420 at start
    if n.startswith("00420"):
        return n[5:]
    elif n.startswith("420"):
        return n[3:]
    else:
        return n

def is_cz_mobile(num: str) -> bool:
    nmbr=strip_cz_prefix(num)
    MOBILE_PREFIXES = ("60", "72", "73", "77", "79")
    # now check length and prefix
    return len(nmbr) == 9 and nmbr[:2] in MOBILE_PREFIXES

def get_mobile(rodcis,conn):
    sql = f"""
        SELECT kar.prijmeni, kar.rodcis,
               karkontakt.poradi, karkontakt.kontakt
        FROM karkontakt join kar on kar.idpac=karkontakt.idpac
        where kar.rodcis={rodcis}
    """
    cur=conn.cursor()
    mobil={}



conn = get_connection()
cur = conn.cursor()




# print(get_mobile("340415112",conn))
print(is_cz_mobile("283893084"))