import os, sys, django, datetime
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'artaghadir.settings')
django.setup()

from django.contrib.auth.models import User
from apps.core.models import SiteSettings, Stat, AboutSection, TeamMember
from apps.projects.models import Project, Province, MineralType
from apps.news.models import Article, Category
from apps.tenders.models import Tender
from apps.careers.models import JobPosition
from apps.accounts.models import Profile

print("شروع ساخت داده‌های نمونه آرتا غدیر...")

SiteSettings.objects.update_or_create(pk=1, defaults={
    'site_name_fa':'شرکت کانی کاوش آرتا غدیر','site_name_en':'Arta Ghadir Mining Co.',
    'tagline_fa':'بازوی فعال هلدینگ صنایع و معادن غدیر','address_fa':'تهران، محله ونک، خیابان گلدشت',
    'phone':'021-88765432','email':'info@artaghadir.com',
})
print("  تنظیمات سایت")

for s in [
    {'icon':'map','value':'11','label_fa':'استان فعال','order':1},
    {'icon':'terrain','value':'+4M','label_fa':'تن قرارداد استخراج','order':2},
    {'icon':'business','value':'20+','label_fa':'پروژه فعال','order':3},
    {'icon':'engineering','value':'300+','label_fa':'نیروی متخصص','order':4},
]:
    Stat.objects.get_or_create(label_fa=s['label_fa'], defaults=s)
print("  آمار")

AboutSection.objects.get_or_create(title_fa='شرکت کانی کاوش آرتا غدیر', defaults={
    'title_en':'Arta Ghadir Mining Co.',
    'content_fa':'شرکت کانی کاوش آرتا غدیر به عنوان بازوی محرک هلدینگ صنایع و معادن غدیر، در زمینه اکتشاف، استخراج و فرآوری مواد معدنی در بیش از 11 استان کشور فعالیت می‌نماید.',
    'vision_fa':'تبدیل شدن به یکی از بزرگترین شرکت‌های معدنی کشور.',
    'mission_fa':'اکتشاف، استخراج و فرآوری بهینه ذخایر معدنی با رعایت اصول زیست‌محیطی.',
})
print("  درباره ما")

for n,r,o in [('مهندس علی رضایی','مدیرعامل',1),('دکتر محمد کریمی','رئیس هیئت مدیره',2),
              ('مهندس سارا احمدی','مدیر فنی',3),('مهندس رضا موسوی','مدیر مالی',4)]:
    TeamMember.objects.get_or_create(name_fa=n, defaults={'role_fa':r,'order':o})
print("  تیم مدیریت")

for fa,en in [('یزد','Yazd'),('کرمان','Kerman'),('زنجان','Zanjan'),('خراسان رضوی','Razavi Khorasan'),
              ('اصفهان','Isfahan'),('سیستان و بلوچستان','Sistan-Baluchestan'),('گلستان','Golestan'),
              ('آذربایجان شرقی','East Azerbaijan'),('مرکزی','Markazi'),('همدان','Hamadan'),('سمنان','Semnan')]:
    Province.objects.get_or_create(name_fa=fa, defaults={'name_en':en})
print("  11 استان")

for fa,en in [('سنگ آهن','Iron Ore'),('مس','Copper'),('سرب و روی','Lead & Zinc'),
              ('طلا','Gold'),('کرومیت','Chromite'),('منگنز','Manganese')]:
    MineralType.objects.get_or_create(name_fa=fa, defaults={'name_en':en})
print("  مواد معدنی")

projects = [
    ('معدن سنگ آهن ساغند','saghand-iron-ore','یزد','سنگ آهن','active',True,
     'معدن سنگ آهن ساغند یکی از بزرگترین پروژه‌های شرکت در استان یزد با قرارداد استخراج بالای 4 میلیون تن.',
     '+4 میلیون تن',2450,1401,33.0,54.5),
    ('پروژه اکتشاف مس کرمان','kerman-copper','کرمان','مس','exploration',True,
     'پروژه اکتشاف مس کرمان با استفاده از روش‌های پیشرفته ژئوفیزیکی در حال بررسی است.',
     'در حال ارزیابی',1800,1402,30.28,57.07),
    ('معدن سرب و روی زنجان','zanjan-lead-zinc','زنجان','سرب و روی','active',True,
     'معدن سرب و روی زنجان با ذخایر قابل توجه، از پروژه‌های کلیدی شرکت است.',
     '1.2 میلیون تن',950,1400,36.67,48.48),
    ('پروژه طلای خراسان','khorasan-gold','خراسان رضوی','طلا','exploration',True,
     'پروژه اکتشاف طلا در خراسان رضوی با نتایج امیدوارکننده در حال پیگیری است.',
     'در حال ارزیابی',5600,1403,36.29,59.60),
    ('معدن منگنز گلستان','golestan-manganese','گلستان','منگنز','active',False,
     'معدن منگنز گلستان در شمال کشور، در تامین منگنز صنایع فولاد نقش مهمی دارد.',
     '450 هزار تن',720,1399,36.84,54.43),
    ('پروژه کرومیت سیستان','sistan-chromite','سیستان و بلوچستان','کرومیت','development',False,
     'پروژه کرومیت سیستان با ذخایر غنی در حال توسعه زیرساخت است.',
     '800 هزار تن',3200,1402,27.20,60.82),
]
for tfa,slug,prov,mineral,status,featured,desc,reserve,area,year,lat,lng in projects:
    p_obj = Province.objects.filter(name_fa=prov).first()
    m_obj = MineralType.objects.filter(name_fa=mineral).first()
    proj,created = Project.objects.get_or_create(slug=slug, defaults={
        'title_fa':tfa,'province':p_obj,'status':status,'is_featured':featured,
        'description_fa':desc,'reserve_tons':reserve,'area_hectares':area,
        'start_year':year,'latitude':lat,'longitude':lng
    })
    if created and m_obj:
        proj.mineral_types.add(m_obj)
