Taski

Ogólny opis idei

Założenie jest takie, że codziennie chodzi program odpowiedzialny za włączanie / wyłączanie ogłoszeń i abonamentów*.

* Abonamenty oznaczają ogłoszenia abonamentowe, włączanie abonamentu polega na ustawieniu statusu na Online, dat StartDate i EndDate dla Subscription oraz dla ogłoszeń klienta posiadającego ten abonament zgodnie z tym co mamy w OrderItem dla abonamentu

Ogłoszenie i abonament posiadają pola: Status (ProductStatus), StartDate oraz EndDate.

    public enum ProductStatus
    {
        Online    = 1, // aktywne
        Suspended = 2, // wstrzymane przez uzytkownika
        New       = 3, // w trakcie zamieszczania
        Deleted   = 4, // usuniete przez uzytkownika
        Censored  = 5, // ocenzurowane
        Expired   = 6, // wygasła data ważności ogłoszenia lub abonamentu
        OverLimit = 7, //ogłoszenie nie mieści się do aktualnego abonamentu, wcześniej klient miał abo na 50 a po przedłużeniu ma na 25
    }

Ogłoszenie gazetowe

Każde ogłoszenie może posiadać opcję emisji w gazecie AMT. Na ogłoszenie gazetowe składają się następujące elementy:

  • wyróżnienie gazetowe (pakiet)
  • treść
  • tytuł
  • hasła
  • dodatki gazetowe z OrderItem

Przy włączaniu / przedłużaniu ogłoszenia należy wziąć pod uwagę opcję gazetową.

Włączamy ogłoszenia i abonamenty

  • Ogłoszenia
    • Włączamy wszystkie ogłoszenia, których StartDate w OrderItem jest dziś - ustawiamy status Online, Promotion, StartDate oraz EndDate zgodnie z OrderItem
  • Abonamenty
    • Włączamy wszystkie abonamenty, których StartDate w OrderItem jest dziś - dla Subscription ustawiamy odpowiednio Promotion, StartDate, EndDate, dla ogłoszeń klienta posiadającego ten abonament ustawiamy status Online, wyróżnienia, StartDate oraz EndDate zgodnie z Subscription, jeśli mamy więcej ogłoszeń Online niż ustalono w abonamencie - włączamy tylko tą ilość (posortowane po dacie ostatniej aktualizacji malejąco), która jest określona w abonamencie, reszta powinna otrzymać status OverLimit

Wyłączamy pozostałe ogłoszenia i abonamenty

  • Ogłoszenia i abonamenty
    • Wyłączamy (ustawiamy status Expired) dla wszystkich ogłoszeń i abonamentów które posiadają status Online oraz EndDate jest mniejsza niż dziś