@hy-capital/api-habit-tracker-types 1.0.58 → 1.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/habit.d.ts +2 -0
- package/dist/habit.js +183 -102
- package/package.json +1 -1
- package/src/habit.ts +185 -102
package/dist/habit.d.ts
CHANGED
@@ -9,6 +9,7 @@ export declare const habitDayToNumberMappings: Record<HabitDay, number>;
|
|
9
9
|
export declare const numberToHabitDayMappings: Record<number, HabitDay>;
|
10
10
|
export declare const ProgramObjectivesByTopic: Record<TopicType, string[]>;
|
11
11
|
export interface HabitType {
|
12
|
+
id: number;
|
12
13
|
name: string;
|
13
14
|
habitTime: HabitTime;
|
14
15
|
topicType: TopicType;
|
@@ -37,6 +38,7 @@ export interface BaseHabit {
|
|
37
38
|
habit_dates: number[];
|
38
39
|
possible_notification_descriptions: string[];
|
39
40
|
min_days_per_week: number;
|
41
|
+
habit_type_id: number;
|
40
42
|
}
|
41
43
|
export interface PatchHabitRequest {
|
42
44
|
partialHabit: Partial<BaseHabit>;
|
package/dist/habit.js
CHANGED
@@ -66,6 +66,7 @@ exports.habitTimeToClockTime = {
|
|
66
66
|
exports.habitTypesByTopicType = {
|
67
67
|
Dating: [
|
68
68
|
{
|
69
|
+
id: 1,
|
69
70
|
name: 'Talk to new person',
|
70
71
|
description: 'No pressure, just talk about whatever, no matter how long or short.',
|
71
72
|
difficulty: 3,
|
@@ -75,15 +76,20 @@ exports.habitTypesByTopicType = {
|
|
75
76
|
frequency: 'Daily',
|
76
77
|
minDaysPerWeek: 5,
|
77
78
|
possibleNotificationDescriptions: [
|
78
|
-
'
|
79
|
-
'
|
80
|
-
'
|
81
|
-
'
|
79
|
+
'STILL silent?... Your dating life’s DYING. 🐌',
|
80
|
+
'Too SCARED to chat?... Enjoy rotting alone. 🐔',
|
81
|
+
'You’re steps from LEGEND status... Say "Hey" now. 🔥',
|
82
|
+
'Your game’s STRONG... Prove it with a convo. 🗣️',
|
83
|
+
'Stat: 80% feel less lonely after a chat... Get talking! 💬',
|
84
|
+
'Stat: 30% mood boost from a 5-minute convo... Start small! ⏳',
|
85
|
+
'Challenge: Say "Hey" to 3 strangers today. You’re a social MACHINE. 🏆',
|
86
|
+
'Challenge: Compliment someone’s style. Confidence LEVEL UP. 🔥'
|
82
87
|
]
|
83
88
|
},
|
84
89
|
{
|
90
|
+
id: 2,
|
85
91
|
name: 'Ask for date/social media',
|
86
|
-
description: 'Turn a conversation into an
|
92
|
+
description: 'Turn a conversation into an opportunity. Get her contact or set up a date.',
|
87
93
|
difficulty: 3,
|
88
94
|
topicType: 'Dating',
|
89
95
|
habitTime: 'Anytime',
|
@@ -91,14 +97,18 @@ exports.habitTypesByTopicType = {
|
|
91
97
|
frequency: 'Daily',
|
92
98
|
minDaysPerWeek: 3,
|
93
99
|
possibleNotificationDescriptions: [
|
94
|
-
'
|
95
|
-
'
|
96
|
-
'
|
97
|
-
'
|
98
|
-
'
|
100
|
+
'NO MOVE yet?... Stay a NOBODY forever. 👻',
|
101
|
+
'Still TOO SHY?... Guess who’s NOT getting laid. 😱',
|
102
|
+
'She’s WAITING for your move... Ask her out, champ. 📅',
|
103
|
+
'Your future self CLOSES deals... Get her number NOW. 📱',
|
104
|
+
'Stat: 70% say "yes" to spontaneous plans... Go for it! 📅',
|
105
|
+
'Stat: 40% confidence boost from asking for a number... Level UP. 💪',
|
106
|
+
'Challenge: Ask for her socials in under 5 minutes. You’re SMOOTH. 🏆',
|
107
|
+
'Challenge: Plan a coffee date for this week. Future you’s THRIVING. ☕'
|
99
108
|
]
|
100
109
|
},
|
101
110
|
{
|
111
|
+
id: 3,
|
102
112
|
name: 'Grooming',
|
103
113
|
description: 'Wear your best clothes, keep hair in check. Always.',
|
104
114
|
difficulty: 1,
|
@@ -108,14 +118,18 @@ exports.habitTypesByTopicType = {
|
|
108
118
|
frequency: 'Daily',
|
109
119
|
minDaysPerWeek: 7,
|
110
120
|
possibleNotificationDescriptions: [
|
111
|
-
'Looking
|
112
|
-
'Sloppy hair,
|
113
|
-
'
|
114
|
-
'
|
115
|
-
'
|
121
|
+
'Looking ROUGH today?... No girl’s touching that. 🗑️',
|
122
|
+
'Sloppy hair, BAD clothes... Friend zone’s calling, LOSER. 😒',
|
123
|
+
'You’re a KING, not a mess... Dress like it. 👔',
|
124
|
+
'Looking sharp, feeling SHARP... Grooming wins the game. 💈',
|
125
|
+
'Stat: 50% more likely for well-groomed men to get a second date... FACT. 💈',
|
126
|
+
'Stat: 35% self-esteem boost from dressing sharp... Own it. 👔',
|
127
|
+
'Challenge: Wear your best fit today. You’re a STYLE icon. 🏆',
|
128
|
+
'Challenge: Try a new grooming product. Future you’s FRESH. 🧼'
|
116
129
|
]
|
117
130
|
},
|
118
131
|
{
|
132
|
+
id: 4,
|
119
133
|
name: 'Get new photos',
|
120
134
|
description: 'Take new high-quality photos for dating apps.',
|
121
135
|
difficulty: 2,
|
@@ -125,14 +139,18 @@ exports.habitTypesByTopicType = {
|
|
125
139
|
frequency: 'Daily',
|
126
140
|
minDaysPerWeek: 2,
|
127
141
|
possibleNotificationDescriptions: [
|
128
|
-
'
|
129
|
-
'Old photos
|
130
|
-
'Your
|
131
|
-
'
|
132
|
-
'
|
142
|
+
'NO NEW pics?... Your profile’s DEAD. ⚰️',
|
143
|
+
'Old photos UP?... She’s swiping LEFT. 👎',
|
144
|
+
'Your profile’s READY to pop... New pics, new matches. 📸',
|
145
|
+
'Future you is a SWIPE magnet... Fresh shots incoming. 🧲',
|
146
|
+
'Stat: 60% more matches with new photos... FACT. 📸',
|
147
|
+
'Stat: 45% engagement boost from updated pics... Level UP. 🧲',
|
148
|
+
'Challenge: Take 5 new shots today. Your profile’s POPPING. 🏆',
|
149
|
+
'Challenge: Get a friend to snap your best angle. Future you’s a MAGNET. 📸'
|
133
150
|
]
|
134
151
|
},
|
135
152
|
{
|
153
|
+
id: 5,
|
136
154
|
name: 'Send messages',
|
137
155
|
description: 'Instead of asking boring questions, make more assumptions about the girl.',
|
138
156
|
difficulty: 2,
|
@@ -142,16 +160,20 @@ exports.habitTypesByTopicType = {
|
|
142
160
|
frequency: 'Daily',
|
143
161
|
minDaysPerWeek: 5,
|
144
162
|
possibleNotificationDescriptions: [
|
145
|
-
'
|
146
|
-
'Still asking
|
147
|
-
'Your
|
148
|
-
'
|
149
|
-
'
|
163
|
+
'NO TEXTS sent?... Your game’s WEAKER than your biceps. 💪',
|
164
|
+
'Still asking BORING questions?... She’s GHOSTING you. 👻',
|
165
|
+
'Your texts can SLAY... Assume, don’t ask, king. 💬',
|
166
|
+
'Future you OWNS the chat... Drop a slick line. 🔥',
|
167
|
+
'Stat: 50% more replies from bold texts... FACT. 💬',
|
168
|
+
'Stat: 40% engagement boost from assumptions in chats... Go for it! 🔥',
|
169
|
+
'Challenge: Send a message with zero questions. You’re SMOOTH. 🏆',
|
170
|
+
'Challenge: Compliment her vibe in your next text. Future you’s a CHARMER. 💬'
|
150
171
|
]
|
151
172
|
}
|
152
173
|
],
|
153
174
|
Sleep: [
|
154
175
|
{
|
176
|
+
id: 6,
|
155
177
|
name: 'No screens before bed',
|
156
178
|
description: 'Put the phone away 1 hour before sleep. Read a book or journal instead.',
|
157
179
|
difficulty: 3,
|
@@ -161,14 +183,18 @@ exports.habitTypesByTopicType = {
|
|
161
183
|
frequency: 'Daily',
|
162
184
|
minDaysPerWeek: 7,
|
163
185
|
possibleNotificationDescriptions: [
|
164
|
-
'
|
165
|
-
'Phone’s your bedtime
|
166
|
-
'
|
167
|
-
'
|
168
|
-
'
|
186
|
+
'STILL scrolling?... Tomorrow’s RUINED. 🧟♂️',
|
187
|
+
'Phone’s your bedtime buddy?... Enjoy being a WRECK. 📵',
|
188
|
+
'You’re TOUGHER than the scroll... Shut it down tonight. 📵',
|
189
|
+
'A sharp tomorrow starts here... Read instead. 📚',
|
190
|
+
'Stat: 25% better sleep without screens before bed... FACT. 😴',
|
191
|
+
'Stat: 68% stress reduction from reading... Wind down right. 📚',
|
192
|
+
'Challenge: Leave your phone outside the bedroom tonight. You’re UNPLUGGED. 🏆',
|
193
|
+
'Challenge: Read 10 pages before sleep. Future you’s SHARP. 📚'
|
169
194
|
]
|
170
195
|
},
|
171
196
|
{
|
197
|
+
id: 7,
|
172
198
|
name: '> 7hr sleep',
|
173
199
|
description: 'Go to bed and wake up at the same time. No excuses, even on weekends.',
|
174
200
|
difficulty: 2,
|
@@ -178,14 +204,18 @@ exports.habitTypesByTopicType = {
|
|
178
204
|
frequency: 'Daily',
|
179
205
|
minDaysPerWeek: 7,
|
180
206
|
possibleNotificationDescriptions: [
|
181
|
-
'
|
182
|
-
'
|
183
|
-
'Your
|
184
|
-
'
|
185
|
-
'
|
207
|
+
'LATE again?... You’re a walking DISASTER. ⏰',
|
208
|
+
'NO BEDTIME yet?... Tomorrow’s already TRASHED. 💔',
|
209
|
+
'Your brain’s BEGGING for routine... Hit the sack NOW. 🛏️',
|
210
|
+
'Tomorrow’s edge starts TONIGHT... Bedtime’s calling. 💤',
|
211
|
+
'Stat: 30% focus boost from 7+ hours of sleep... FACT. ⏰',
|
212
|
+
'Stat: 40% less fatigue with consistent bedtime... Lock it in. 💤',
|
213
|
+
'Challenge: Set a bedtime alarm for 10 PM. You’re DISCIPLINED. 🏆',
|
214
|
+
'Challenge: Sleep 7 hours for 3 nights straight. Future you’s UNSTOPPABLE. 💤'
|
186
215
|
]
|
187
216
|
},
|
188
217
|
{
|
218
|
+
id: 8,
|
189
219
|
name: 'No late-night snacking',
|
190
220
|
description: 'Stop eating at least 2 hours before bed. Let your body rest, not digest.',
|
191
221
|
difficulty: 2,
|
@@ -195,14 +225,18 @@ exports.habitTypesByTopicType = {
|
|
195
225
|
frequency: 'Daily',
|
196
226
|
minDaysPerWeek: 7,
|
197
227
|
possibleNotificationDescriptions: [
|
198
|
-
'
|
199
|
-
'Snacking before bed
|
200
|
-
'
|
201
|
-
'
|
202
|
-
'
|
228
|
+
'Munching LATE?... Enjoy that BLOATED gut. 🤰',
|
229
|
+
'Snacking before bed?... Kiss your gains GOODBYE. 🐷',
|
230
|
+
'You’re above the MUNCHIES... Skip it, king. 🍽️',
|
231
|
+
'Future you is CUT... No late snacks tonight. 💪',
|
232
|
+
'Stat: 20% better sleep without late-night eating... FACT. 🍽️',
|
233
|
+
'Stat: 15% metabolism boost from fasting before bed... Level UP. 💪',
|
234
|
+
'Challenge: No food after 8 PM. You’re DISCIPLINED. 🏆',
|
235
|
+
'Challenge: Drink water instead of snacking. Future you’s LEAN. 💧'
|
203
236
|
]
|
204
237
|
},
|
205
238
|
{
|
239
|
+
id: 9,
|
206
240
|
name: 'No caffeine after 2pm',
|
207
241
|
description: 'Cut all caffeine - coffee, pre-workout, energy drinks. Water only.',
|
208
242
|
difficulty: 2,
|
@@ -212,14 +246,18 @@ exports.habitTypesByTopicType = {
|
|
212
246
|
frequency: 'Daily',
|
213
247
|
minDaysPerWeek: 7,
|
214
248
|
possibleNotificationDescriptions: [
|
215
|
-
'
|
216
|
-
'Still sipping
|
217
|
-
'
|
218
|
-
'
|
219
|
-
'
|
249
|
+
'CAFFEINE past 2?... You’re a JITTERY wreck. ☕',
|
250
|
+
'Still sipping ENERGY drinks?... Crash hard, LOSER. ⚡',
|
251
|
+
'You’re TOUGHER than coffee... Water wins, king. 💧',
|
252
|
+
'Future you is CHILL... No caffeine after 2. 🧘♂️',
|
253
|
+
'Stat: 30% deeper sleep without afternoon caffeine... FACT. ☕',
|
254
|
+
'Stat: 50% better hydration from water over energy drinks... Level UP. 💧',
|
255
|
+
'Challenge: Swap coffee for herbal tea after 2 PM. You’re CALM. 🏆',
|
256
|
+
'Challenge: Go caffeine-free for 24 hours. Future you’s RESTED. 💤'
|
220
257
|
]
|
221
258
|
},
|
222
259
|
{
|
260
|
+
id: 10,
|
223
261
|
name: 'Optimize your sleep environment',
|
224
262
|
description: 'Cool room, blackout curtains, clean sheets, no electronics nearby.',
|
225
263
|
difficulty: 1,
|
@@ -229,16 +267,20 @@ exports.habitTypesByTopicType = {
|
|
229
267
|
frequency: 'Daily',
|
230
268
|
minDaysPerWeek: 7,
|
231
269
|
possibleNotificationDescriptions: [
|
232
|
-
'Room’s a
|
233
|
-
'
|
234
|
-
'
|
235
|
-
'
|
236
|
-
'
|
270
|
+
'Room’s a MESS?... You’re sleeping in a DUMP. 🐖',
|
271
|
+
'NO BLACKOUT curtains?... Wake up a tired JOKE. 😴',
|
272
|
+
'You deserve a THRONE... Make your room elite. 🛏️',
|
273
|
+
'Future you sleeps ROYAL... Optimize tonight. 👑',
|
274
|
+
'Stat: 20% better sleep in a cool room... FACT. ❄️',
|
275
|
+
'Stat: 15% melatonin boost from blackout curtains... Level UP. 🌙',
|
276
|
+
'Challenge: Remove all electronics from your room. You’re UNPLUGGED. 🏆',
|
277
|
+
'Challenge: Set your room temp to 19°C. Future you’s RESTED. 🛏️'
|
237
278
|
]
|
238
279
|
}
|
239
280
|
],
|
240
281
|
Fitness: [
|
241
282
|
{
|
283
|
+
id: 11,
|
242
284
|
name: 'Stay active',
|
243
285
|
description: 'Go to the gym, do cardio or just move. No lazy days.',
|
244
286
|
difficulty: 2,
|
@@ -248,14 +290,18 @@ exports.habitTypesByTopicType = {
|
|
248
290
|
frequency: 'Daily',
|
249
291
|
minDaysPerWeek: 7,
|
250
292
|
possibleNotificationDescriptions: [
|
251
|
-
'
|
252
|
-
'Still
|
253
|
-
'
|
254
|
-
'
|
255
|
-
'
|
293
|
+
'NO MOVEMENT today?... You’re getting FAT. 🏋️♂️',
|
294
|
+
'Still SITTING there?... Softness WINS. 🛋️',
|
295
|
+
'You’re built to DOMINATE... Get up now. 🏃♂️',
|
296
|
+
'Sweat’s carving your GAINS... Hit it today. 💪',
|
297
|
+
'Stat: 200 calories burned in 20 minutes of movement... FACT. 🏃♂️',
|
298
|
+
'Stat: 30% energy boost from daily exercise... Level UP. ⚡',
|
299
|
+
'Challenge: Do 20 push-ups right now. You’re a BEAST. 🏆',
|
300
|
+
'Challenge: Walk 10,000 steps today. Future you’s RIPPED. 🚶♂️'
|
256
301
|
]
|
257
302
|
},
|
258
303
|
{
|
304
|
+
id: 12,
|
259
305
|
name: 'No processed sugars',
|
260
306
|
description: 'Skip added sugars. Stick to natural sources like fruit.',
|
261
307
|
difficulty: 3,
|
@@ -265,14 +311,18 @@ exports.habitTypesByTopicType = {
|
|
265
311
|
frequency: 'Daily',
|
266
312
|
minDaysPerWeek: 7,
|
267
313
|
possibleNotificationDescriptions: [
|
268
|
-
'
|
269
|
-
'Candy over
|
270
|
-
'
|
271
|
-
'
|
272
|
-
'
|
314
|
+
'SUGAR binge again?... DIABETES is knocking. 🍭',
|
315
|
+
'Candy over FRUIT?... You’re a ticking BOMB. 🍎',
|
316
|
+
'You’re forged for BETTER... Go clean today. 🍎',
|
317
|
+
'Real food SCULPTS you... Start now. 🥗',
|
318
|
+
'Stat: 10% body fat drop in a month from cutting sugar... FACT. 🍎',
|
319
|
+
'Stat: 20% faster recovery with natural sugars... Level UP. 🥗',
|
320
|
+
'Challenge: No added sugar for 24 hours. You’re DISCIPLINED. 🏆',
|
321
|
+
'Challenge: Swap candy for fruit today. Future you’s LEAN. 🍇'
|
273
322
|
]
|
274
323
|
},
|
275
324
|
{
|
325
|
+
id: 13,
|
276
326
|
name: 'No alcohol',
|
277
327
|
description: 'Stay 100% alcohol-free. No exceptions, no slip-ups.',
|
278
328
|
difficulty: 2,
|
@@ -282,16 +332,20 @@ exports.habitTypesByTopicType = {
|
|
282
332
|
frequency: 'Daily',
|
283
333
|
minDaysPerWeek: 7,
|
284
334
|
possibleNotificationDescriptions: [
|
285
|
-
'
|
286
|
-
'
|
287
|
-
'
|
288
|
-
'
|
289
|
-
'
|
335
|
+
'BOOZE today?... Enjoy your BEER belly. 🍺',
|
336
|
+
'DRINKING again?... You’re a sloppy MESS. 🍷',
|
337
|
+
'You’re sculpted for GREATNESS... Stay dry. 🚫',
|
338
|
+
'Clarity SHAPES your body... Skip the buzz. 🧠',
|
339
|
+
'Stat: 25% faster muscle recovery without alcohol... FACT. 🍺',
|
340
|
+
'Stat: 15% testosterone boost from staying dry... Level UP. 💪',
|
341
|
+
'Challenge: Go alcohol-free for 48 hours. You’re UNBREAKABLE. 🏆',
|
342
|
+
'Challenge: Swap beer for water tonight. Future you’s STRONG. 💧'
|
290
343
|
]
|
291
344
|
},
|
292
345
|
{
|
346
|
+
id: 14,
|
293
347
|
name: 'Weigh yourself',
|
294
|
-
description: 'Track
|
348
|
+
description: 'Track your weight to know you’re moving in the right direction.',
|
295
349
|
difficulty: 2,
|
296
350
|
topicType: 'Fitness',
|
297
351
|
habitTime: 'Morning',
|
@@ -299,14 +353,18 @@ exports.habitTypesByTopicType = {
|
|
299
353
|
frequency: 'Daily',
|
300
354
|
minDaysPerWeek: 7,
|
301
355
|
possibleNotificationDescriptions: [
|
302
|
-
'
|
303
|
-
'
|
304
|
-
'
|
305
|
-
'
|
306
|
-
'
|
356
|
+
'Still dodging the scale?... Ignorance isn’t bliss, it’s FAT. ⚖️',
|
357
|
+
'Afraid of the numbers?... Your gains are just guesses. 📈',
|
358
|
+
'Kings face the truth... Step on the scale. ⚖️',
|
359
|
+
'Precision builds champions... Log your weight now. 📈',
|
360
|
+
'Stat: 40% higher success rate with weight tracking... FACT. ⚖️',
|
361
|
+
'Stat: 20% less overeating from daily weighing... Level UP. 📈',
|
362
|
+
'Challenge: Weigh in 3 days straight. You’re DISCIPLINED. 🏆',
|
363
|
+
'Challenge: Log your weight before breakfast. Future you’s ON POINT. ⏰'
|
307
364
|
]
|
308
365
|
},
|
309
366
|
{
|
367
|
+
id: 15,
|
310
368
|
name: 'Meal prep',
|
311
369
|
description: 'Cook meals in bulk. No excuses for missing protein or eating junk.',
|
312
370
|
difficulty: 3,
|
@@ -316,16 +374,20 @@ exports.habitTypesByTopicType = {
|
|
316
374
|
frequency: 'Daily',
|
317
375
|
minDaysPerWeek: 2,
|
318
376
|
possibleNotificationDescriptions: [
|
319
|
-
'
|
320
|
-
'
|
321
|
-
'
|
322
|
-
'
|
323
|
-
'
|
377
|
+
'Takeout again?... Your body’s a JUNKYARD. 🍱',
|
378
|
+
'Too lazy to cook?... Your muscles are STARVING. 🍳',
|
379
|
+
'Beasts dominate the kitchen... Prep your power. 🍳',
|
380
|
+
'Fuel your empire... Meal prep for gains. 💪',
|
381
|
+
'Stat: 30% savings on food costs with meal prepping... FACT. 🍱',
|
382
|
+
'Stat: 25% more protein intake from prepped meals... Level UP. 💪',
|
383
|
+
'Challenge: Prep 3 meals today. You’re a CHEF. 🏆',
|
384
|
+
'Challenge: Cook a new recipe this week. Future you’s STACKED. 🍳'
|
324
385
|
]
|
325
386
|
}
|
326
387
|
],
|
327
388
|
'Side Hustle': [
|
328
389
|
{
|
390
|
+
id: 16,
|
329
391
|
name: 'Dedicate 2 hours to hustle',
|
330
392
|
description: '2 focused hours on your hustle. No distractions, no excuses.',
|
331
393
|
difficulty: 3,
|
@@ -335,14 +397,18 @@ exports.habitTypesByTopicType = {
|
|
335
397
|
frequency: 'Daily',
|
336
398
|
minDaysPerWeek: 7,
|
337
399
|
possibleNotificationDescriptions: [
|
338
|
-
'
|
339
|
-
'
|
340
|
-
'
|
341
|
-
'
|
342
|
-
'
|
400
|
+
'NO HUSTLE today?... You’re a BROKE joke. 💸',
|
401
|
+
'SKIPPED your 2 hours?... Keep begging for PENNIES. ⏳',
|
402
|
+
'You’re destined to RISE... Lock in 2 hours. 💼',
|
403
|
+
'Wealth’s knocking TODAY... Answer with effort. 💰',
|
404
|
+
'Stat: 40% income boost from 2 hours daily... FACT. 💸',
|
405
|
+
'Stat: 50% productivity gain from focused work... Level UP. ⏳',
|
406
|
+
'Challenge: Finish one task in 2 hours. You’re a MACHINE. 🏆',
|
407
|
+
'Challenge: No distractions for 120 minutes. Future you’s WEALTHY. 💰'
|
343
408
|
]
|
344
409
|
},
|
345
410
|
{
|
411
|
+
id: 17,
|
346
412
|
name: 'Client outreach',
|
347
413
|
description: 'Contact potential clients or partners.',
|
348
414
|
difficulty: 2,
|
@@ -352,16 +418,20 @@ exports.habitTypesByTopicType = {
|
|
352
418
|
frequency: 'Daily',
|
353
419
|
minDaysPerWeek: 3,
|
354
420
|
possibleNotificationDescriptions: [
|
355
|
-
'
|
356
|
-
'Too
|
357
|
-
'
|
358
|
-
'
|
359
|
-
'
|
421
|
+
'NO OUTREACH yet?... Your hustle’s DEAD quiet. 📞',
|
422
|
+
'Too SHY to pitch?... Stay BROKE forever. 🤐',
|
423
|
+
'You’re wired to CLOSE... Hit up a client. 📞',
|
424
|
+
'Connections FUEL your rise... Make one today. 🤝',
|
425
|
+
'Stat: 35% client acquisition boost from outreach... FACT. 📞',
|
426
|
+
'Stat: 20% conversion rate from cold pitches... Level UP. 🤝',
|
427
|
+
'Challenge: Send 3 outreach messages today. You’re a CLOSER. 🏆',
|
428
|
+
'Challenge: Pitch a new client this week. Future you’s STACKED. 💼'
|
360
429
|
]
|
361
430
|
},
|
362
431
|
{
|
432
|
+
id: 18,
|
363
433
|
name: 'Share your journey',
|
364
|
-
description: 'Social media post, blog, tweet, vlog or message someone.',
|
434
|
+
description: 'Social media post, blog, tweet, vlog, or message someone.',
|
365
435
|
difficulty: 2,
|
366
436
|
topicType: 'Side Hustle',
|
367
437
|
habitTime: 'Evening',
|
@@ -369,14 +439,18 @@ exports.habitTypesByTopicType = {
|
|
369
439
|
frequency: 'Daily',
|
370
440
|
minDaysPerWeek: 7,
|
371
441
|
possibleNotificationDescriptions: [
|
372
|
-
'
|
373
|
-
'
|
374
|
-
'
|
375
|
-
'
|
376
|
-
'
|
442
|
+
'NO POST today?... Your hustle’s INVISIBLE. 👻',
|
443
|
+
'NOTHING shared?... You’re a LAZY shadow. 😴',
|
444
|
+
'You’re a VOICE... Share your grind, king. 📸',
|
445
|
+
'Future you INSPIRES... Start with today’s post. 🌟',
|
446
|
+
'Stat: 45% engagement boost from journey sharing... FACT. 📸',
|
447
|
+
'Stat: 30% follower growth from consistent posting... Level UP. 🌟',
|
448
|
+
'Challenge: Post one update today. You’re a CREATOR. 🏆',
|
449
|
+
'Challenge: Share a behind-the-scenes moment. Future you’s INFLUENTIAL. 📸'
|
377
450
|
]
|
378
451
|
},
|
379
452
|
{
|
453
|
+
id: 19,
|
380
454
|
name: 'Get real feedback',
|
381
455
|
description: 'Ask a customer or friend what they’d change about your hustle.',
|
382
456
|
difficulty: 3,
|
@@ -386,14 +460,18 @@ exports.habitTypesByTopicType = {
|
|
386
460
|
frequency: 'Daily',
|
387
461
|
minDaysPerWeek: 2,
|
388
462
|
possibleNotificationDescriptions: [
|
389
|
-
'
|
390
|
-
'Too
|
391
|
-
'
|
392
|
-
'
|
393
|
-
'
|
463
|
+
'NO FEEDBACK yet?... Your hustle’s TRASH unseen. 🗑️',
|
464
|
+
'Too SCARED to ask?... Keep failing BLIND. 🤐',
|
465
|
+
'You’re built to GROW... Seek truth, king. 🧠',
|
466
|
+
'Future you is SHARP... Ask for feedback now. 🗣️',
|
467
|
+
'Stat: 40% mistake reduction from feedback loops... FACT. 🧠',
|
468
|
+
'Stat: 30% product quality boost from input... Level UP. 📈',
|
469
|
+
'Challenge: Ask one person for feedback today. You’re WISE. 🏆',
|
470
|
+
'Challenge: Implement one suggestion this week. Future you’s SHARP. 🗣️'
|
394
471
|
]
|
395
472
|
},
|
396
473
|
{
|
474
|
+
id: 20,
|
397
475
|
name: 'Study competitors',
|
398
476
|
description: 'Analyze what your rivals are doing, see what works, what not.',
|
399
477
|
difficulty: 3,
|
@@ -403,11 +481,14 @@ exports.habitTypesByTopicType = {
|
|
403
481
|
frequency: 'Daily',
|
404
482
|
minDaysPerWeek: 3,
|
405
483
|
possibleNotificationDescriptions: [
|
406
|
-
'
|
407
|
-
'
|
408
|
-
'
|
409
|
-
'
|
410
|
-
'
|
484
|
+
'NO COMPETITOR check?... They’re crushing you BLIND. 👀',
|
485
|
+
'SKIPPED studying?... You’re a sitting DUCK. 🦆',
|
486
|
+
'You’re a HUNTER... Study their moves, king. 🕵️♂️',
|
487
|
+
'Future you LEADS... Start with rival intel. 📊',
|
488
|
+
'Stat: 35% strategy boost from competitor analysis... FACT. 🕵️♂️',
|
489
|
+
'Stat: 25% fewer market mistakes from knowing rivals... Level UP. 📊',
|
490
|
+
'Challenge: Analyze one competitor today. You’re a STRATEGIST. 🏆',
|
491
|
+
'Challenge: Find one rival’s weakness. Future you’s AHEAD. 🧠'
|
411
492
|
]
|
412
493
|
}
|
413
494
|
]
|
package/package.json
CHANGED
package/src/habit.ts
CHANGED
@@ -52,6 +52,7 @@ export const ProgramObjectivesByTopic: Record<TopicType, string[]> = {
|
|
52
52
|
};
|
53
53
|
|
54
54
|
export interface HabitType {
|
55
|
+
id: number;
|
55
56
|
name: string;
|
56
57
|
habitTime: HabitTime;
|
57
58
|
topicType: TopicType;
|
@@ -81,6 +82,7 @@ export interface BaseHabit {
|
|
81
82
|
habit_dates: number[]; //TODO: remove
|
82
83
|
possible_notification_descriptions: string[];
|
83
84
|
min_days_per_week: number;
|
85
|
+
habit_type_id: number;
|
84
86
|
}
|
85
87
|
|
86
88
|
export interface PatchHabitRequest {
|
@@ -162,6 +164,7 @@ export const habitTimeToClockTime: Record<HabitTime, { hour: number, minute: num
|
|
162
164
|
export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
163
165
|
Dating: [
|
164
166
|
{
|
167
|
+
id: 1,
|
165
168
|
name: 'Talk to new person',
|
166
169
|
description: 'No pressure, just talk about whatever, no matter how long or short.',
|
167
170
|
difficulty: 3,
|
@@ -171,15 +174,20 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
171
174
|
frequency: 'Daily',
|
172
175
|
minDaysPerWeek: 5,
|
173
176
|
possibleNotificationDescriptions: [
|
174
|
-
'
|
175
|
-
'
|
176
|
-
'
|
177
|
-
'
|
177
|
+
'STILL silent?... Your dating life’s DYING. 🐌',
|
178
|
+
'Too SCARED to chat?... Enjoy rotting alone. 🐔',
|
179
|
+
'You’re steps from LEGEND status... Say "Hey" now. 🔥',
|
180
|
+
'Your game’s STRONG... Prove it with a convo. 🗣️',
|
181
|
+
'Stat: 80% feel less lonely after a chat... Get talking! 💬',
|
182
|
+
'Stat: 30% mood boost from a 5-minute convo... Start small! ⏳',
|
183
|
+
'Challenge: Say "Hey" to 3 strangers today. You’re a social MACHINE. 🏆',
|
184
|
+
'Challenge: Compliment someone’s style. Confidence LEVEL UP. 🔥'
|
178
185
|
]
|
179
186
|
},
|
180
187
|
{
|
188
|
+
id: 2,
|
181
189
|
name: 'Ask for date/social media',
|
182
|
-
description: 'Turn a conversation into an
|
190
|
+
description: 'Turn a conversation into an opportunity. Get her contact or set up a date.',
|
183
191
|
difficulty: 3,
|
184
192
|
topicType: 'Dating',
|
185
193
|
habitTime: 'Anytime',
|
@@ -187,14 +195,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
187
195
|
frequency: 'Daily',
|
188
196
|
minDaysPerWeek: 3,
|
189
197
|
possibleNotificationDescriptions: [
|
190
|
-
'
|
191
|
-
'
|
192
|
-
'
|
193
|
-
'
|
194
|
-
'
|
198
|
+
'NO MOVE yet?... Stay a NOBODY forever. 👻',
|
199
|
+
'Still TOO SHY?... Guess who’s NOT getting laid. 😱',
|
200
|
+
'She’s WAITING for your move... Ask her out, champ. 📅',
|
201
|
+
'Your future self CLOSES deals... Get her number NOW. 📱',
|
202
|
+
'Stat: 70% say "yes" to spontaneous plans... Go for it! 📅',
|
203
|
+
'Stat: 40% confidence boost from asking for a number... Level UP. 💪',
|
204
|
+
'Challenge: Ask for her socials in under 5 minutes. You’re SMOOTH. 🏆',
|
205
|
+
'Challenge: Plan a coffee date for this week. Future you’s THRIVING. ☕'
|
195
206
|
]
|
196
207
|
},
|
197
208
|
{
|
209
|
+
id: 3,
|
198
210
|
name: 'Grooming',
|
199
211
|
description: 'Wear your best clothes, keep hair in check. Always.',
|
200
212
|
difficulty: 1,
|
@@ -204,14 +216,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
204
216
|
frequency: 'Daily',
|
205
217
|
minDaysPerWeek: 7,
|
206
218
|
possibleNotificationDescriptions: [
|
207
|
-
'Looking
|
208
|
-
'Sloppy hair,
|
209
|
-
'
|
210
|
-
'
|
211
|
-
'
|
219
|
+
'Looking ROUGH today?... No girl’s touching that. 🗑️',
|
220
|
+
'Sloppy hair, BAD clothes... Friend zone’s calling, LOSER. 😒',
|
221
|
+
'You’re a KING, not a mess... Dress like it. 👔',
|
222
|
+
'Looking sharp, feeling SHARP... Grooming wins the game. 💈',
|
223
|
+
'Stat: 50% more likely for well-groomed men to get a second date... FACT. 💈',
|
224
|
+
'Stat: 35% self-esteem boost from dressing sharp... Own it. 👔',
|
225
|
+
'Challenge: Wear your best fit today. You’re a STYLE icon. 🏆',
|
226
|
+
'Challenge: Try a new grooming product. Future you’s FRESH. 🧼'
|
212
227
|
]
|
213
228
|
},
|
214
229
|
{
|
230
|
+
id: 4,
|
215
231
|
name: 'Get new photos',
|
216
232
|
description: 'Take new high-quality photos for dating apps.',
|
217
233
|
difficulty: 2,
|
@@ -221,14 +237,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
221
237
|
frequency: 'Daily',
|
222
238
|
minDaysPerWeek: 2,
|
223
239
|
possibleNotificationDescriptions: [
|
224
|
-
'
|
225
|
-
'Old photos
|
226
|
-
'Your
|
227
|
-
'
|
228
|
-
'
|
240
|
+
'NO NEW pics?... Your profile’s DEAD. ⚰️',
|
241
|
+
'Old photos UP?... She’s swiping LEFT. 👎',
|
242
|
+
'Your profile’s READY to pop... New pics, new matches. 📸',
|
243
|
+
'Future you is a SWIPE magnet... Fresh shots incoming. 🧲',
|
244
|
+
'Stat: 60% more matches with new photos... FACT. 📸',
|
245
|
+
'Stat: 45% engagement boost from updated pics... Level UP. 🧲',
|
246
|
+
'Challenge: Take 5 new shots today. Your profile’s POPPING. 🏆',
|
247
|
+
'Challenge: Get a friend to snap your best angle. Future you’s a MAGNET. 📸'
|
229
248
|
]
|
230
249
|
},
|
231
250
|
{
|
251
|
+
id: 5,
|
232
252
|
name: 'Send messages',
|
233
253
|
description: 'Instead of asking boring questions, make more assumptions about the girl.',
|
234
254
|
difficulty: 2,
|
@@ -238,16 +258,20 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
238
258
|
frequency: 'Daily',
|
239
259
|
minDaysPerWeek: 5,
|
240
260
|
possibleNotificationDescriptions: [
|
241
|
-
'
|
242
|
-
'Still asking
|
243
|
-
'Your
|
244
|
-
'
|
245
|
-
'
|
261
|
+
'NO TEXTS sent?... Your game’s WEAKER than your biceps. 💪',
|
262
|
+
'Still asking BORING questions?... She’s GHOSTING you. 👻',
|
263
|
+
'Your texts can SLAY... Assume, don’t ask, king. 💬',
|
264
|
+
'Future you OWNS the chat... Drop a slick line. 🔥',
|
265
|
+
'Stat: 50% more replies from bold texts... FACT. 💬',
|
266
|
+
'Stat: 40% engagement boost from assumptions in chats... Go for it! 🔥',
|
267
|
+
'Challenge: Send a message with zero questions. You’re SMOOTH. 🏆',
|
268
|
+
'Challenge: Compliment her vibe in your next text. Future you’s a CHARMER. 💬'
|
246
269
|
]
|
247
270
|
}
|
248
271
|
],
|
249
272
|
Sleep: [
|
250
273
|
{
|
274
|
+
id: 6,
|
251
275
|
name: 'No screens before bed',
|
252
276
|
description: 'Put the phone away 1 hour before sleep. Read a book or journal instead.',
|
253
277
|
difficulty: 3,
|
@@ -257,14 +281,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
257
281
|
frequency: 'Daily',
|
258
282
|
minDaysPerWeek: 7,
|
259
283
|
possibleNotificationDescriptions: [
|
260
|
-
'
|
261
|
-
'Phone’s your bedtime
|
262
|
-
'
|
263
|
-
'
|
264
|
-
'
|
284
|
+
'STILL scrolling?... Tomorrow’s RUINED. 🧟♂️',
|
285
|
+
'Phone’s your bedtime buddy?... Enjoy being a WRECK. 📵',
|
286
|
+
'You’re TOUGHER than the scroll... Shut it down tonight. 📵',
|
287
|
+
'A sharp tomorrow starts here... Read instead. 📚',
|
288
|
+
'Stat: 25% better sleep without screens before bed... FACT. 😴',
|
289
|
+
'Stat: 68% stress reduction from reading... Wind down right. 📚',
|
290
|
+
'Challenge: Leave your phone outside the bedroom tonight. You’re UNPLUGGED. 🏆',
|
291
|
+
'Challenge: Read 10 pages before sleep. Future you’s SHARP. 📚'
|
265
292
|
]
|
266
293
|
},
|
267
294
|
{
|
295
|
+
id: 7,
|
268
296
|
name: '> 7hr sleep',
|
269
297
|
description: 'Go to bed and wake up at the same time. No excuses, even on weekends.',
|
270
298
|
difficulty: 2,
|
@@ -274,14 +302,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
274
302
|
frequency: 'Daily',
|
275
303
|
minDaysPerWeek: 7,
|
276
304
|
possibleNotificationDescriptions: [
|
277
|
-
'
|
278
|
-
'
|
279
|
-
'Your
|
280
|
-
'
|
281
|
-
'
|
305
|
+
'LATE again?... You’re a walking DISASTER. ⏰',
|
306
|
+
'NO BEDTIME yet?... Tomorrow’s already TRASHED. 💔',
|
307
|
+
'Your brain’s BEGGING for routine... Hit the sack NOW. 🛏️',
|
308
|
+
'Tomorrow’s edge starts TONIGHT... Bedtime’s calling. 💤',
|
309
|
+
'Stat: 30% focus boost from 7+ hours of sleep... FACT. ⏰',
|
310
|
+
'Stat: 40% less fatigue with consistent bedtime... Lock it in. 💤',
|
311
|
+
'Challenge: Set a bedtime alarm for 10 PM. You’re DISCIPLINED. 🏆',
|
312
|
+
'Challenge: Sleep 7 hours for 3 nights straight. Future you’s UNSTOPPABLE. 💤'
|
282
313
|
]
|
283
314
|
},
|
284
315
|
{
|
316
|
+
id: 8,
|
285
317
|
name: 'No late-night snacking',
|
286
318
|
description: 'Stop eating at least 2 hours before bed. Let your body rest, not digest.',
|
287
319
|
difficulty: 2,
|
@@ -291,14 +323,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
291
323
|
frequency: 'Daily',
|
292
324
|
minDaysPerWeek: 7,
|
293
325
|
possibleNotificationDescriptions: [
|
294
|
-
'
|
295
|
-
'Snacking before bed
|
296
|
-
'
|
297
|
-
'
|
298
|
-
'
|
326
|
+
'Munching LATE?... Enjoy that BLOATED gut. 🤰',
|
327
|
+
'Snacking before bed?... Kiss your gains GOODBYE. 🐷',
|
328
|
+
'You’re above the MUNCHIES... Skip it, king. 🍽️',
|
329
|
+
'Future you is CUT... No late snacks tonight. 💪',
|
330
|
+
'Stat: 20% better sleep without late-night eating... FACT. 🍽️',
|
331
|
+
'Stat: 15% metabolism boost from fasting before bed... Level UP. 💪',
|
332
|
+
'Challenge: No food after 8 PM. You’re DISCIPLINED. 🏆',
|
333
|
+
'Challenge: Drink water instead of snacking. Future you’s LEAN. 💧'
|
299
334
|
]
|
300
335
|
},
|
301
336
|
{
|
337
|
+
id: 9,
|
302
338
|
name: 'No caffeine after 2pm',
|
303
339
|
description: 'Cut all caffeine - coffee, pre-workout, energy drinks. Water only.',
|
304
340
|
difficulty: 2,
|
@@ -308,14 +344,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
308
344
|
frequency: 'Daily',
|
309
345
|
minDaysPerWeek: 7,
|
310
346
|
possibleNotificationDescriptions: [
|
311
|
-
'
|
312
|
-
'Still sipping
|
313
|
-
'
|
314
|
-
'
|
315
|
-
'
|
347
|
+
'CAFFEINE past 2?... You’re a JITTERY wreck. ☕',
|
348
|
+
'Still sipping ENERGY drinks?... Crash hard, LOSER. ⚡',
|
349
|
+
'You’re TOUGHER than coffee... Water wins, king. 💧',
|
350
|
+
'Future you is CHILL... No caffeine after 2. 🧘♂️',
|
351
|
+
'Stat: 30% deeper sleep without afternoon caffeine... FACT. ☕',
|
352
|
+
'Stat: 50% better hydration from water over energy drinks... Level UP. 💧',
|
353
|
+
'Challenge: Swap coffee for herbal tea after 2 PM. You’re CALM. 🏆',
|
354
|
+
'Challenge: Go caffeine-free for 24 hours. Future you’s RESTED. 💤'
|
316
355
|
]
|
317
356
|
},
|
318
357
|
{
|
358
|
+
id: 10,
|
319
359
|
name: 'Optimize your sleep environment',
|
320
360
|
description: 'Cool room, blackout curtains, clean sheets, no electronics nearby.',
|
321
361
|
difficulty: 1,
|
@@ -325,16 +365,20 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
325
365
|
frequency: 'Daily',
|
326
366
|
minDaysPerWeek: 7,
|
327
367
|
possibleNotificationDescriptions: [
|
328
|
-
'Room’s a
|
329
|
-
'
|
330
|
-
'
|
331
|
-
'
|
332
|
-
'
|
368
|
+
'Room’s a MESS?... You’re sleeping in a DUMP. 🐖',
|
369
|
+
'NO BLACKOUT curtains?... Wake up a tired JOKE. 😴',
|
370
|
+
'You deserve a THRONE... Make your room elite. 🛏️',
|
371
|
+
'Future you sleeps ROYAL... Optimize tonight. 👑',
|
372
|
+
'Stat: 20% better sleep in a cool room... FACT. ❄️',
|
373
|
+
'Stat: 15% melatonin boost from blackout curtains... Level UP. 🌙',
|
374
|
+
'Challenge: Remove all electronics from your room. You’re UNPLUGGED. 🏆',
|
375
|
+
'Challenge: Set your room temp to 19°C. Future you’s RESTED. 🛏️'
|
333
376
|
]
|
334
377
|
}
|
335
378
|
],
|
336
379
|
Fitness: [
|
337
380
|
{
|
381
|
+
id: 11,
|
338
382
|
name: 'Stay active',
|
339
383
|
description: 'Go to the gym, do cardio or just move. No lazy days.',
|
340
384
|
difficulty: 2,
|
@@ -344,14 +388,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
344
388
|
frequency: 'Daily',
|
345
389
|
minDaysPerWeek: 7,
|
346
390
|
possibleNotificationDescriptions: [
|
347
|
-
'
|
348
|
-
'Still
|
349
|
-
'
|
350
|
-
'
|
351
|
-
'
|
391
|
+
'NO MOVEMENT today?... You’re getting FAT. 🏋️♂️',
|
392
|
+
'Still SITTING there?... Softness WINS. 🛋️',
|
393
|
+
'You’re built to DOMINATE... Get up now. 🏃♂️',
|
394
|
+
'Sweat’s carving your GAINS... Hit it today. 💪',
|
395
|
+
'Stat: 200 calories burned in 20 minutes of movement... FACT. 🏃♂️',
|
396
|
+
'Stat: 30% energy boost from daily exercise... Level UP. ⚡',
|
397
|
+
'Challenge: Do 20 push-ups right now. You’re a BEAST. 🏆',
|
398
|
+
'Challenge: Walk 10,000 steps today. Future you’s RIPPED. 🚶♂️'
|
352
399
|
]
|
353
400
|
},
|
354
401
|
{
|
402
|
+
id: 12,
|
355
403
|
name: 'No processed sugars',
|
356
404
|
description: 'Skip added sugars. Stick to natural sources like fruit.',
|
357
405
|
difficulty: 3,
|
@@ -361,14 +409,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
361
409
|
frequency: 'Daily',
|
362
410
|
minDaysPerWeek: 7,
|
363
411
|
possibleNotificationDescriptions: [
|
364
|
-
'
|
365
|
-
'Candy over
|
366
|
-
'
|
367
|
-
'
|
368
|
-
'
|
412
|
+
'SUGAR binge again?... DIABETES is knocking. 🍭',
|
413
|
+
'Candy over FRUIT?... You’re a ticking BOMB. 🍎',
|
414
|
+
'You’re forged for BETTER... Go clean today. 🍎',
|
415
|
+
'Real food SCULPTS you... Start now. 🥗',
|
416
|
+
'Stat: 10% body fat drop in a month from cutting sugar... FACT. 🍎',
|
417
|
+
'Stat: 20% faster recovery with natural sugars... Level UP. 🥗',
|
418
|
+
'Challenge: No added sugar for 24 hours. You’re DISCIPLINED. 🏆',
|
419
|
+
'Challenge: Swap candy for fruit today. Future you’s LEAN. 🍇'
|
369
420
|
]
|
370
421
|
},
|
371
422
|
{
|
423
|
+
id: 13,
|
372
424
|
name: 'No alcohol',
|
373
425
|
description: 'Stay 100% alcohol-free. No exceptions, no slip-ups.',
|
374
426
|
difficulty: 2,
|
@@ -378,16 +430,20 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
378
430
|
frequency: 'Daily',
|
379
431
|
minDaysPerWeek: 7,
|
380
432
|
possibleNotificationDescriptions: [
|
381
|
-
'
|
382
|
-
'
|
383
|
-
'
|
384
|
-
'
|
385
|
-
'
|
433
|
+
'BOOZE today?... Enjoy your BEER belly. 🍺',
|
434
|
+
'DRINKING again?... You’re a sloppy MESS. 🍷',
|
435
|
+
'You’re sculpted for GREATNESS... Stay dry. 🚫',
|
436
|
+
'Clarity SHAPES your body... Skip the buzz. 🧠',
|
437
|
+
'Stat: 25% faster muscle recovery without alcohol... FACT. 🍺',
|
438
|
+
'Stat: 15% testosterone boost from staying dry... Level UP. 💪',
|
439
|
+
'Challenge: Go alcohol-free for 48 hours. You’re UNBREAKABLE. 🏆',
|
440
|
+
'Challenge: Swap beer for water tonight. Future you’s STRONG. 💧'
|
386
441
|
]
|
387
442
|
},
|
388
443
|
{
|
444
|
+
id: 14,
|
389
445
|
name: 'Weigh yourself',
|
390
|
-
description: 'Track
|
446
|
+
description: 'Track your weight to know you’re moving in the right direction.',
|
391
447
|
difficulty: 2,
|
392
448
|
topicType: 'Fitness',
|
393
449
|
habitTime: 'Morning',
|
@@ -395,14 +451,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
395
451
|
frequency: 'Daily',
|
396
452
|
minDaysPerWeek: 7,
|
397
453
|
possibleNotificationDescriptions: [
|
398
|
-
'
|
399
|
-
'
|
400
|
-
'
|
401
|
-
'
|
402
|
-
'
|
454
|
+
'Still dodging the scale?... Ignorance isn’t bliss, it’s FAT. ⚖️',
|
455
|
+
'Afraid of the numbers?... Your gains are just guesses. 📈',
|
456
|
+
'Kings face the truth... Step on the scale. ⚖️',
|
457
|
+
'Precision builds champions... Log your weight now. 📈',
|
458
|
+
'Stat: 40% higher success rate with weight tracking... FACT. ⚖️',
|
459
|
+
'Stat: 20% less overeating from daily weighing... Level UP. 📈',
|
460
|
+
'Challenge: Weigh in 3 days straight. You’re DISCIPLINED. 🏆',
|
461
|
+
'Challenge: Log your weight before breakfast. Future you’s ON POINT. ⏰'
|
403
462
|
]
|
404
463
|
},
|
405
464
|
{
|
465
|
+
id: 15,
|
406
466
|
name: 'Meal prep',
|
407
467
|
description: 'Cook meals in bulk. No excuses for missing protein or eating junk.',
|
408
468
|
difficulty: 3,
|
@@ -412,16 +472,20 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
412
472
|
frequency: 'Daily',
|
413
473
|
minDaysPerWeek: 2,
|
414
474
|
possibleNotificationDescriptions: [
|
415
|
-
'
|
416
|
-
'
|
417
|
-
'
|
418
|
-
'
|
419
|
-
'
|
475
|
+
'Takeout again?... Your body’s a JUNKYARD. 🍱',
|
476
|
+
'Too lazy to cook?... Your muscles are STARVING. 🍳',
|
477
|
+
'Beasts dominate the kitchen... Prep your power. 🍳',
|
478
|
+
'Fuel your empire... Meal prep for gains. 💪',
|
479
|
+
'Stat: 30% savings on food costs with meal prepping... FACT. 🍱',
|
480
|
+
'Stat: 25% more protein intake from prepped meals... Level UP. 💪',
|
481
|
+
'Challenge: Prep 3 meals today. You’re a CHEF. 🏆',
|
482
|
+
'Challenge: Cook a new recipe this week. Future you’s STACKED. 🍳'
|
420
483
|
]
|
421
484
|
}
|
422
485
|
],
|
423
486
|
'Side Hustle': [
|
424
487
|
{
|
488
|
+
id: 16,
|
425
489
|
name: 'Dedicate 2 hours to hustle',
|
426
490
|
description: '2 focused hours on your hustle. No distractions, no excuses.',
|
427
491
|
difficulty: 3,
|
@@ -431,14 +495,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
431
495
|
frequency: 'Daily',
|
432
496
|
minDaysPerWeek: 7,
|
433
497
|
possibleNotificationDescriptions: [
|
434
|
-
'
|
435
|
-
'
|
436
|
-
'
|
437
|
-
'
|
438
|
-
'
|
498
|
+
'NO HUSTLE today?... You’re a BROKE joke. 💸',
|
499
|
+
'SKIPPED your 2 hours?... Keep begging for PENNIES. ⏳',
|
500
|
+
'You’re destined to RISE... Lock in 2 hours. 💼',
|
501
|
+
'Wealth’s knocking TODAY... Answer with effort. 💰',
|
502
|
+
'Stat: 40% income boost from 2 hours daily... FACT. 💸',
|
503
|
+
'Stat: 50% productivity gain from focused work... Level UP. ⏳',
|
504
|
+
'Challenge: Finish one task in 2 hours. You’re a MACHINE. 🏆',
|
505
|
+
'Challenge: No distractions for 120 minutes. Future you’s WEALTHY. 💰'
|
439
506
|
]
|
440
507
|
},
|
441
508
|
{
|
509
|
+
id: 17,
|
442
510
|
name: 'Client outreach',
|
443
511
|
description: 'Contact potential clients or partners.',
|
444
512
|
difficulty: 2,
|
@@ -448,16 +516,20 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
448
516
|
frequency: 'Daily',
|
449
517
|
minDaysPerWeek: 3,
|
450
518
|
possibleNotificationDescriptions: [
|
451
|
-
'
|
452
|
-
'Too
|
453
|
-
'
|
454
|
-
'
|
455
|
-
'
|
519
|
+
'NO OUTREACH yet?... Your hustle’s DEAD quiet. 📞',
|
520
|
+
'Too SHY to pitch?... Stay BROKE forever. 🤐',
|
521
|
+
'You’re wired to CLOSE... Hit up a client. 📞',
|
522
|
+
'Connections FUEL your rise... Make one today. 🤝',
|
523
|
+
'Stat: 35% client acquisition boost from outreach... FACT. 📞',
|
524
|
+
'Stat: 20% conversion rate from cold pitches... Level UP. 🤝',
|
525
|
+
'Challenge: Send 3 outreach messages today. You’re a CLOSER. 🏆',
|
526
|
+
'Challenge: Pitch a new client this week. Future you’s STACKED. 💼'
|
456
527
|
]
|
457
528
|
},
|
458
529
|
{
|
530
|
+
id: 18,
|
459
531
|
name: 'Share your journey',
|
460
|
-
description: 'Social media post, blog, tweet, vlog or message someone.',
|
532
|
+
description: 'Social media post, blog, tweet, vlog, or message someone.',
|
461
533
|
difficulty: 2,
|
462
534
|
topicType: 'Side Hustle',
|
463
535
|
habitTime: 'Evening',
|
@@ -465,14 +537,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
465
537
|
frequency: 'Daily',
|
466
538
|
minDaysPerWeek: 7,
|
467
539
|
possibleNotificationDescriptions: [
|
468
|
-
'
|
469
|
-
'
|
470
|
-
'
|
471
|
-
'
|
472
|
-
'
|
540
|
+
'NO POST today?... Your hustle’s INVISIBLE. 👻',
|
541
|
+
'NOTHING shared?... You’re a LAZY shadow. 😴',
|
542
|
+
'You’re a VOICE... Share your grind, king. 📸',
|
543
|
+
'Future you INSPIRES... Start with today’s post. 🌟',
|
544
|
+
'Stat: 45% engagement boost from journey sharing... FACT. 📸',
|
545
|
+
'Stat: 30% follower growth from consistent posting... Level UP. 🌟',
|
546
|
+
'Challenge: Post one update today. You’re a CREATOR. 🏆',
|
547
|
+
'Challenge: Share a behind-the-scenes moment. Future you’s INFLUENTIAL. 📸'
|
473
548
|
]
|
474
549
|
},
|
475
550
|
{
|
551
|
+
id: 19,
|
476
552
|
name: 'Get real feedback',
|
477
553
|
description: 'Ask a customer or friend what they’d change about your hustle.',
|
478
554
|
difficulty: 3,
|
@@ -482,14 +558,18 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
482
558
|
frequency: 'Daily',
|
483
559
|
minDaysPerWeek: 2,
|
484
560
|
possibleNotificationDescriptions: [
|
485
|
-
'
|
486
|
-
'Too
|
487
|
-
'
|
488
|
-
'
|
489
|
-
'
|
561
|
+
'NO FEEDBACK yet?... Your hustle’s TRASH unseen. 🗑️',
|
562
|
+
'Too SCARED to ask?... Keep failing BLIND. 🤐',
|
563
|
+
'You’re built to GROW... Seek truth, king. 🧠',
|
564
|
+
'Future you is SHARP... Ask for feedback now. 🗣️',
|
565
|
+
'Stat: 40% mistake reduction from feedback loops... FACT. 🧠',
|
566
|
+
'Stat: 30% product quality boost from input... Level UP. 📈',
|
567
|
+
'Challenge: Ask one person for feedback today. You’re WISE. 🏆',
|
568
|
+
'Challenge: Implement one suggestion this week. Future you’s SHARP. 🗣️'
|
490
569
|
]
|
491
570
|
},
|
492
571
|
{
|
572
|
+
id: 20,
|
493
573
|
name: 'Study competitors',
|
494
574
|
description: 'Analyze what your rivals are doing, see what works, what not.',
|
495
575
|
difficulty: 3,
|
@@ -499,11 +579,14 @@ export const habitTypesByTopicType: Record<TopicType, HabitType[]> = {
|
|
499
579
|
frequency: 'Daily',
|
500
580
|
minDaysPerWeek: 3,
|
501
581
|
possibleNotificationDescriptions: [
|
502
|
-
'
|
503
|
-
'
|
504
|
-
'
|
505
|
-
'
|
506
|
-
'
|
582
|
+
'NO COMPETITOR check?... They’re crushing you BLIND. 👀',
|
583
|
+
'SKIPPED studying?... You’re a sitting DUCK. 🦆',
|
584
|
+
'You’re a HUNTER... Study their moves, king. 🕵️♂️',
|
585
|
+
'Future you LEADS... Start with rival intel. 📊',
|
586
|
+
'Stat: 35% strategy boost from competitor analysis... FACT. 🕵️♂️',
|
587
|
+
'Stat: 25% fewer market mistakes from knowing rivals... Level UP. 📊',
|
588
|
+
'Challenge: Analyze one competitor today. You’re a STRATEGIST. 🏆',
|
589
|
+
'Challenge: Find one rival’s weakness. Future you’s AHEAD. 🧠'
|
507
590
|
]
|
508
591
|
}
|
509
592
|
]
|