HamatsantsAvto
Telegram-բոտ Հայաստանից Ռուսաստան ներկրվող ավտոմեքենայի մաքսազերծման հաշվարկի համար՝ դրույքաչափեր Google Sheets-ից, գործարքների պատմություն, ադմինիստրատորի վահանակ և վճարովի մուտք այլ ընկերությունների համար։

Տեխնոլոգիաներ
- Python
- aiogram
- Google Sheets API
- SQLite
Խնդիրը
Ներկրման արժեքը մենեջերները հաշվում էին ձեռքով. վերցնում էին հրապարակվող մաքսային տվյալները և աղյուսակները, համեմատում այլ ելակետային տվյալների հետ, կազմում հաշվարկը և արդյունքը հայտնում հաճախորդին անձամբ, հեռախոսով կամ նամակագրությամբ։ Հաշվել պետք էր ոչ միայն մաքսազերծումը. գումարի մեջ մտնում էին առաքումը, միջնորդավճարները, ընկերության ծառայությունները և արժույթների փոխարժեքները, ուստի յուրաքանչյուր հայտ կազմվում էր նորից։
Լուծումը
Բոտը հաճախորդին քայլ առ քայլ օգնում է ընտրել ավտոմեքենայի պարամետրերը և տալիս գործարքի պատրաստի մանրամասն հաշվարկը։ Ելակետային տվյալները վերցնում է Google-աղյուսակից, որն ընկերության աշխատակիցները թարմացնում էին ելակետային մաքսային տվյալների փոփոխմանը զուգընթաց։ Գործարքներն ունեն պատմություն՝ հաշվեգրված բոնուսներով, աշխատակիցները՝ ադմինիստրատորի վահանակ, իսկ մուտքագրվող տվյալներն անցնում են վալիդացիա։
Հիմնական տեխնիկական որոշումները
- Ելակետային տվյալները գտնվում են Google-աղյուսակում և կարդացվում են պաշտոնական API-ով։ Դրույքաչափերը և ավտոմեքենաների ցանկն ընկերության աշխատակիցներն իրենք էին թարմացնում ելակետային մաքսային տվյալների փոփոխմանը զուգընթաց, ուստի կանոնների փոփոխությունը մշակողի մասնակցություն չէր պահանջում։
- Մուտքը Telegram ID-ների whitelist-ով՝ դերերով և հայտերով. ընկերության հաճախորդների համար՝ անվճար, կողմնակի օգտատերերի համար՝ վճարովի։
Ստորև ներկայացված սքրինշոթներն ու տեսանյութերը վերցված են աշխատող համակարգից, ուստի ինտերֆեյսը և ձայնը (եթե կա) ռուսերեն են։
Telegram-բոտը հաշվարկում է Հայաստանից Ռուսաստան ներկրվող ավտոմեքենայի մաքսազերծման արժեքը և օգնում ընկերությանը վարել գործարքները հաճախորդների հետ։ Այն ընթացիկ տվյալները ստանում է Google-աղյուսակներից, քայլ առ քայլ առաջնորդում է օգտատիրոջն ավտոմեքենայի պարամետրերի ընտրության մեջ և ցույց է տալիս գործարքի կազմը՝ գինը Հայաստանում, գումարը հաշիվ-ապրանքագրի համար, մաքսազերծման արժեքը և ընկերության ծառայությունների արժեքը։ Նախագծում կա նաև մաքսազերծված ավտոմեքենաների պատմություն՝ հաճախորդների բոնուսներով, ադմինիստրատորի վահանակ և մուտքագրվող տվյալների վալիդացիա։
Ավտոմեքենայի ընտրության ընտրացանկ
Google-աղյուսակից բոտը վերցնում է հասանելի ավտոմեքենաների ցանկը և մաքսազերծման դրույքաչափերը և ձևավորում ընտրացանկ, որտեղ կարելի է ընտրել մեքենայի պարամետրերը և միանգամից տեսնել վերջնական արժեքը։

