Velar/AI/Rules/transaction_rules.py

290 lines
7.3 KiB
Python
Raw Normal View History

2025-08-21 22:48:01 -07:00
# vendor_rules.py
def get_category_from_rules(vendor_name: str):
if not vendor_name:
return None
vendor = vendor_name.lower()
# Food , Shopping , Bills , Travel , Entertainment , Other
mapping = {
# ---------- FOOD ----------
"mcdonalds": "Food",
"kfc": "Food",
"hotel": "Food",
"restaurant": "Food",
"canteen": "Food",
"dhaba": "Food",
"mess": "Food",
"biryani": "Food",
"tiffins": "Food",
"cafe": "Food",
"coffee": "Food",
"tea stall": "Food",
"bakery": "Food",
"sweets": "Food",
"ice cream": "Food",
"juice": "Food",
"snacks": "Food",
"lunch": "Food",
"dinner": "Food",
"food court": "Food",
"catering": "Food",
"canteen store": "Food",
"dominos": "Food",
"pizza hut": "Food",
"subway": "Food",
"starbucks": "Food",
"cafe coffee day": "Food",
"ccd": "Food",
"swiggy": "Food",
"zomato": "Food",
"ubereats": "Food",
"barbeque nation": "Food",
"wow momo": "Food",
"cream stone": "Food",
"bikanervala": "Food",
"haldiram": "Food",
"paradise biryani": "Food",
"behrouz biryani": "Food",
"freshmenu": "Food",
"burger king": "Food",
"taco bell": "Food",
"sagar ratna": "Food",
"shs canteen": "Food",
"babai hotel": "Food",
"taj hotel": "Food",
"itc hotel": "Food",
"novotel": "Food",
"radisson": "Food",
"trident": "Food",
# ---------- SHOPPING ----------
"mall": "Shopping",
"store": "Shopping",
"supermarket": "Shopping",
"bazaar": "Shopping",
"market": "Shopping",
"mart": "Shopping",
"fashion": "Shopping",
"clothing": "Shopping",
"footwear": "Shopping",
"electronics": "Shopping",
"mobile store": "Shopping",
"accessories": "Shopping",
"furniture": "Shopping",
"home decor": "Shopping",
"appliances": "Shopping",
"cosmetics": "Shopping",
"salon": "Shopping",
"boutique": "Shopping",
"jewellery": "Shopping",
"stationery": "Shopping",
"amazon": "Shopping",
"flipkart": "Shopping",
"myntra": "Shopping",
"ajio": "Shopping",
"tatacliq": "Shopping",
"meesho": "Shopping",
"snapdeal": "Shopping",
"shopclues": "Shopping",
"bigbasket": "Shopping",
"grofers": "Shopping",
"dmart": "Shopping",
"reliance fresh": "Shopping",
"more supermarket": "Shopping",
"spencers": "Shopping",
"vishal mega mart": "Shopping",
"zudio": "Shopping",
"pantaloons": "Shopping",
"lifestyle": "Shopping",
"shoppers stop": "Shopping",
"westside": "Shopping",
"max fashion": "Shopping",
"nike": "Shopping",
"adidas": "Shopping",
"puma": "Shopping",
"reebok": "Shopping",
"levi": "Shopping",
"h&m": "Shopping",
"zara": "Shopping",
"decathlon": "Shopping",
"ikea": "Shopping",
# ---------- BILLS ----------
"electricity": "Bills",
"power": "Bills",
"water bill": "Bills",
"internet": "Bills",
"wifi": "Bills",
"broadband": "Bills",
"dth": "Bills",
"recharge": "Bills",
"gas": "Bills",
"cylinder": "Bills",
"mobile bill": "Bills",
"postpaid": "Bills",
"prepaid": "Bills",
"telecom": "Bills",
"landline": "Bills",
"sewage": "Bills",
"municipal": "Bills",
"property tax": "Bills",
"credit card": "Bills",
"loan emi": "Bills",
"bescom": "Bills", # electricity
"tsspdcl": "Bills",
"apspdcl": "Bills",
"torrent power": "Bills",
"bese": "Bills",
"bmtc pass": "Bills",
"airtel": "Bills",
"jio": "Bills",
"vi": "Bills",
"bsnl": "Bills",
"act fibernet": "Bills",
"hathway": "Bills",
"den broadband": "Bills",
"tatasky": "Bills",
"airtel dth": "Bills",
"sun direct": "Bills",
"dishtv": "Bills",
"dth recharge": "Bills",
"gas bill": "Bills",
"bharat gas": "Bills",
"hp gas": "Bills",
"indane gas": "Bills",
# ---------- TRAVEL ----------
"cab": "Travel",
"taxi": "Travel",
"auto": "Travel",
"bus": "Travel",
"train": "Travel",
"railway": "Travel",
"metro": "Travel",
"flight": "Travel",
"airlines": "Travel",
"airport": "Travel",
"air ticket": "Travel",
"ticket": "Travel",
"boarding": "Travel",
"lodge": "Travel",
"resort": "Travel",
"tour": "Travel",
"travel agency": "Travel",
"holiday": "Travel",
"trip": "Travel",
"taxi service": "Travel",
"ola": "Travel",
"uber": "Travel",
"redbus": "Travel",
"abhibus": "Travel",
"irctc": "Travel",
"indigo": "Travel",
"air india": "Travel",
"vistara": "Travel",
"spicejet": "Travel",
"goair": "Travel",
"akasa air": "Travel",
"makemytrip": "Travel",
"yatra": "Travel",
"cleartrip": "Travel",
"booking.com": "Travel",
"oyo": "Travel",
"treebo": "Travel",
"fabhotel": "Travel",
"trivago": "Travel",
"zoomcar": "Travel",
"drivezy": "Travel",
# ---------- ENTERTAINMENT ----------
"cinema": "Entertainment",
"movie": "Entertainment",
"theatre": "Entertainment",
"concert": "Entertainment",
"event": "Entertainment",
"show": "Entertainment",
"festival": "Entertainment",
"ticketnew": "Entertainment",
"games": "Entertainment",
"gaming": "Entertainment",
"amusement": "Entertainment",
"theme park": "Entertainment",
"club": "Entertainment",
"pub": "Entertainment",
"bar": "Entertainment",
"karaoke": "Entertainment",
"music": "Entertainment",
"streaming": "Entertainment",
"subscription": "Entertainment",
"video": "Entertainment",
"netflix": "Entertainment",
"amazon prime": "Entertainment",
"hotstar": "Entertainment",
"disney+": "Entertainment",
"sonyliv": "Entertainment",
"zee5": "Entertainment",
"aha": "Entertainment",
"spotify": "Entertainment",
"gaana": "Entertainment",
"wynk": "Entertainment",
"saregama": "Entertainment",
"bookmyshow": "Entertainment",
"pvr": "Entertainment",
"inox": "Entertainment",
"cinepolis": "Entertainment",
"jio cinema": "Entertainment",
"altbalaji": "Entertainment",
"voot": "Entertainment",
"apple music": "Entertainment",
"youtube premium": "Entertainment",
# ---------- OTHER ----------
"apollo pharmacy": "Other",
"pharmacy": "Other",
"medical": "Other",
"chemist": "Other",
"clinic": "Other",
"hospital": "Other",
"doctor": "Other",
"diagnostic": "Other",
"lab": "Other",
"insurance": "Other",
"policy": "Other",
"atm": "Other",
"bank": "Other",
"branch": "Other",
"transaction": "Other",
"school": "Other",
"college": "Other",
"university": "Other",
"coaching": "Other",
"training": "Other",
"service": "Other",
"repair": "Other",
"medplus": "Other",
"1mg": "Other",
"pharmeasy": "Other",
"netmeds": "Other",
"urbanclap": "Other",
"urban company": "Other",
"justdial": "Other",
"olx": "Other",
"quikr": "Other",
"paytm": "Other",
"phonepe": "Other",
"google pay": "Other",
"freecharge": "Other",
"mobikwik": "Other",
"upi": "Other",
"insurance": "Other",
"policybazaar": "Other",
"bank": "Other"
}
for keyword, category in mapping.items():
if keyword in vendor:
return category
return None