import json
import random

def generate_pool():
    # 1. Names Generator (Combining First & Last Names)
    first_names_male = [
        "Agus", "Budi", "Bambang", "Eko", "Hendra", "Iwan", "Joko", "Lukman", "Mulyadi", "Rian",
        "Rudi", "Slamet", "Taufik", "Wawan", "Yadi", "Zaki", "Ade", "Bagus", "Cahyo", "Darmawan",
        "Erlangga", "Fadilah", "Galih", "Hafiz", "Ikhsan", "Junaedi", "Kiki", "Lutfi", "Maman", "Nanang"
    ]
    first_names_female = [
        "Siti", "Dewi", "Rina", "Maya", "Sari", "Indah", "Anita", "Putri", "Ratna", "Nina",
        "Linda", "Desi", "Siska", "Amelia", "Yanti", "Ratna", "Nina", "Indah", "Anita", "Putri",
        "Rara", "Fany", "Novi", "Aulia", "Fitri", "Hana", "Tika", "Wulan", "Yulia", "Kiki"
    ]
    last_names = [
        "Santoso", "Setiawan", "Nugroho", "Kurniawan", "Saputra", "Fauzi", "Hidayat", "Permana", "Pratama", "Wibowo",
        "Rahman", "Budiman", "Sunandar", "Wahyuni", "Rahma", "Lestari", "Wijaya", "Fitriani", "Saputri", "Setyawati",
        "Hidayah", "Puspita", "Kusuma", "Utami", "Marlina", "Fitriani", "Anwar", "Hasan", "Utomo", "Kosasih"
    ]
    
    names = set()
    all_first = first_names_male + first_names_female
    while len(names) < 600:
        full_name = f"{random.choice(all_first)} {random.choice(last_names)}"
        names.add(full_name)

    # 2. Addresses Generator (Combining Streets, Numbers, Cities)
    streets = [
        "Jl. Jenderal Sudirman", "Jl. MH Thamrin", "Jl. Gatot Subroto", "Jl. Rasuna Said", "Jl. Kebon Sirih",
        "Jl. Imam Bonjol", "Jl. Diponegoro", "Jl. S. Parman", "Jl. Arteri Pondok Indah", "Jl. Prof. Dr. Satrio",
        "Jl. Kemang Raya", "Jl. Pluit Indah", "Jl. Boulevard Raya", "Jl. Daan Mogot", "Jl. Hayam Wuruk",
        "Jl. Braga", "Jl. Setiabudi", "Jl. Dago", "Jl. Asia Afrika", "Jl. Pasteur", "Jl. Cihampelas",
        "Jl. Tunjungan", "Jl. Darmo", "Jl. Basuki Rahmat", "Jl. Gubeng", "Jl. Mayjen Sungkono",
        "Jl. Malioboro", "Jl. Kaliurang", "Jl. Solo", "Jl. Gejayan", "Jl. Parangtritis",
        "Jl. Pemuda", "Jl. Gajah Mada", "Jl. Pandanaran", "Jl. Simpang Lima", "Jl. Sunset Road",
        "Jl. Legian", "Jl. Slamet Riyadi", "Jl. Pajajaran", "Jl. Ir. H. Juanda", "Jl. Margonda Raya",
        "Jl. Ahmad Yani", "Jl. Veteran", "Jl. Kartini", "Jl. Teuku Umar", "Jl. Pattimura",
        "Jl. Sam Ratulangi", "Jl. Urip Sumoharjo", "Jl. Dr. Sutomo", "Jl. MT Haryono"
    ]
    cities = [
        "Jakarta Selatan", "Jakarta Pusat", "Jakarta Barat", "Jakarta Utara", "Bandung",
        "Surabaya", "Yogyakarta", "Semarang", "Solo", "Bogor", "Depok", "Bekasi", "Tangerang",
        "Denpasar, Bali", "Medan", "Makassar", "Palembang", "Pekanbaru", "Banjarmasin", "Pontianak"
    ]
    
    addresses = set()
    while len(addresses) < 550:
        addr = f"{random.choice(streets)} No. {random.randint(1, 200)}, {random.choice(cities)}"
        addresses.add(addr)

    # 3. Service Titles Generator
    actions = ["Service", "Cuci", "Perbaikan", "Pasang", "Desain", "Penulisan", "Les", "Pijat", "MUA", "Fotografi", "Kursus", "Pelatihan", "Jasa", "Sewa", "Pembuatan", "Maintenance", "Audit", "Konsultasi", "Edit", "Setup"]
    objects = ["AC", "Kulkas", "Mesin Cuci", "Listrik", "Pompa Air", "TV", "Laptop", "PC", "CCTV", "Website", "Logo", "Konten", "Video", "Banner", "Karpet", "Sofa", "Taman", "Motor", "Mobil", "Gaun", "Kamera", "Server", "VPN", "SEO", "Iklan", "Rumah", "Kantor", "Kos", "Water Heater", "Kanopi"]
    descriptors = ["Jakarta", "Panggilan", "Terdekat", "Profesional", "Murah", "Cepat", "Terpercaya", "Bergaransi", "24 Jam", "Handal"]
    
    service_titles = set()
    while len(service_titles) < 550:
        svc = f"{random.choice(actions)} {random.choice(objects)} {random.choice(descriptors)}"
        service_titles.add(svc)

    # 4. Job Titles Generator
    job_prefixes = ["Dicari", "Butuh", "Cari", "Dibutuhkan", "Memerlukan", "Loker", "Lowongan", "Open Order", "Cepat:", "Urgent:"]
    
    job_titles = set()
    while len(job_titles) < 550:
        job = f"{random.choice(job_prefixes)} {random.choice(objects)} {random.choice(descriptors)}"
        job_titles.add(job)

    data_pool = {
        "names": sorted(list(names)),
        "addresses": sorted(list(addresses)),
        "service_titles": sorted(list(service_titles)),
        "job_titles": sorted(list(job_titles))
    }

    with open('d:/DEVELOPMENT/MICROJOB/bot/bot_data_pool.json', 'w') as f:
        json.dump(data_pool, f, indent=2)
    
    print(f"Pool generated successfully: {len(names)} names, {len(addresses)} addresses, {len(service_titles)} services, {len(job_titles)} jobs.")

if __name__ == "__main__":
    generate_pool()