Ընտրացանկն աշխատում է որպես վիճակի մեքենա (FSMContext). փոխազդեցությունը գնում է քայլ առ քայլ, ստեղնաշարի էջերի միջև հեշտ է անցնել, իսկ անավարտ սցենարները չեն կուտակվում։ 30 րոպե անգործությունից հետո անավարտ հարցաթերթիկը մաքրվում է, ժամանակավոր վիճակը զրոյացվում է, և օգտատերը վերադառնում է ընտրացանկ։

Մաքսազերծման արժեքը
Բոլոր պարտադիր պարամետրերն ընտրելուց հետո բոտը կատարում է հաշվարկները և արդյունքը ներկայացնում հասկանալի տեսքով՝ ավտոմեքենայի գինը Հայաստանում, գինը հաշիվ-ապրանքագրի համար, մաքսազերծման արժեքը և ընկերության ծառայությունների արժեքը։

Պատմություն
Պատմության բաժնում երևում են օգտատիրոջ բոլոր մաքսազերծված ավտոմեքենաները՝ յուրաքանչյուրի մասին կարճ տեղեկությամբ և գործարքի համար հաշվեգրված բոնուսների քանակով։ Բոնուսները հաշվեգրվում են դոլարային համարժեքով այն բանից հետո, երբ աշխատակիցը հաստատի գործարքը, և երկու ամիս անց դառնում են անվավեր։ Դրանք կարելի է ծախսել որպես զեղչ հաջորդ գործարքի վրա՝ ոչ ավելի, քան $1000 միանգամից. դուրսգրումը նույնպես անցնում է աշխատակցի հաստատմամբ։ Երբ գործարքները շատ են, պատմությունը բաժանվում է էջերի (օրինակում ցուցադրված է էջում երկու գրառում)։

Ադմինիստրատորի վահանակ
Բոտն ունի ադմինիստրատորի վահանակ։ Ադմինիստրատորը կարող է ձեռքով ավելացնել կամ ջնջել գործարք և դիտել օգտատերերի ցանկը՝ պատմությամբ։ Այստեղ նույնպես աշխատում է վիճակի մեքենան։ Տվյալները մուտքագրվում են փուլերով, իսկ հուշումների երկար ցանկերը բաժանվում են ստեղնաշարի էջերի։

Մուտքի վերահսկում
Ընկերության հաճախորդների համար բոտն անվճար էր։ Վերավաճառողները և այլ ընկերությունների ներկայացուցիչները մուտքը գնում էին ամսական $100-ով։
Մուտքը կազմակերպված է Telegram ID-ների whitelist-ով՝ դերերով և հայտերով։ Երբ բոտից փորձում է օգտվել նոր մարդ, համապատասխան դեր ունեցող աշխատակիցը ստանում է ծանուցում և կարող է մուտք տալ հենց ծանուցման կոճակով։ Տրված մուտքը կարելի է հետ կանչել։
Մուտքագրված տվյալների ստուգում
Օգտատիրոջ մուտքագրած տվյալներն անցնում են վալիդացիա հաստատումից առաջ. հնարավոր չէ նշել գոյություն չունեցող ավտոմեքենա, մոդել, կոմպլեկտացիա կամ շարժիչի ծավալ։ Ստուգվում են նաև ադմինիստրատորի ձեռքով ավելացրած գործարքները։ Օրինակ՝ եթե պատմության մեջ արդեն կա նույն VIN-ով ավտոմեքենա, այն կրկին ավելացնել չի ստացվի։

Արդյունքներ
- Ձեռքով հաշվարկն այլևս գործընթացի պարտադիր մասը չէր. հաճախորդները կարող էին արժեքը հաշվել բոտում ինքնուրույն, իսկ աշխատակիցները՝ պարամետրերը մուտքագրել զրույցի ընթացքում և անմիջապես հայտնել պատրաստի արդյունքը։
- Բոտը պահանջարկ ունեցավ նաև ընկերության հաճախորդների բազայից դուրս. վերավաճառողները և այլ ընկերությունների ներկայացուցիչները մուտքը գնում էին ամսական $100-ով։
- Նախագիծն օգտագործվեց մի քանի տարի և ավարտվեց ոչ թե տեխնիկական սահմանափակումների պատճառով. Հայաստանի միջով ավտոմեքենաների ներկրման պայմանների փոփոխությունից հետո այդ ուղղությունն ընկերության համար դադարեց տնտեսապես շահավետ լինել։