FilozofMuhendis
Initial model upload - Industrial Cost Calculation Chatbot
8223b74 verified
import os
import sys
from sqlalchemy.orm import Session
from app.db.database import SessionLocal, engine
from app.db.models import Base, LaborRate, Material, MarginProfile
def seed_database():
"""Seed the database with initial data"""
# Create a new session
db = SessionLocal()
try:
# Check if data already exists
if db.query(LaborRate).count() > 0:
print("Database already seeded. Skipping...")
return
print("Seeding database...")
# Seed labor rates
labor_rates = [
LaborRate(job_type="Kaynakçı", hourly_rate=150.0),
LaborRate(job_type="Elektrikçi", hourly_rate=175.0),
LaborRate(job_type="Mühendis", hourly_rate=300.0),
LaborRate(job_type="Teknisyen", hourly_rate=125.0),
LaborRate(job_type="CNC Operatörü", hourly_rate=200.0),
]
db.add_all(labor_rates)
# Seed materials
materials = [
Material(name="Çelik Sac (1mm)", unit="m²", unit_price=250.0),
Material(name="Alüminyum Profil", unit="metre", unit_price=120.0),
Material(name="Bakır Kablo", unit="metre", unit_price=45.0),
Material(name="PLC Kontrol Ünitesi", unit="adet", unit_price=5000.0),
Material(name="Sensör", unit="adet", unit_price=750.0),
Material(name="Motor (1kW)", unit="adet", unit_price=2500.0),
Material(name="Rulman", unit="adet", unit_price=180.0),
]
db.add_all(materials)
# Seed margin profiles
margin_profiles = [
MarginProfile(profile_name="Standart", margin_percentage=0.15), # 15%
MarginProfile(profile_name="Düşük Rekabet", margin_percentage=0.25), # 25%
MarginProfile(profile_name="Yüksek Rekabet", margin_percentage=0.10), # 10%
MarginProfile(profile_name="Stratejik Müşteri", margin_percentage=0.12), # 12%
MarginProfile(profile_name="Yeni Pazar", margin_percentage=0.08), # 8%
]
db.add_all(margin_profiles)
# Commit changes
db.commit()
print("Database seeded successfully!")
except Exception as e:
db.rollback()
print(f"Error seeding database: {e}")
raise
finally:
db.close()
if __name__ == "__main__":
# Create tables if they don't exist
Base.metadata.create_all(bind=engine)
# Seed database
seed_database()