print("  6 پروژه معدنی")

for name,slug in [('اخبار شرکت','company-news'),('پروژه‌ها','projects'),('فناوری','technology'),('رویدادها','events')]:
    Category.objects.get_or_create(slug=slug, defaults={'name_fa':name})

cc = Category.objects.get(slug='company-news')
pc = Category.objects.get(slug='projects')
tc = Category.objects.get(slug='technology')

for title,slug,cat,summary,body,featured in [
    ('انعقاد قرارداد استخراج بالای 4 میلیون تن در مجتمع ساغند','saghand-4m-contract',cc,
     'شرکت کانی کاوش آرتا غدیر قراردادی با مجموعه عصر نوین ساغند امضا کرد.',
     '<p>این قرارداد یکی از بزرگترین قراردادهای استخراج معدن در تاریخ شرکت است.</p>',True),
    ('توسعه فعالیت‌های اکتشافی به 11 استان کشور','expansion-11-provinces',pc,
     'آرتا غدیر در بیش از 11 استان کشور فعالیت اکتشافی و استخراجی دارد.',
     '<p>شرکت فعالیت‌های خود را به 11 استان گسترش داده است.</p>',True),
    ('بهره‌گیری از فناوری‌های نوین در اکتشاف معادن','modern-exploration-tech',tc,
     'استفاده از روش‌های پیشرفته ژئوفیزیکی و تصویربرداری ماهواره‌ای در پروژه‌های اکتشافی.',
     '<p>آرتا غدیر با فناوری‌های نوین دقت اکتشاف را افزایش داده است.</p>',False),
    ('رشد 35 درصدی حجم استخراج در سال 1402','annual-growth-1402',cc,
     'گزارش عملکرد سالانه رشد 35 درصدی در حجم استخراج نشان می‌دهد.',
     '<p>حجم استخراج 35% رشد کرده و 80 نیروی متخصص جدید استخدام شدند.</p>',False),
]:
    Article.objects.get_or_create(slug=slug, defaults={
        'title_fa':title,'category':cat,'summary_fa':summary,
        'body_fa':body,'is_published':True,'is_featured':featured,'author':'روابط عمومی'
    })
print("  4 خبر")

for title,typ,status,desc,days in [
    ('مناقصه عملیات حفاری اکتشافی معدن ساغند','tender','open','واگذاری عملیات حفاری اکتشافی در محدوده معدن ساغند.',30),
    ('مناقصه تامین تجهیزات سنگ‌شکن','tender','open','تامین تجهیزات سنگ‌شکن برای خط فرآوری معدن زنجان.',21),
    ('مزایده فروش کنسانتره سنگ آهن','auction','open','فروش کنسانتره سنگ آهن از معدن ساغند.',14),
    ('مناقصه خدمات حمل‌ونقل ماده معدنی','tender','closed','این مناقصه به پایان رسیده است.',-10),
]:
    Tender.objects.get_or_create(title_fa=title, defaults={
        'type':typ,'status':status,'description_fa':desc,
        'deadline':datetime.date.today()+datetime.timedelta(days=days)
    })
print("  4 مناقصه")

for title,dept,loc,etype,desc,req,days in [
    ('مهندس زمین‌شناسی اکتشاف','واحد اکتشاف','تهران / میدانی','full_time',
     'مطالعات زمین‌شناسی و تفسیر داده‌های اکتشافی.',
     'کارشناسی ارشد زمین‌شناسی، 3 سال سابقه.',30),
    ('سرپرست عملیات معدن','واحد بهره‌برداری','معدن ساغند - یزد','full_time',
     'نظارت بر عملیات روزانه استخراج معدن.',
     'کارشناسی مهندسی معدن، 5 سال سابقه.',45),
    ('کارشناس محیط زیست','واحد HSE','تهران','full_time',
     'ارزیابی اثرات زیست‌محیطی پروژه‌های معدنی.',
     'کارشناسی ارشد محیط زیست، 2 سال سابقه.',25),
    ('کارآموز مهندسی معدن','واحد فنی','تهران','internship',
     'کارآموزی در واحد فنی و اکتشاف شرکت.',
     'دانشجوی کارشناسی مهندسی معدن.',60),
]:
    JobPosition.objects.get_or_create(title_fa=title, defaults={
        'department_fa':dept,'location_fa':loc,'employment_type':etype,
        'description_fa':desc,'requirements_fa':req,
        'deadline':datetime.date.today()+datetime.timedelta(days=days)
    })
