import sys, os, re
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from app import create_app
from app.extensions import db
from app.models.company import Company
from app.models.user import User

app = create_app()

def slugify(name):
    s = name.lower().strip()
    s = re.sub(r'[^a-z0-9\s-]', '', s)
    s = re.sub(r'[\s-]+', '-', s)
    return s

def run():
    with app.app_context():
        slug = slugify('Dibran Dautaj Tief und Kabelbau')
        company = Company.query.filter_by(slug=slug).first()
        if not company:
            company = Company(
                name='Dibran Dautaj Tief und Kabelbau',
                slug=slug,
                strasse='Alemannenring',
                house_number='25',
                plz='88326',
                ort='Aulendorf',
                aktiv=True,
                evergabe_aktiviert=False,
            )
            db.session.add(company)
            db.session.flush()
            print(f'Firma angelegt: {company.name} (ID {company.id})')
        else:
            print(f'Firma existiert bereits: {company.name} (ID {company.id})')

        fa = User.query.filter_by(email='fk@dd-kabelbau.de').first()
        if not fa:
            fa = User(
                company_id=company.id, email='fk@dd-kabelbau.de',
                vorname='Florian', nachname='Kramer', rolle='firmadmin',
                darf_projekte_anlegen=True, darf_lv_verwalten=True,
                darf_preise_sehen=True, darf_aufmass_verwalten=True,
                darf_evergabe_nutzen=True, darf_kopfdaten_holen=True,
                darf_aufmass_uebertragen=True,
            )
            fa.set_password('Tami1234!')
            db.session.add(fa)
            print('Firmadmin: fk@dd-kabelbau.de / Tami1234!')
        else:
            print('Firmadmin fk@dd-kabelbau.de existiert bereits')

        usr = User.query.filter_by(email='rs@dd-kabelbau.de').first()
        if not usr:
            usr = User(
                company_id=company.id, email='rs@dd-kabelbau.de',
                vorname='Robert', nachname='Schöndienst', rolle='mitarbeiter',
                darf_projekte_anlegen=False, darf_lv_verwalten=False,
                darf_preise_sehen=True, darf_aufmass_verwalten=True,
                darf_evergabe_nutzen=False, darf_kopfdaten_holen=False,
                darf_aufmass_uebertragen=False,
            )
            usr.set_password('Robert21071954')
            db.session.add(usr)
            print('User: rs@dd-kabelbau.de / Robert21071954')
        else:
            print('User rs@dd-kabelbau.de existiert bereits')

        db.session.commit()
        print('\nSeed abgeschlossen.')

if __name__ == '__main__':
    run()
