import sys, os
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
from app.models.contract import Contract
from app.models.lv import LVPosition
from datetime import date

app = create_app()

def run():
    with app.app_context():
        # Create KPT company
        company = Company.query.filter_by(slug='kpt-consulting').first()
        if not company:
            company = Company(
                name='KPT-Consulting', slug='kpt-consulting',
                strasse='Musterstr. 1', plz='88045', ort='Friedrichshafen',
                telefon='+49 7541 123456', email='info@kpt-consulting.de'
            )
            db.session.add(company)
            db.session.flush()
            print(f'Firma: {company.name} (ID {company.id})')
        else:
            print(f'Firma: {company.name} (ID {company.id})')

        # Superadmin (ohne company_id)
        sa = User.query.filter_by(email='super@admin.de').first()
        if not sa:
            sa = User(
                company_id=None, email='super@admin.de', rolle='superadmin',
                vorname='Super', nachname='Admin',
                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,
            )
            sa.set_password('admin123')
            db.session.add(sa)
            print('Superadmin: super@admin.de / admin123')
        else:
            print('Superadmin existiert bereits')

        # Firmadmin
        fa = User.query.filter_by(email='firmadmin@kpt.de').first()
        if not fa:
            fa = User(
                company_id=company.id, email='firmadmin@kpt.de',
                vorname='Firmen', nachname='Admin', 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('firma123')
            db.session.add(fa)
            print('Firmadmin: firmadmin@kpt.de / firma123')
        else:
            print('Firmadmin existiert bereits')

        # Florian Kramer
        fk = User.query.filter_by(email='fk@kpt-consulting.de').first()
        if not fk:
            fk = User(
                company_id=company.id, email='fk@kpt-consulting.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,
            )
            fk.set_password('kpt2024')
            db.session.add(fk)
            print('Florian Kramer: fk@kpt-consulting.de / kpt2024')
        else:
            print('Florian Kramer existiert bereits')

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

if __name__ == '__main__':
    run()
