### Techniczne zadanie (TZ) dla rozwoju bota Telegram z panelem administracyjnym i integracją z Google Arkuszami
#### 1. **Opis zadania**
Opracować bota Telegram z panelem administracyjnym (admin), przez który będzie można powiązać Google Arkusze do monitorowania i przetwarzania danych wprowadzanych przez użytkowników w komórkach. Głównym celem bota jest śledzenie i zarządzanie statusem wprowadzonych do arkuszy nazw użytkowników Telegram (zaczynających się od `@ username`), oraz ich stałe automatyczne aktualizowanie w bazie danych.
#### 2. **Wymagania funkcjonalne**
##### 2.1. **Powiązanie Google Arkuszy**
- Administrator przez panel sterowania może powiązać potrzebne Google Arkusze z botem.
- Każdy powiązany arkusz powinien być dostępny do monitorowania zmian w czasie rzeczywistym.
- Możliwość monitorowania kilku arkuszy jednocześnie.
##### 2.2. **Monitorowanie danych**
- Stałe monitorowanie wprowadzania danych w komórkach arkuszy, śledzenie pojawiania się nowych danych (nazw użytkowników).
- Monitorowanie wszystkich stron i zakładek arkuszy (wszystkie dane arkusza powinny być objęte).
##### 2.3. **Przetwarzanie nazw użytkowników**
- **Dodawanie nazw użytkowników**:
- Jeśli wprowadzona nazwa użytkownika jest nowa (nieobecna w bazie danych), jest dodawana do bazy.
- Komórka z tą nazwą użytkownika w arkuszu jest kolorowana na zielono przez **7 dni** (wskaźnik zarezerwowanej nazwy użytkownika).
- W bazie danych zapisywana jest informacja, że ta nazwa użytkownika jest zarezerwowana na tydzień.
- Jeśli wprowadzona nazwa użytkownika jest już zarezerwowana - komórka staje się czerwona.
- **Status zajętości**:
- Jeśli inny użytkownik wprowadza tę samą nazwę użytkownika w swoim arkuszu, jego komórka staje się czerwona (wskazując, że nazwa użytkownika jest tymczasowo zajęta przez innego użytkownika).
- **Zakończenie okresu rezerwacji**:
- Kiedy okres rezerwacji (7 dni) dla nazwy użytkownika wygasa, w bazie danych nazwa użytkownika staje się "wolna".
- W arkuszu:
- Komórka użytkownika, który pierwotnie dodał nazwę użytkownika, jest kolorowana na żółto. To sygnał, że należy usunąć starą nazwę użytkownika i ponownie ją wprowadzić, aby zaktualizować dane.
- W arkuszach innych użytkowników komórka z tą nazwą użytkownika znowu koloruje się na zielono (wskazując, że nazwa użytkownika jest teraz wolna).
##### 2.4. **Praca z bazą danych**
- **Główny arkusz (baza danych)**:
- Przechowuje wszystkie nazwy użytkowników wprowadzone przez cały czas korzystania z systemu.
- Druga kolumna bazy danych to nazwy użytkowników odpowiadające nazwom użytkowników wprowadzonym przez użytkowników.
- Trzecia kolumna to czas do zakończenia aktywności nazwy użytkownika (liczy pozostały czas do końca 7-dniowego okresu).
- **Powiązanie z Google Arkuszami**:
- Arkusz powiązany z konkretnym Google Arkuszem jest dynamicznie aktualizowany, aby wyświetlać status każdej nazwy użytkownika:
- Czerwony kolor — nazwa użytkownika zajęta.
- Zielony kolor — nazwa użytkownika wolna.
- Żółty kolor — czas aktywności wygasł, wymagana ponowna rejestracja.
##### 2.5. **Wskaźniki kolorów**
- Zielony kolor komórki — nazwa użytkownika nowa, zarezerwowana na 7 dni.
- Czerwony kolor — nazwa użytkownika zajęta przez innego użytkownika.
- Żółty kolor — wygasł okres rezerwacji, wymagana aktualizacja (usunięcie i ponowne wprowadzenie nazwy użytkownika).
#### 3. **Panel administracyjny**
- Możliwość dodawania/usuwania Google Arkuszy.
- Przeglądanie powiązanych arkuszy.
- Kontrola bieżącego stanu bazy danych (przeglądanie wszystkich aktywnych i zwolnionych nazw użytkowników).
- Możliwość edytowania i resetowania bazy danych.
- Ustawienie interwału monitorowania danych (np. co minutę).
- Przeglądanie statystyk każdego arkusza i użytkownika (pracownika, który prowadzi sekcję tego arkusza, który ma swoją nazwę)
- Ustawienie i zmiany okresu rezerwacji każdego arkusza
- Wygodny i prosty interfejs z przyciskami inline i komendami, a także wyświetlaniem informacji.
#### 5. **Algorytm działania**
1. **Powiązanie arkusza**: Administrator przez panel administracyjny powiązuje arkusz, bot zaczyna jego monitorowanie.
2. **Wprowadzanie danych**: Użytkownik wprowadza nazwę użytkownika w Google Arkuszu.
3. **Sprawdzenie bazy danych**:
- Jeśli nazwa użytkownika jest nowa — dodawana do bazy danych, komórka kolorowana na zielono.
- Jeśli nazwa użytkownika już istnieje i jest zarezerwowana — komórka kolorowana na czerwono.
4. **Monitorowanie statusów**:
- Po 7 dniach nazwa użytkownika zostaje zwolniona, a kolor komórki zmienia się.
5. **Aktualizacja arkuszy**: Wszystkie zmiany są synchronizowane między bazą danych a Google Arkuszami.