Open Allicce opened 1 week ago
Tak ja navrhuju tento stack
Transakce id cislo uctu příjemce (null) cislo uctu odesílatel (null) castka datum kategorie (enum) clen rodiny (null) poznámka
GET /transactions parametry: from: int = timestamp vymezuji zacatek intervalu (default = null) to: int = timestamp vymezuje konec intervalu (default=null) vraci array transakci. Pokud je from null, bere se jako zacatek timestramp =0, pokud je to null, bere se timestamp.now() Example: [ {“id”:1, “from_account”: null, “to_account”:null, “amount”:500, “date”:424546456, “category”:”jidlo”, “member_id”:null, “desctiption” : “Nakup v lidlu”}]
POST /transactions vlozeni arraye transakci manuálne možno doplnit komu je transakce adresovana clen rodiny defaultně ALL Example : [{“amount”:500, “timestamp”:123352478, “category”:”jidlo”, “description”:”Nakup v lidlu”}]
POST /transactions/import
vstup je jmeno banky a csv. vystup je array transakci - predripraveno pro request na POST / transactions
Example: {“bank”:”csob”,”csv” : ‘’....”}
return : [{“amount”:500, “timestamp”:123352478, “category”:”jidlo”, “description”:”Nakup v lidlu”}]
MVP Import CSV jen pro jednu banku (upravené csv)
CSV v očekávané struktuře
výběr z roletky bank, ( funkční jen jedna)
importní soubor z ostatních bank
možnost integrace na banky
PUT /transactions/{id} upravi transakci s id = {id}. (NEVIM jestli potrebujeme)
Prijmy / vydaje
nebude tabulka v databazi(vypocet bude z transactions) GET /income paramatry: from: timestamp od kdy chceme pocitat prijmy to : timestamp do kdy vrati prijmy, vydaje, a celkovy stav uctu. pokud budou specifikovany from/to prametry, tka upravi interval. defaultne vraci za cely cas. example: {‘income’:25000, ‘exapnses’:20000, ‘total’:5000}
Info o uctech cislo uctu nazev kategorie
tahle tabulka bude slouzit k tomu, abysme automaticky mohli rozpoznat kategorii/nazev transakce. Potom co uzivatel nahraje transakci, ktera bude obsahovat cislo uctu, tak ho ulozime do teto tabulky spolecne s nazvem a kategorii teto transakce. Kdyz priste nekdo uvede stejne cislo uctu, tak uz bude kategorie a popis teto transakce predvyplneno. Tohle bude fungovat interne v backandu, nebudou zadne verejne endpointy. MVP - jednou zadáš všichni již mají tuto kategorii, neměné
Clen rodiny
id rodiny (pokud budeme podporovat vice rodin) id clena rodiny jméno člena rodiny
GET /members vraci array jmen clenu rodiny example : [‘john’,’jane’,’julia’]
GET /members/{id} vraci detail o clenovi rodiny s {id}. Detail obsahuje jmeno, id, a seznam transakci tohoto clena example {‘id’:1,’name’:’johm’,’transactions’:[....]}
POST /members/ vytvori clena rodiny input: {‘name’:’julia’}
PUT /members/{id} upravi info o clenovy s {id}
Rozpocet
id rodiny byldeni jidlo … ( asi musime predem definovat ktere kategorie chceme podporovat) GET /budget vraci hodnoty, ktere uzivatel vyplnil example: {‘jidlo’:5000, ‘bydleni’:15000}
POST /budget ulozi hodnoty pro rozpocet v databazi example: {‘jidlo’:5000, ‘bydleni’:15000}
GET /budget/calculate parametry: interval (celé měsíce) členo domácnosti (null)
Jednoduse se podiva na to, jaky budget uzivatel nastavil a od toho odecte castky z transakci, a vrati uzivatelu vysledek (za dany mesic). Je moznost specifikovat ktery clen domacnosti nas zajima. To pak odegte od uzivatelova budgetu.
example: {‘jidlo’: -125, ‘bydleni’: 150}
GET /budget/predict Podiva se na uzivatelovi transakce za soucasny mesic, zprumeruje to a vrati to predpokladany stav na konci mesice example: {‘jidlo’: -125, ‘bydleni’: 150}
Cíl spoření
id nazev popis cilova castka
GET /goals vrati vsechny cile z database example: [{‘id’:1,’name’: ‘novy dum’, ‘description’ : ‘sporeni na novy dum’, ‘amount’: 1000000}]
POST /goals vytvori novy cil v databazi input: {’name’: ‘novy dum’, ‘description’ : ‘sporeni na novy dum’, ‘amount’: 1000000}
GET /goals/{id}/when parametry: additonal_savings Podiva se na uzivatelovi transakce (napr za poslednich 6 mesicu) a vrati timestamp, kdy uzivatel dosahne cilove castky. Pokud bude vyplnen parametr additional savings, tak vrati upraveny timestamp, kdyz uzivatel mesice usetri navic castku additional_savings
AI GET /reccomendations podiva se na transakce za posledni mesic a vrati tipy a rady. udela to AI