---
# System prepended metadata

title: TNTList

---

# TNTList
## One list to rule them all

Ovo je radna verzija dokumenta te su svi prijedlozi i poboljsanja dobrodosla. Cilj je najprije idejno opisati funkcionalnost
kako kasnije tijekom developmenta ne bi bilo dvosmislenosti ili nedorecenosti.

## Ideja
Sama ideja je zapravo slicna sales crm-u, ali puno jednostavnija i ne zahtjeva gotovo nikakvu krivulju ucenja. Bit je imati listu kontakta, koji se kontaktiraju te im se nesto nudi (prodaja, suradnja itd.)
Sam proces kontaktiranja je putem telefona ili maila, te moze rezultirati raznim ishodima kao sto su npr. nedostupnost korisnika, nezainteresiranost, prihvacanje ponude i sl.
Svaki ishod kontaktiranja bi se oznacio odgovarajucim statusom te micao s liste kako bi u njoj ostali samo kontakti koje treba kontaktirati.

## Development
Kako bi se spomenuta ideja mogla primjenjivati u niz projekata, predlazem da se napravi paket koji bi se mogao ubaciti u bilo koji projekt. Paket bi sadrzavao, migracije, viewove i sve ostale ovisnosti za rad.
Ovo ne vidim kao dovoljno velik poduhvat da bi bio zaseban projekt

## Pristup problemu
Poznavajuci njih, htjet ce vise puta kontaktirati nekoga iz razno raznih razloga i voditi evidenciju. Kako bi bili spremni za te scenarije, predlazem sljedece:

`contacts` tablica bi sadrzavala sve kontakte i u nju bi bio moguc samo import. U developerskom zargonu, ona bi bila immutable i predstavljala source of truth. Mozda je immutable prejaka rijec, jer ce se slobodno editirat kontakti da se ipravi npr broj telefona, ime, mail i sl. ali bit ce nepromjenjiva u smislu "ovog sam vec kontaktirao". to nece bit moguce napravit na toj tablici

`companies` tablica koja cuva kompanije i na nju su vezani kontakti. kompanije su zapravo te s kojima se zeli ostvariti neka suradnja

`deals` e ovo je zanimljivo i dat ce nam fleksibilnost za kreiranje drugih lista iz kontakakta. Allow me to explain.
dakle, jedan konkretan deal bi bio `Make Partnerprogram` , a drugi `Add backlink`, treci npr `Make Partnerprogramm 2024`. Kada se kontaktira kontakt i uspjesno proda, taj deal ce se zalijepit na kontakt iliti company i posluzit ce kasnije za filtriranje i kreiranje novih lista

`tasklista` tasklista bi zapravo bila tablica kontakata di bi oznacavali tko je kontaktiran i sa kojim ishodom. Tasklista se kreira na nacin da joj se da ime npr `Contact all partners in the partnerprogram for backlink` i da se kreira lista kontakata prema nekom filteru. U ovom slucaju bi filter gledao dal postoji deal `Make Partnerprogram` i u listu bi stavilo sve kontakte iz contacts tablice cija firma ima sklopljen deal. Sama medutablica bi bila:

- id
- contact_id
- status
- tasklist_id

`activity` aktiviti tablica bi cuvala stvari poput, tko je koga i kada kontaktirao
