Skip to content

Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Parklate andmed

Parklate nimistut tuleks hoida lahus Pargi rakendusest, muutes need andmed seeläbi kasutatavaks ka mujal kui Pargi rakenduses ning lihtsustades nende uuendamist. Parklaid ja nende atribuute tuleks hoida JSONi formaadis, peegeldades mingil määral seda, kuidas parklaid rakendustes kajastatakse.

Andmebaas

Andmebaasi peamine struktuur on järgnev:

NimetusTüüp (type)KohustuslikSelgitus
versionstring JahAndmebaasi versiooni number, kasutada tuleks semantilist versiooni
dateUNIX timestampJahAndmebaasi loomise kuupäev/kellaaeg
hashSHA1 hashJahSHA1 data objektist
datadictionaryJahAndmed

data

NimetusTüüp (type)KohustuslikSelgitus
providersarray of ProviderJahLoend teenusepakkujatest
zonesarray of ZoneJahLoend tsoonidest
groupsarray of ZoneGroupEiLoend tsoonigruppidest

Provider

Teenusepakkuja, igal tsoonil peaks olema teenusepakkuja, kuid igal teenusepakkujal ei pea olema tsoone. Teenusepakkujate roll andmebaasis on enamasti informatiivne, luues vaikimisi seose teatud tsoonide vahel (mis kuuluvad samale teenusepakkujale).

NimetusTüüp (type)KohustuslikSelgitus
id32-bit uintJahUnikaalne number teenusepakkujate seas, kasutatakse andmebaasi uuendamiseks ja korrashoiuks
beacon-major16-bit uintEiiBeaconi major, kombinatsioon Provider majorist ja Zone minorist peab olema unikaalne.
namestringJahTeenusepakkuja nimi
colorstring hex colorJahVärv, mida kasutada teenusepakkuja parklate eristamiseks kaartidel ja rakenduses üldiselt
contactdictionaryEiKontaktandmed, jäljendades AddressBooki poolt pakutavaid andmeid

Zone

Parkimistsoon, iga tsooni kohta eraldi objekt, kuigi ühe code kohta võib olla mitu tsooni, peaks üldiselt olema neid täpselt üks.

NimetusTüüp (type)KohustuslikSelgitus
id32-bit uintJahParklate seas unikaalne ID number
provider32-bit uintJahTeenusepakkuja ID number, loob seose Provider nimistuga
codestringJahSMSiga saadetav kood
beacon-minor16-bit uintEi iBeaconi minor, mis selle konkreetse tsooniga seotud on, kombinatsioon tsooni minorist ja pakkuja majorist peab olema unikaalne
tariffsarray of TariffEiNimistu hinnainfoga, otsest piirangut arvul ei ole, kuna hinnainfo võib olla väga spetsifiiline. Kui puudub, siis hinnainfot ei tohiks kuvada. Kui info puudub konkreetse päeva kohta, siis ei tohiks infot samuti kuvada. Ühe päeva kohta võib olla mitu alternatiivi, mis puhul tuleks võtta kõige täpsem.
regionsRegion või array of RegionJahAsukoha informatsioon, jada et lubada mitmikalasid, nagu näiteks Tartu linnatsoonid, mis langevad ühe koodi ja tariifi alla, kuid hõlmavad mitut eraldiseisvat geograafilist ala. Enamasti on vaid üks, seega shorthandina on lubatud ka kasutada otse Region objekti.

Tariff

