-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpopulate_data.py
95 lines (82 loc) · 2.23 KB
/
populate_data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from db_utils.models import User, Dish, Restaurant, Order, Segment, UserPreference
from db_utils.session_factory import SessionFactory
session_fact = SessionFactory()
with session_fact.session_scope() as session:
user = User(name="Piyush", gender="male")
session.add(user)
session.flush()
dish = Dish(name="red-meat", is_veg=False)
session.add(dish)
restaurant = Restaurant(name="Restaurant1")
restaurant.dishes.append(dish)
session.add(restaurant)
order = Order(user_id=user.id, restaurant_id=restaurant.id)
session.add(order)
user_pref = UserPreference(user_id=user.id, rest=restaurant.name, food=dish.name)
session.add(user_pref)
# segment 1
config = {
"gender": {
"operator": "neq",
"value": "female"
}
}
segment = Segment(name="segment1", config=config)
session.add(segment)
# segment 2
config = {
"gender": {
"operator": "neq",
"value": "female"
},
"or": [
{"preference.food": {
"operator": "eq",
"value": "red-meat"
}},
{"order_count": {
"operator": "gt",
"value": 1
}}
]
}
segment = Segment(name="segment2", config=config)
session.add(segment)
# segment 3
config = {
"gender": {
"operator": "neq",
"value": "female"
},
"and": [
{"preference.food": {
"operator": "eq",
"value": "red-meat"
}},
{"order_count": {
"operator": "gte",
"value": 1
}}
]
}
segment = Segment(name="segment3", config=config)
session.add(segment)
# segment 4
config = {
"gender": {
"operator": "neq",
"value": "female"
},
"and": [
{"preference.food": {
"operator": "eq",
"value": "red-meat"
}},
{"order_count": {
"operator": "gt",
"value": 1
}}
]
}
segment = Segment(name="segment4", config=config)
session.add(segment)