print("  4 فرصت شغلی")

# ── Admin ──────────────────────────────────────────────────
if not User.objects.filter(username='admin').exists():
    u = User.objects.create_superuser('admin','admin@artaghadir.com','admin1234')
    Profile.objects.get_or_create(user=u, defaults={'role':'employee','is_approved':True})
    print("  کاربر admin ساخته شد")

# ── Sample Users ──────────────────────────────────────────
users_data = [
    ('contractor1','احمد','محمدی','contractor1@example.com','contractor','شرکت ساخت و ساز البرز',True),
    ('supplier1','مریم','رضایی','supplier1@example.com','supplier','تامین تجهیزات معدنی پارس',True),
    ('partner1','علی','کریمی','partner1@example.com','partner','هلدینگ سرمایه‌گذاری ایران',False),
    ('employee1','سارا','احمدی','employee1@example.com','employee','آرتا غدیر',True),
    ('viewer1','حسین','موسوی','viewer1@example.com','viewer','',False),
]
for uname,fn,ln,email,role,company,approved in users_data:
    if not User.objects.filter(username=uname).exists():
        u = User.objects.create_user(uname,email,uname+'1234',first_name=fn,last_name=ln)
        Profile.objects.get_or_create(user=u,defaults={'role':role,'company':company,'is_approved':approved})
print("  5 کاربر نمونه")

print("""
✅  همه داده‌ها آماده شدند!

  آدرس‌ها:
  - سایت:       http://127.0.0.1:8000
  - ادمین:      http://127.0.0.1:8000/admin
  - ورود:       http://127.0.0.1:8000/accounts/login

  کاربران:
  ┌──────────────┬─────────────────┬──────────────┐
  │ نام کاربری  │ رمز عبور        │ نقش          │
  ├──────────────┼─────────────────┼──────────────┤
  │ admin        │ admin1234       │ ادمین        │
  │ contractor1  │ contractor1234  │ پیمانکار     │
  │ supplier1    │ supplier1234    │ تامین‌کننده  │
  │ partner1     │ partner1234     │ شریک تجاری  │
  │ employee1    │ employee1234    │ کارمند       │
  │ viewer1      │ viewer1234      │ بازدیدکننده │
  └──────────────┴─────────────────┴──────────────┘

  اجرا:  python manage.py runserver
""")

# ── Expertise Areas ────────────────────────────────────────
from apps.core.models import ExpertiseArea, Service, Award
expertise_data = [
    ('⛏️','اکتشاف معدنی','Mineral Exploration','مطالعات ژئوفیزیکی، حفاری اکتشافی و تخمین ذخایر','Geophysical studies, exploratory drilling and reserve estimation'),
    ('🏔️','استخراج معدن','Mining Operations','استخراج روباز و زیرزمینی با روش‌های نوین','Open pit and underground mining with modern methods'),
    ('⚙️','فرآوری مواد معدنی','Mineral Processing','تولید کنسانتره و فرآوری سنگ‌های معدنی','Concentrate production and mineral processing'),
    ('🌿','محیط زیست معدن','Mine Environment','پایش محیط زیستی و ایمنی معادن','Environmental monitoring and mine safety'),
    ('📊','مطالعات امکانسنجی','Feasibility Studies','ارزیابی اقتصادی و فنی پروژه‌های معدنی','Economic and technical evaluation of mining projects'),
]
for icon,tfa,ten,dfa,den in expertise_data:
    ExpertiseArea.objects.get_or_create(title_fa=tfa, defaults={'icon_fa':icon,'title_en':ten,'desc_fa':dfa,'desc_en':den})
print("  ✓ حوزه‌های تخصصی")

services_data = [
    ('🔍','اکتشاف و پیمایش','Exploration & Survey','خدمات اکتشاف زمین‌شناسی و برداشت‌های میدانی'),
    ('🏗️','مدیریت پروژه معدنی','Mining Project Management','مدیریت کامل چرخه پروژه‌های معدنی'),
    ('🧪','آزمایشگاه و کنترل کیفیت','Lab & QC','آزمایش‌های کانی‌شناسی و کنترل کیفیت'),
    ('🚛','حمل‌ونقل معدنی','Mining Transport','لجستیک و حمل مواد معدنی'),
]
for icon,tfa,ten,dfa in services_data:
    Service.objects.get_or_create(title_fa=tfa, defaults={'icon_fa':icon,'title_en':ten,'desc_fa':dfa})
print("  ✓ خدمات")

awards_data = [
    ('واحد نمونه صنعت معدن','وزارت صنعت، معدن و تجارت','1401'),
    ('گواهینامه ایمنی و بهداشت معدن','سازمان نظام مهندسی معدن','1400'),
    ('تقدیرنامه حفاظت محیط زیست','سازمان حفاظت محیط زیست','1402'),
]
for tfa,issuer,year in awards_data:
    Award.objects.get_or_create(title_fa=tfa, defaults={'issuer_fa':issuer,'year':year})
print("  ✓ تقدیرنامه‌ها")