NimetusTüüp (type)KohustuslikSelgitus
daysarray of uintJahPäeva(de) numbrid, vahemikus 1 - 7 (1 - esmaspäev, 7 - pühapäev)
startuintEiPerioodi algus, sekundites keskööst (9:00 = 32400) (kui puudub, siis 0)
enduintEiPerioodi lõpp, sekundites keskööst (18:00 = 64800) (kui puudub, siis 86400)
periodsdictionaryJahPerioodid ja vastavad hinnad, näiteks kui 30 minutit maksab 1 euro, aga 24h maksab 6 eurot, siis on kaks välja - 1800 : 100 ja 86400 : 600. Võti on aeg sekundites ja väärtus on hind euro sentides (float, kuna mõnikord on vähem kui sent). Tegelik hind arvutatakse kõige odavamana kolmest variandist: kõige väiksema ühikuga, kõige suurema ühikuga ja viimaks täites aja võimalikult suurte ühikutega - nö greedy change making
free-perioduintEiTasuta periood parkimise algusest. Sekundites, vaikimisi 0, ehk tasuta periood puudub
min-perioduintEiMinimaalne periood, sekundites. Aitab defineerida parkimist, millel on minimaalne tasu, a'la "esimesed 3h hinnaga x, iga järgnev tund hinnaga y", mis sisuliselt tähendab minimaalset perioodi.
min-amountfloatEiMinimaalne tasu, euro sentides. Sarnaselt eelmisele, aitab defineerida hinda, mis muutub, näiteks "esimene tund 50 senti, iga järgnev 20 senti", mis sisuliselt on miinimum tasu + miinimum periood.

Tariifiarvutused

Kuna täpne arvutus oleneb teenusepakkujast ja vahendajast, siis Pargi eesmärgiks on pakkuda ennustust, et anda lihtne ülevaade võimalikust hinnast. Näidisarvutus perioodi ja hinna kohta, võttes aluseks järgneva tariifi "E-P 24h päevas, iga alustatud tund €1.50, 24h €6"

{
"days" : [1,2,3,4,5,6,7],
"periods" : {
"3600" : 150,
"86400" : 600
}
}
A - kõige väiksema ühikuga
B - kõige suurema ühikuga (8000 -> 86400)
C - võimalikult suurte ühikutega aja täitmine
Juhul kui pargitud on 30 minutit (1800 sekundit):
A = periods[3600] * 1 = 150 (valitud)
B = periods[86400] * 1 = 600
C = periods[3600] * 1 + periods[86400] * 0 = 150 (valitud)
Juhul kui pargitud on 4 tundi ja 30 minutit (16200 sekundit)
A = periods[3600] * 5 = 750
B = periods[86400] * 1 = 600 (valitud)
C = periods[3600] * 5 + periods[86400] * 0 = 750
Juhul kui pargitud on 2 päeva, 2 tundi ja 5 minutit (180300 sekundit)
A = periods[3600] * 51 = 7650
B = periods[86400] * 3 = 1800
C = periods[3600] * 3 + periods[86400] * 2 = 1650 (valitud)

Region

Osa Zone objektist, defineerib ühe geograafilise ala, mis võib omada üht või mitut sisemist ala (nö auku).

NimetusTüüp (type)KohustuslikSelgitus
pointsarray of array of doubleJahNimistu koordinaatidest, mis on [lat, long] tüüpi arrayd, kui vaid üks, siis tuleks kuvada punktina. Mitme puhul tuleks moodustada hulknurk.
interior-regionsarray of RegionEiJuhul kui regioon on "auguga", siis see loend peaks sisaldama regioone, mis kujutavad nimetatud auku/auke. Valdavalt puudub.

ZoneGroup

Abstraktne objekt, mis lubab grupeerida erinevaid tsoone. Näiteks võib olla grupp tsoone, mis kõik kuuluvad sama geograafilise asumi alla (linn, vald, maakond), sarnaselt võib luua gruppi, mis hõlmab tasuta tsoone või neid, millel on iBeaconi tugi.

NimetusTüüp (type)KohustuslikSelgitus
id32-bit uintJahGruppide seas unikaalne ID number
zonesarray of 32-bit uintJahLoend tsoonide ID numbritega, mis antud gruppi kuuluvad
reasonstring, hetkel lubatud "geo"Jah Grupeerimise alus
namestringJahGrupi nimi, peaks sobima näitamiseks kasutajaliideses
localized-namestringEiEelistatud, võetakse kui võtit tõlgitud kasutajaliidese stringidesse, vt NSLocalizedString. See on Pargi rakenduse spetsiifiline võti, mida teised rakendused võivad ignoreerida või sobivaks kasutuseks mugandada.

About

Parklate andmebaas Pargi rakenduse jaoks

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages