Imprezy
Imprezy służą do zbierania informacji o wydarzeniach, których nie da się przypisać do pozostałych baz. Ponadto do imprez dodawane są przez automaty wydarzenia, które następnie zapisywane są przez redaktorów we właściwych feed'ach.
Atrybuty imprez
Polami obowiązkowymi w imprezie są:
- Nazwa,
- Data i czas startu - gdy godzina startu nie jest znana, pozostawiamy 00:00,
- Data i czas końca - gdy godzina końca nie jest znana, pozostawiamy 23:59,
- Kategoria,
- Lokalizacja.
Dodatkowo impreza może posiadać atrybuty:
- Opis,
- Link imprezy,
- Wstęp - może przyjmować wartości: '-1' - cena nieznana, '0' - wstęp wolny lub dowolną wartości naturalną odpowiadającą najniższej cenie biletu normalnego,
- Tagi,
- Organizator,
- Źródło,
- Link do obrazka - obrazki mogą mieć co najmniej 288 px szerokości albo 384 px wysokości,
- Linki do systemów biletowych.
Import imprez
Importer zadań czyta pliki XML zapisane w katalogu 'input' i po udanym imporcie przenosi je do katalogu 'output', a w przypadku niepowodzenia importu zapisuje je w katalogu 'errors'. Głównym elementem importowanego pliku jest <happenings> i musi zawierać atrybut "username" zawierający nazwę użytkownika. Element <happenings> zawiera listę elementów <happening> zawierających dane o imprezie. Po sparsowaniu tego pliku otrzymujemy listę imprez.
Po wczytaniu pliku xml, importu pobieramy listę wszystkich przyszłych wydarzeń dodanych przez danego użytkownika. Każda wczytywana impreza przechodzi przez następujące etapy:
- sprawdzamy czy posiada ustaloną kategorię i jeśli nie to ją obliczamy
- sprawdzamy czy impreza jest w kategorii kultura/film. Jeśli tak to uznajemy, że jest to pokaz filmowy i takiej imprezy nie importujemy
- sprawdzamy czy impreza się nie zakończyła
- sprawdzamy czy impreza od tego dostawcy już jest w bazie i jeśli impreza jest w bazie i jest usunięta i nie czeka do moderacji no ją pomijamy
- sprawdzamy czy impreza jest zgeokodowana (tj. czy ma przypisaną lokalizację) jeśli nie to próbujemy ją geokodować. Jeśli geokodowanie się nie powiedzie to ją pomijamy
- sprawdzamy czy impreza jest w kategorii kultura/teatr jeśli tak to próbujemy rozdystrybuować bilety a samej imprezy dalej nie importujemy.
- sprawdzamy czy impreza nadaje się to opublikowania czy też musi być moderowana przez redaktorów
- jeśli imprezy o takim happeningVendorId nie ma w bazie to ją zapisujemy, jeśli jest i jeżeli impreza w bazie jest w moderacji albo jeżeli impreza w bazie nie jest do moderacji I nie jest usunięta I nowa impreza nie musi moderowana to aktualizujemy imprezę z bazy
Aktualizacja imprezy
Aktualizacji podlegają pola:
- nazwa
- czas startu
- czas końca
- opis
- kategoria
- opis lokalizacji
- cena
- informacja o odwołani
- licznik uczestników
- priorytet
- jeśli opis lokalizacji uległ zmianie to aktualizujemy lokalizację
- jeśli impreza w bazie nie miała ustawionych tagów to aktualizujemy tagi
- jeśli impreza w bazie nie miała organizatora to aktualizujemy organizatora
- jeśli się zmienił to aktualizujemy link do obrazka