= Wymagania dot. modelu danych dla ogłoszeń = * '''[OK]''' Podział na kategorie * '''[OK]''' Każda kategoria posiada specyficzne parametry opisujące ogłoszenie należące do tej kategorii * '''[OK]''' Dynamiczny podstawowy formularz wyszukiwania dla każdej kategorii z jej podstawowymi parametrami * '''[OK]''' Dynamiczny zaawansowany formularz wyszukiwania dla każdej kategorii z jej wszystkimi parametrami * '''[OK]''' Zarządzanie parametrami - dodawanie, wyłączanie (dezaktywacja) bez konieczności zmiany kodu aplikacji ani struktury bazy danych * '''[OK]''' Zarządzanie tłumaczeniami parametrów zsynchronizowane z aktywacją/dezaktywacją parametrów wyszukiwania * '''[OK]''' Wielojęzyczność - parametrów, kategorii, interfejsu aplikacji * '''[OK]''' Walidacja danych na formularzu dodawania/edycji ogłoszenia * '''[OK]''' Integralność danych - np. dane słownikowe tylko w jednym miejscu * '''[OK]''' Logowanie wszelkich zmian w danych ogłoszenia * Synonimy słów kluczowych (kategorie, parametry) - wielojęzycznie * Śledzenie zmian wybranego parametru, np. ceny * Treść gazetowa ogłoszenia wstępnie generowana z danych internetowych z możliwością edycji na najbliższe wydanie gazetowe * Ustalenie punktu w czasie do kiedy użytkownik może edytować treść do gazety * Archiwum treści gazetowej na poszczególne wydania * Generowanie słów kluczowych wielojęzycznie na potrzeby kampanii AdWords... * Utrzymywanie danych historycznych == Problemy == * Fakturowanie * Klienci - - wspólni dla wszystkich systemów? - edycja danych klienta - przez reklamę czy ogłoszenia? które ważniejsze? - dzielenie się informacjami z działem reklamy odnośnie płatności, zaległości? == Myśli nieuczesane == * CT Biuro zarządzanie ogłoszeniem poprzez warstwę pośredniczącą, która zapewni poprawność danych (WebService lub repozytoria przez COM - do ustalenia...) * To samo dla zarządzania danymi klienta == Model danych == * http://yuml.me {{{ [User|Forename;Surname;Email] [User]^[CallCenterAgent], [User]^[Customer] [User]+1->*[Ad|Price;ParametersXml;DisplayUntil{bg:orange}] [Ad]+1->*[AdLog] [Ad]+1->*[AdMagazine|IssueNumber{bg:green}] [Category|Parent]+1->*[Ad] [Category]<->[Parameter|Name;Regex;Type;Required;IsAdvanced;IsActive] [Ad]+1->*[Image] [ParameterGroup]+1->*[Parameter] [ParameterList]+1->*[Parameter] [Ad]+1->*[InvoiceDetails{bg:blue}] [Category]<->[ParameterList] }}} === Kategorie, parametry, jednostki === * http://yuml.me/b6b7ee3 {{{ [Category|Id;Name;Parent;Level] [Make|Id;Name] [Model|Id;Name] [CategoryMake|Id] [CategoryMakeModel|CategoryMakeId;ModelId] [Parameter|Id;IsRequired;IsAdvanced;GroupName] [Field|Id;Name;ControlType:DataType;Label;Tooltip] [FieldUnit|FieldId;UnitId] [Unit|Id;Name] [FieldOption|Id;Name] [Category]<1-0..*>[Parameter] [Category]<1-Children 0..*>[Category] [Category]<1-0..*>[CategoryMake] [CategoryMake]<0..*- 1>[Make] [Make]<1-Models 0..*>[Model] [CategoryMake]<1- Models 0..*>[CategoryMakeModel] [CategoryMakeModel]<0..* - 1>[Model] [Parameter]+->[Field] [Field]<1-Options 0..*>[FieldOption] [Field]<1-Units 0..*>[FieldUnit] [FieldUnit]<0..*-1>[Unit] }}}