""" Türkçe kökenli isimler öncelikli olarak NameVocab tablosunu doldurur. Kullanım: python manage.py seed_name_vocab """ from django.core.management.base import BaseCommand from namecreate.models import NameVocab # ----------------------------------------------------------------------- # Türkçe kökenli isimler — en yüksek öncelik # ----------------------------------------------------------------------- TURKCE_ERKEK = [ ("Alp", 80), ("Alpay", 60), ("Alperen", 100), ("Altan", 70), ("Aydın", 90), ("Baran", 85), ("Barış", 120), ("Batuhan", 95), ("Berk", 75), ("Berkay", 80), ("Burak", 140), ("Çağan", 50), ("Çağrı", 65), ("Deniz", 110), ("Doğan", 70), ("Doruk", 55), ("Emre", 160), ("Enes", 90), ("Eren", 130), ("Erhan", 75), ("Furkan", 85), ("Görkem", 60), ("Güven", 45), ("Haluk", 50), ("İlker", 70), ("Kaan", 95), ("Kadir", 80), ("Kerem", 100), ("Koral", 45), ("Korhan", 50), ("Mert", 130), ("Oğuz", 75), ("Onur", 90), ("Orkun", 55), ("Selim", 85), ("Sercan", 70), ("Serdar", 80), ("Soner", 65), ("Tarık", 75), ("Tuna", 50), ("Tunahan", 60), ("Uğur", 85), ("Umut", 100), ("Ufuk", 55), ("Volkan", 80), ("Yiğit", 90), ("Yunus", 95), ("Zafer", 60), ] TURKCE_KADIN = [ ("Aslı", 110), ("Aylin", 100), ("Aynur", 75), ("Ayşen", 65), ("Banu", 70), ("Bahar", 90), ("Başak", 80), ("Belgin", 55), ("Bengü", 50), ("Berrak", 60), ("Burcu", 95), ("Büşra", 85), ("Cansu", 100), ("Ceren", 120), ("Çiğdem", 80), ("Deniz", 90), ("Ebru", 95), ("Elçin", 65), ("Elif", 150), ("Esra", 110), ("Ezgi", 100), ("Gizem", 90), ("Gül", 75), ("Gülşen", 55), ("Güneş", 50), ("Hande", 85), ("İlayda", 75), ("İpek", 80), ("Melike", 90), ("Meltem", 95), ("Merve", 130), ("Nilay", 80), ("Nur", 70), ("Özge", 100), ("Pınar", 90), ("Seda", 85), ("Selin", 100), ("Sibel", 80), ("Simge", 75), ("Tuğba", 85), ("Tülay", 60), ("Ülkü", 50), ("Yasemin", 110), ("Zeynep", 120), ("Zümra", 55), ] # Türkçe soyisimler TURKCE_SOYISIM = [ ("Yılmaz", 200), ("Kaya", 180), ("Demir", 170), ("Çelik", 150), ("Şahin", 140), ("Yıldız", 130), ("Arslan", 120), ("Doğan", 115), ("Kılıç", 110), ("Aslan", 105), ("Çetin", 100), ("Bulut", 95), ("Aydın", 90), ("Özdemir", 90), ("Demirci", 85), ("Güler", 80), ("Erdoğan", 75), ("Çakır", 75), ("Polat", 70), ("Koç", 70), ("Acar", 65), ("Kurt", 65), ("Yavuz", 65), ("Ateş", 60), ("Güneş", 60), ("Işık", 60), ("Karaca", 55), ("Türk", 55), ("Özkan", 55), ("Bay", 50), ("Toker", 50), ("Şimşek", 50), ("Akay", 45), ("Boz", 45), ("Deniz", 45), ("Ercan", 45), ("Güçlü", 40), ("Kaplan", 40), ("Savaş", 40), ("Turan", 40), ("Baş", 35), ("Çam", 35), ("Kara", 35), ("Taş", 35), ("Dağ", 30), ("Duman", 30), ("Gür", 30), ("Köse", 30), ("Uçar", 30), ("Yurt", 30), ] # ----------------------------------------------------------------------- # Batı kökenli isimler — ikinci öncelik # ----------------------------------------------------------------------- BATI_ERKEK = [ ("Can", 110), ("Cem", 90), ("Cenk", 75), ("Sarp", 60), ("Alper", 70), ("Enver", 55), ] BATI_KADIN = [ ("Ece", 100), ("Derya", 85), ("Sera", 60), ("Lara", 70), ("Nisa", 80), ("Sena", 75), ] # ----------------------------------------------------------------------- # Arapça kökenli isimler — son öncelik (küçük liste) # ----------------------------------------------------------------------- ARAPCA_ERKEK = [ ("Ahmet", 160), ("Ali", 150), ("Mehmet", 170), ("Hasan", 100), ("Hüseyin", 95), ("İbrahim", 90), ("Mustafa", 140), ("Ömer", 80), ] ARAPCA_KADIN = [ ("Fatma", 120), ("Ayşe", 130), ("Hatice", 90), ("Havva", 70), ("Meryem", 80), ("Rabia", 65), ] def _bulk_create(entries, name_type, gender, origin): objs = [] for name, freq in entries: objs.append(NameVocab( name=name, name_type=name_type, gender=gender, origin=origin, frequency=freq, )) # ignore_conflicts: aynı kayıt varsa atla NameVocab.objects.bulk_create(objs, ignore_conflicts=True) return len(objs) class Command(BaseCommand): help = 'NameVocab tablosunu Türkçe kökenli isimler öncelikli olarak doldurur' def handle(self, *args, **options): total = 0 # Türkçe — birinci öncelik total += _bulk_create(TURKCE_ERKEK, 'first', 'E', 'turkce') total += _bulk_create(TURKCE_KADIN, 'first', 'K', 'turkce') total += _bulk_create(TURKCE_SOYISIM, 'last', 'U', 'turkce') # Batı — ikinci öncelik total += _bulk_create(BATI_ERKEK, 'first', 'E', 'bati') total += _bulk_create(BATI_KADIN, 'first', 'K', 'bati') # Arapça — son öncelik total += _bulk_create(ARAPCA_ERKEK, 'first', 'E', 'arapca') total += _bulk_create(ARAPCA_KADIN, 'first', 'K', 'arapca') self.stdout.write(self.style.SUCCESS( f'{total} isim işlendi. ' f'Türkçe: {NameVocab.objects.filter(origin="turkce").count()}, ' f'Batı: {NameVocab.objects.filter(origin="bati").count()}, ' f'Arapça: {NameVocab.objects.filter(origin="arapca").count()}' ))