= Wymagania dot. modelu danych dla ogłoszeń = * Podział na kategorie * Każda kategoria posiada specyficzne parametry opisujące ogłoszenie należące do tej kategorii * Dynamiczny podstawowy formularz wyszukiwania dla każdej kategorii z jej podstawowymi parametrami * Dynamiczny zaawansowany formularz wyszukiwania dla każdej kategorii z jej wszystkimi parametrami * Zarządzanie parametrami - dodawanie, wyłączanie (dezaktywacja) bez konieczności zmiany kodu aplikacji ani struktury bazy danych * Zarządzanie tłumaczeniami parametrów zsynchronizowane z aktywacją/dezaktywacją parametrów wyszukiwania * Wielojęzyczność - parametrów, kategorii, interfejsu aplikacji * Synonimy słów kluczowych (kategorie, parametry) - wielojęzycznie * Logowanie wszelkich zmian w danych ogłoszenia * Ś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 * Walidacja danych na formularzu dodawania/edycji ogłoszenia * Integralność danych - np. dane słownikowe tylko w jednym miejscu * 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 === {{{ [Category|Id;Name;Parent;ParentParameters] [Category-Group| CatId; Gid; Order] [Group-Parameter|GId; PId; Order] [GroupOfParameters|Id;Name;Order] [Parameter-Unit|Pid;Uid] [Parameter|Id;Name;UrlName;ControlType;DataType;IsRequired;IsAdvanced;IsFreetext;IsActive;Maxlength;Regex;ErrorText;LabelTranslationTag;TooltipTranslationTag] [Unit|Id;Name;Value] [ParameterOptions|Name;Value;IsActive] [Category]->[Category-Group] [Category-Group]<-[GroupOfParameters] [GroupOfParameters]->[Group-Parameter] [Group-Parameter]<-[Parameter] [Parameter]->[Parameter-Unit] [Parameter-Unit]<-[Unit] [Parameter]->[ParameterOptions], [ParameterOptions]-[note: only for parameters of type select {bg:cornsilk}] }}}