#-*- coding:utf-8 -*-

from django.core.management.base import BaseCommand

from semantics.models import GeneralSelectivePreference, SelectivePreference
from wordnet.models import LexicalUnit

class Command(BaseCommand):
    args = 'none'
    help = ''

    def handle(self, **options):
        #clear_predefined_preferences()
        create_predefined_preferences()
        
def clear_predefined_preferences():
    GeneralSelectivePreference.objects.all().delete()
    SelectivePreference.objects.all().delete()

def create_predefined_preferences():
    # ALL
    all, xx = GeneralSelectivePreference.objects.get_or_create(name=u'ALL')
    
    
    # POŁOŻENIE: miejsce-1, przestrzeń-1, obiekt-2
    # OTOCZENIE: człowiek-1, powierzchnia-2, rzecz-4, wytwór-2, pomieszczenie-3
    
    # LUDZIE: osoba-1, grupa ludzi-1
    ludzie_members = SelectivePreference()
    ludzie_members.save()
    osoba_1 = LexicalUnit.objects.get(base=u'osoba', 
                                      sense='1',
                                      pos='rzeczownik').synset
    grupa_ludzi_1 = LexicalUnit.objects.get(base=u'grupa ludzi', 
                                            sense='1',
                                            pos='rzeczownik').synset
    ludzie_members.synsets.add(osoba_1)
    ludzie_members.synsets.add(grupa_ludzi_1)
    ludzie, xx = GeneralSelectivePreference.objects.get_or_create(name=u'LUDZIE',
                                                                  members=ludzie_members)
    
    # ISTOTY: osoba-1, istota żywa-1, grupa istot-1
    istoty_members = SelectivePreference()
    istoty_members.save()
    istoty_members.synsets.add(osoba_1)
    istota_zywa_1 = LexicalUnit.objects.get(base=u'istota żywa', 
                                            sense='1',
                                            pos='rzeczownik').synset
    istoty_members.synsets.add(istota_zywa_1)
    grupa_istot_1 = LexicalUnit.objects.get(base=u'grupa istot', 
                                            sense='1',
                                            pos='rzeczownik').synset
    istoty_members.synsets.add(grupa_istot_1)
    istoty, xx = GeneralSelectivePreference.objects.get_or_create(name=u'ISTOTY',
                                                                  members=istoty_members)
    
    # PODMIOTY: LUDZIE, podmiot-3
    podmioty_members = SelectivePreference()
    podmioty_members.save()
    podmioty_members.generals.add(ludzie)
    podmiot_3 = LexicalUnit.objects.get(base=u'podmiot', 
                                        sense='3',
                                        pos='rzeczownik').synset
    podmioty_members.synsets.add(podmiot_3)
    podmioty, xx = GeneralSelectivePreference.objects.get_or_create(name=u'PODMIOTY',
                                                                    members=podmioty_members)
    
    # DOBRA: jedzenie-2, mienie-1, przedmiot-1, wytwór-1 ==> JADŁO, mienie-1, przedmiot-1, wytwór-1
    dobra_members = SelectivePreference()
    dobra_members.save()
    jedzenie_2 = LexicalUnit.objects.get(base=u'jedzenie', 
                                        sense='2',
                                        pos='rzeczownik').synset
    dobra_members.synsets.add(jedzenie_2)
    mienie_1 = LexicalUnit.objects.get(base=u'mienie', 
                                       sense='1',
                                       pos='rzeczownik').synset
    dobra_members.synsets.add(mienie_1)
    przedmiot_1 = LexicalUnit.objects.get(base=u'przedmiot', 
                                          sense='1',
                                          pos='rzeczownik').synset
    dobra_members.synsets.add(przedmiot_1)
    wytwor_1 = LexicalUnit.objects.get(base=u'wytwór', 
                                       sense='1',
                                       pos='rzeczownik').synset
    dobra_members.synsets.add(wytwor_1)
    dobra, xx = GeneralSelectivePreference.objects.get_or_create(name=u'DOBRA',
                                                                 members=dobra_members)
    
    # KOMUNIKAT: informacja-1, wypowiedź-1
    komunikat_members = SelectivePreference()
    komunikat_members.save()
    informacja_1 = LexicalUnit.objects.get(base=u'informacja', 
                                           sense='1',
                                           pos='rzeczownik').synset
    komunikat_members.synsets.add(informacja_1)
    wypowiedz_1 = LexicalUnit.objects.get(base=u'wypowiedź', 
                                          sense='1',
                                          pos='rzeczownik').synset
    komunikat_members.synsets.add(wypowiedz_1)
    komunikat, xx = GeneralSelectivePreference.objects.get_or_create(name=u'KOMUNIKAT',
                                                                     members=komunikat_members)
    
    # KONCEPCJA: informacja-1, wytwór umysłu-1
    koncepcja_members = SelectivePreference()
    koncepcja_members.save()
    koncepcja_members.synsets.add(informacja_1)
    wytwor_umyslu_1 = LexicalUnit.objects.get(base=u'wytwór umysłu', 
                                              sense='1',
                                              pos='rzeczownik').synset
    koncepcja_members.synsets.add(wytwor_umyslu_1)
    koncepcja, xx = GeneralSelectivePreference.objects.get_or_create(name=u'KONCEPCJA',
                                                                     members=koncepcja_members)
    
    # WYTWÓR: przedmiot-1, wytwór-1
    wytwor_members = SelectivePreference()
    wytwor_members.save()
    wytwor_members.synsets.add(przedmiot_1)
    wytwor_members.synsets.add(wytwor_1)
    wytwor, xx = GeneralSelectivePreference.objects.get_or_create(name=u'WYTWÓR',
                                                                  members=wytwor_members)
    
    # JADŁO: pokarm-1, napój-1
    jadlo_members = SelectivePreference()
    jadlo_members.save()
    pokarm_1 = LexicalUnit.objects.get(base=u'pokarm', 
                                       sense='1',
                                       pos='rzeczownik').synset
    jadlo_members.synsets.add(pokarm_1)
    napoj_1 = LexicalUnit.objects.get(base=u'napój', 
                                      sense='1',
                                      pos='rzeczownik').synset
    jadlo_members.synsets.add(napoj_1)
    jadlo, xx = GeneralSelectivePreference.objects.get_or_create(name=u'JADŁO',
                                                                 members=jadlo_members)
    
    # MIEJSCE: miejsce-1, przestrzeń-1, obiekt-2 ==> lokal-1, budynek-1, rejon-1, obszar-1, państwo-1, jednostka administracyjna-1, woda-4
    miejsce_members = SelectivePreference()
    miejsce_members.save()
    miejsce_1 = LexicalUnit.objects.get(base=u'miejsce', 
                                        sense='1',
                                        pos='rzeczownik').synset
    miejsce_members.synsets.add(miejsce_1)
    przestrzen_1 = LexicalUnit.objects.get(base=u'przestrzeń', 
                                        sense='1',
                                        pos='rzeczownik').synset
    miejsce_members.synsets.add(przestrzen_1)
    obiekt_2 = LexicalUnit.objects.get(base=u'obiekt', 
                                        sense='2',
                                        pos='rzeczownik').synset
    miejsce_members.synsets.add(obiekt_2)
    miejsce, xx = GeneralSelectivePreference.objects.get_or_create(name=u'MIEJSCE',
                                                                   members=miejsce_members)
    
    # CZAS: chwila-1, czas-3, czas-8, godzina-3
    czas_members = SelectivePreference()
    czas_members.save()
    chwila_1 = LexicalUnit.objects.get(base=u'chwila', 
                                       sense='1',
                                       pos='rzeczownik').synset
    czas_members.synsets.add(chwila_1)
    czas_3 = LexicalUnit.objects.get(base=u'czas', 
                                     sense='3',
                                     pos='rzeczownik').synset
    czas_members.synsets.add(czas_3)
    czas_8 = LexicalUnit.objects.get(base=u'czas', 
                                     sense='8',
                                     pos='rzeczownik').synset
    czas_members.synsets.add(czas_8)
    godzina_3 = LexicalUnit.objects.get(base=u'godzina', 
                                        sense='3',
                                        pos='rzeczownik').synset
    czas_members.synsets.add(godzina_3)
    czas, xx = GeneralSelectivePreference.objects.get_or_create(name=u'CZAS',
                                                                members=czas_members)
    
    # OBIEKTY: osoba-1, obiekt-2, zbiór-1
    obiekty_members = SelectivePreference()
    obiekty_members.save()
    obiekty_members.synsets.add(osoba_1)
    obiekty_members.synsets.add(obiekt_2)
    zbior_1 = LexicalUnit.objects.get(base=u'zbiór', 
                                      sense='1',
                                      pos='rzeczownik').synset
    obiekty_members.synsets.add(zbior_1)
    obiekty, xx = GeneralSelectivePreference.objects.get_or_create(name=u'OBIEKTY',
                                                                   members=obiekty_members)
    
    # CECHA: cecha-1
    cecha_members = SelectivePreference()
    cecha_members.save()
    cecha_1 = LexicalUnit.objects.get(base=u'cecha', 
                                      sense='1',
                                      pos='rzeczownik').synset
    cecha_members.synsets.add(cecha_1)
    cecha, xx = GeneralSelectivePreference.objects.get_or_create(name=u'CECHA',
                                                                 members=cecha_members)
    
    # CZYNNOŚĆ: czynność-1
    czynnosc_members = SelectivePreference()
    czynnosc_members.save()
    czynnosc_1 = LexicalUnit.objects.get(base=u'czynność', 
                                         sense='1',
                                         pos='rzeczownik').synset
    czynnosc_members.synsets.add(czynnosc_1)
    czynnosc, xx = GeneralSelectivePreference.objects.get_or_create(name=u'CZYNNOŚĆ',
                                                                    members=czynnosc_members)
    
    # SYTUACJA ==> czynność-1, zdarzenie-2, okoliczność-1, ciąg zdarzeń-1
    sytuacja, xx = GeneralSelectivePreference.objects.get_or_create(name=u'SYTUACJA')
    
    # KIEDY: CZAS, SYTUACJA
    kiedy_members = SelectivePreference()
    kiedy_members.save()
    kiedy_members.generals.add(czas)
    kiedy_members.generals.add(sytuacja)
    kiedy, xx = GeneralSelectivePreference.objects.get_or_create(name=u'KIEDY',
                                                                 members=kiedy_members)
    
    # CZEMU: CECHA, SYTUACJA, LUDZIE
    czemu_members = SelectivePreference()
    czemu_members.save()
    czemu_members.generals.add(cecha)
    czemu_members.generals.add(sytuacja)
    czemu_members.generals.add(ludzie)
    czemu, xx = GeneralSelectivePreference.objects.get_or_create(name=u'CZEMU',
                                                                 members=czemu_members)
    
    # ILOŚĆ: ilość-1, rozmiar-1, rozmiar-2, jednostka-4, wielkość-6
    ilosc_members = SelectivePreference()
    ilosc_members.save()
    ilosc_1 = LexicalUnit.objects.get(base=u'ilość', 
                                      sense='1',
                                      pos='rzeczownik').synset
    ilosc_members.synsets.add(ilosc_1)
    rozmiar_1 = LexicalUnit.objects.get(base=u'rozmiar', 
                                        sense='1',
                                        pos='rzeczownik').synset
    ilosc_members.synsets.add(rozmiar_1)
    rozmiar_2 = LexicalUnit.objects.get(base=u'rozmiar', 
                                        sense='2',
                                        pos='rzeczownik').synset
    ilosc_members.synsets.add(rozmiar_2)
    jednostka_4 = LexicalUnit.objects.get(base=u'jednostka', 
                                          sense='4',
                                          pos='rzeczownik').synset
    ilosc_members.synsets.add(jednostka_4)
    wielkosc_6 = LexicalUnit.objects.get(base=u'wielkość', 
                                         sense='6',
                                         pos='rzeczownik').synset
    ilosc_members.synsets.add(wielkosc_6)
    ilosc, xx = GeneralSelectivePreference.objects.get_or_create(name=u'ILOŚĆ',
                                                                 members=ilosc_members)
    