Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
7.69% covered (danger)
7.69%
5 / 65
7.69% covered (danger)
7.69%
5 / 65
CRAP
0.00% covered (danger)
0.00%
0 / 1
UserInfo
7.69% covered (danger)
7.69%
5 / 65
7.69% covered (danger)
7.69%
5 / 65
3492.11
0.00% covered (danger)
0.00%
0 / 1
 formatFloatValue
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTotalTimeSavedByFlymsgByUserAttribute
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTotalCostSavingsByFlymsgByUserAttribute
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getTotalTimeSaved___January2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___February2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___March2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___April2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___May2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___June2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___July2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___August2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___September2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___October2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___November2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___December2022Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___January2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___February2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___March2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___April2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___May2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___June2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___July2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___August2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___September2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___October2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___November2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___December2023Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___January2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___February2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___March2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___April2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___May2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___June2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___July2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___August2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___September2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___October2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___November2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___December2024Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___January2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___February2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___March2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___April2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___May2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___June2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___July2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___August2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___September2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___October2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___November2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved___December2025Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__January2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__February2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__March2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__April2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__May2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__June2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__July2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__August2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__September2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__October2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__November2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getTotalTimeSaved__December2026Attribute
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setEmailAttribute
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getEmailAttribute
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace App\Http\Models;
4
5use App\Observers\UserInfoObserver;
6use Illuminate\Database\Eloquent\Attributes\ObservedBy;
7use Illuminate\Database\Eloquent\Factories\HasFactory;
8use Illuminate\Notifications\Notifiable;
9
10#[ObservedBy([UserInfoObserver::class])]
11class UserInfo extends Moloquent
12{
13    use HasFactory, Notifiable;
14
15    protected $table = 'user_info';
16
17    protected $fillable = [
18        'first_name',
19        'last_name',
20        'full_name',
21        'email',
22        'email_verified_at',
23        'job_role',
24        'department',
25        'job_title',
26        'company',
27        'phone',
28        'account_creation_date',
29        'linkedin_url',
30        'fly_grammar_default_language',
31        'user_type',
32        'user_id',
33        'typed_words_per_minute',
34        'wage_per_hour',
35        'email_used_for_login',
36        'signin_source',
37        'signup_source',
38        'last_login',
39        'last_login_fly_learning',
40        'status',
41        'status_date',
42        'user_created_at',
43        'user_updated_at',
44        'company_id',
45        'company_name',
46        'avatar',
47        'hubspot_id',
48        'stripe_id',
49        'instancy_id',
50        'group_id',
51        'group_name',
52        'subgroup_id',
53        'subgroup_name',
54        'role_ids',
55        'role_names',
56        'is_invite',
57        'email_domain',
58        'email_domain_count',
59        'is_any_extension_installed',
60        'is_any_extension_uninstalled',
61        'signed_into_flymsg_extension',
62        'which_browser_has_an_extension_been_installed_on',
63        'last_browser_used',
64        'total_time_saved_by_flymsg_by_user',
65        'total_time_saved_summarized_monthly_by_flymsg_by_user',
66        'total_cost_savings_by_flymsg_by_user',
67        'total_cost_savings_summarized_monthly_by_flymsg_by_user',
68        'total___of_characters_typed_by_flymsg_by_user',
69        'total___of_characters_typed_monthly_by_flymsg_by_user',
70        'last_date_user_used_a_flycut',
71        'number_of_categories_created_last_date',
72        'number_of_categories_created_count',
73        'number_of_flycuts_created_last_date',
74        'number_of_flycuts_created_count',
75        'number_of_flyplates_in_flycuts_last_date',
76        'number_of_flyplates_in_flycuts_count',
77        'clicked_help_last_date',
78        'clicked_help_count',
79        'clicked_settings_last_date',
80        'clicked_settings_count',
81        'clicked_download_extension_last_date',
82        'clicked_download_extension_count',
83        'clicked_contact_sales_last_date',
84        'clicked_contact_sales_count',
85        'df_stripe_customer_id',
86        'subscription_owner',
87        'billing_address_line_1',
88        'billing_address_line_2',
89        'billing_city',
90        'billing_state',
91        'billing_zip',
92        'billing_country',
93        'number_of_completed_payments',
94        'number_of_expected_payments',
95        'payment_method',
96        'flymsg_last_product_purchased',
97        'last_total_invoice_amount',
98        'flymsg_total_sales',
99        'coupon_name',
100        'coupon_code',
101        'coupon_type',
102        'duration',
103        'coupon_value__discount_',
104        'coupon_redemption_limits',
105        'productivity_problems',
106        'type_here_how_flymsg_will_help_you___',
107        'flymsg_use_case',
108        'sign_out_reason',
109        'sign_out_text',
110        'subscription_type',
111        'plan_id',
112        'plan_name',
113        'is_chrome_extension_installed',
114        'is_chrome_extension_uninstalled',
115        'flymsg_chrome_extension_installed__date_',
116        'flymsg_chrome_extension_uninstalled__date_',
117        'flymsg_extension_version_for_chrome',
118        'is_edge_extension_installed',
119        'is_edge_extension_uninstalled',
120        'flymsg_edge_extension_installed__date_',
121        'flymsg_edge_extension_uninstalled__date_',
122        'flymsg_extension_version_for_edge',
123        'flymsg_freemium_subscription_status',
124        'freemium_subscription_start_date',
125        'freemium_subscription_status_updated_on',
126        'freemium_subscription_churn_date',
127        'freemium_cancel_subscription_date',
128        'starter_payment_status',
129        'flymsg_starter_subscription_status',
130        'starter_subscription_status_updated_on',
131        'starter_subscription_start_date',
132        'flymsg_starter_subscription_frequency',
133        'starter_subscription_expiration_date',
134        'starter_cancel_subscription_date',
135        'starter_subscription_churn_date',
136        'flymsg_starter_subscription_monthly_recurring_revenue',
137        'flymsg_starter_subscription_annual_recurring_revenue',
138        'growth_payment_status',
139        'flymsg_growth_subscription_status',
140        'growth_subscription_status_updated_on',
141        'growth_subscription_start_date',
142        'flymsg_growth_subscription_frequency',
143        'growth_subscription_expiration_date',
144        'growth_cancel_subscription_date',
145        'growth_subscription_churn_date',
146        'flymsg_growth_subscription_monthly_recurring_revenue',
147        'growth_subscription_annual_recurring_revenue',
148        'professional_payment_status',
149        'professional_subscription_status',
150        'trail_period_start_date',
151        'trail_period_end_date',
152        'trail_period_canceled_date',
153        'professional_subscription_status_updated_on',
154        'professional_subscription_start_date',
155        'professional_subscription_frequency',
156        'professional_subscription_expiration_date',
157        'professional_cancel_subscription_date',
158        'professional_subscription_churn_date',
159        'professional_subscription_monthly_recurring_revenue',
160        'professional_subscription_annual_recurring_revenue',
161        'sales_pro_teams_subscription_status',
162        'sales_pro_teams_subscription_status_updated_on',
163        'sales_pro_teams_subscription_start_date',
164        'sales_pro_teams_subscription_frequency',
165        'sales_pro_teams_subscription_expiration_date',
166        'sales_pro_teams_cancel_subscription_date',
167        'sales_pro_teams_subscription_churn_date',
168        'sales_pro_teams_subscription_plan_type',
169        'sales_pro_teams_user_type',
170        'deleted_at',
171        'created_at',
172        'updated_at',
173        'total___of_times_flycut_used__count_',
174        'total___of_times_flyposts_is_used_summarized_monthly_by_user__count_',
175        'last_date_user_used_flyposts',
176        'total___of_times_flyposts_used__count_',
177        'total___of_times_flyengage_is_used_summarized_monthly_by_user',
178        'last_date_user_used_flyengage',
179        'total___of_times_flyengage_used__count_',
180
181        'total___of_times_sentence_rewrite_is_used_summarized_monthly_by_user',
182        'last_date_user_used_sentence_rewrite',
183        'total___of_times_sentence_rewrite_used__count_',
184        'total___of_times_paragraph_rewrite_is_used_summarized_monthly_by_user',
185        'last_date_user_used_paragraph_rewrite',
186        'total___of_times_paragraph_rewrite_used__count_',
187
188        'last_date_user_used_flygrammar',
189        'total___of_times_flygrammar_is_used_summarized_monthly_by_user__count_',
190        'total___of_times_flygrammar_used__count_',
191        'total___of_times_flygrammar_accepted_used__count_',
192        'total___of_times_flygrammar_autocorrect_used__count_',
193
194        'total___of_times_flygrammar_is_used_summarized_monthly_by_user',
195        'total___of_times_flygrammar_accepted_is_used_summarized_monthly_by_user',
196        'total___of_times_flygrammar_autocorrect_is_used_summarized_monthly_by_user',
197
198        // monthly manual fields for 2022
199        'total_time_saved___january_2022',
200        'total_time_saved___february_2022',
201        'total_time_saved___march_2022',
202        'total_time_saved___april_2022',
203        'total_time_saved___may_2022',
204        'total_time_saved___june_2022',
205        'total_time_saved___july_2022',
206        'total_time_saved___august_2022',
207        'total_time_saved___september_2022',
208        'total_time_saved___october_2022',
209        'total_time_saved___november_2022',
210        'total_time_saved___december_2022',
211        'total_cost_savings___january_2022',
212        'total_cost_savings___february_2022',
213        'total_cost_savings___march_2022',
214        'total_cost_savings___april_2022',
215        'total_cost_savings___may_2022',
216        'total_cost_savings___june_2022',
217        'total_cost_savings___july_2022',
218        'total_cost_savings___august_2022',
219        'total_cost_savings___september_2022',
220        'total_cost_savings___october_2022',
221        'total_cost_savings___november_2022',
222        'total_cost_savings___december_2022',
223        'of_characters_typed___january_2022',
224        'of_characters_typed___february_2022',
225        'of_characters_typed___march_2022',
226        'of_characters_typed___april_2022',
227        'of_characters_typed___may_2022',
228        'of_characters_typed___june_2022',
229        'of_characters_typed___july_2022',
230        'of_characters_typed___august_2022',
231        'of_characters_typed___september_2022',
232        'of_characters_typed___october_2022',
233        'of_characters_typed___november_2022',
234        'of_characters_typed___december_2022',
235
236        // monthly manual fields for 2023
237        'total_time_saved___january_2023',
238        'total_time_saved___february_2023',
239        'total_time_saved___march_2023',
240        'total_time_saved___april_2023',
241        'total_time_saved___may_2023',
242        'total_time_saved___june_2023',
243        'total_time_saved___july_2023',
244        'total_time_saved___august_2023',
245        'total_time_saved___september_2023',
246        'total_time_saved___october_2023',
247        'total_time_saved___november_2023',
248        'total_time_saved___december_2023',
249        'total_cost_savings___january_2023',
250        'total_cost_savings___february_2023',
251        'total_cost_savings___march_2023',
252        'total_cost_savings___april_2023',
253        'total_cost_savings___may_2023',
254        'total_cost_savings___june_2023',
255        'total_cost_savings___july_2023',
256        'total_cost_savings___august_2023',
257        'total_cost_savings___september_2023',
258        'total_cost_savings___october_2023',
259        'total_cost_savings___november_2023',
260        'total_cost_savings___december_2023',
261        'of_characters_typed___january_2023',
262        'of_characters_typed___february_2023',
263        'of_characters_typed___march_2023',
264        'of_characters_typed___april_2023',
265        'of_characters_typed___may_2023',
266        'of_characters_typed___june_2023',
267        'of_characters_typed___july_2023',
268        'of_characters_typed___august_2023',
269        'of_characters_typed___september_2023',
270        'of_characters_typed___october_2023',
271        'of_characters_typed___november_2023',
272        'of_characters_typed___december_2023',
273
274        // monthly manual fields for 2024
275        'total_time_saved___january_2024',
276        'total_time_saved___february_2024',
277        'total_time_saved___march_2024',
278        'total_time_saved___april_2024',
279        'total_time_saved___may_2024',
280        'total_time_saved___june_2024',
281        'total_time_saved___july_2024',
282        'total_time_saved___august_2024',
283        'total_time_saved___september_2024',
284        'total_time_saved___october_2024',
285        'total_time_saved___november_2024',
286        'total_time_saved___december_2024',
287        'total_cost_savings___january_2024',
288        'total_cost_savings___february_2024',
289        'total_cost_savings___march_2024',
290        'total_cost_savings___april_2024',
291        'total_cost_savings___may_2024',
292        'total_cost_savings___june_2024',
293        'total_cost_savings___july_2024',
294        'total_cost_savings___august_2024',
295        'total_cost_savings___september_2024',
296        'total_cost_savings___october_2024',
297        'total_cost_savings___november_2024',
298        'total_cost_savings___december_2024',
299        'of_characters_typed___january_2024',
300        'of_characters_typed___february_2024',
301        'of_characters_typed___march_2024',
302        'of_characters_typed___april_2024',
303        'of_characters_typed___may_2024',
304        'of_characters_typed___june_2024',
305        'of_characters_typed___july_2024',
306        'of_characters_typed___august_2024',
307        'of_characters_typed___september_2024',
308        'of_characters_typed___october_2024',
309        'of_characters_typed___november_2024',
310        'of_characters_typed___december_2024',
311
312        // monthly manual fields for 2025
313        'total_time_saved___january_2025',
314        'total_time_saved___february_2025',
315        'total_time_saved___march_2025',
316        'total_time_saved___april_2025',
317        'total_time_saved___may_2025',
318        'total_time_saved___june_2025',
319        'total_time_saved___july_2025',
320        'total_time_saved___august_2025',
321        'total_time_saved___september_2025',
322        'total_time_saved___october_2025',
323        'total_time_saved___november_2025',
324        'total_time_saved___december_2025',
325        'total_cost_savings___january_2025',
326        'total_cost_savings___february_2025',
327        'total_cost_savings___march_2025',
328        'total_cost_savings___april_2025',
329        'total_cost_savings___may_2025',
330        'total_cost_savings___june_2025',
331        'total_cost_savings___july_2025',
332        'total_cost_savings___august_2025',
333        'total_cost_savings___september_2025',
334        'total_cost_savings___october_2025',
335        'total_cost_savings___november_2025',
336        'total_cost_savings___december_2025',
337        'of_characters_typed___january_2025',
338        'of_characters_typed___february_2025',
339        'of_characters_typed___march_2025',
340        'of_characters_typed___april_2025',
341        'of_characters_typed___may_2025',
342        'of_characters_typed___june_2025',
343        'of_characters_typed___july_2025',
344        'of_characters_typed___august_2025',
345        'of_characters_typed___september_2025',
346        'of_characters_typed___october_2025',
347        'of_characters_typed___november_2025',
348        'of_characters_typed___december_2025',
349        // monthly manual fields for 2026
350        'total_time_saved__january_2026',
351        'total_time_saved__february_2026',
352        'total_time_saved__march_2026',
353        'total_time_saved__april_2026',
354        'total_time_saved__may_2026',
355        'total_time_saved__june_2026',
356        'total_time_saved__july_2026',
357        'total_time_saved__august_2026',
358        'total_time_saved__september_2026',
359        'total_time_saved__october_2026',
360        'total_time_saved__november_2026',
361        'total_time_saved__december_2026',
362        'total_cost_savings__january_2026',
363        'total_cost_savings__february_2026',
364        'total_cost_savings__march_2026',
365        'total_cost_savings__april_2026',
366        'total_cost_savings__may_2026',
367        'total_cost_savings__june_2026',
368        'total_cost_savings__july_2026',
369        'total_cost_savings__august_2026',
370        'total_cost_savings__september_2026',
371        'total_cost_savings__october_2026',
372        'total_cost_savings__november_2026',
373        'total_cost_savings__december_2026',
374        'of_characters_typed__january_2026',
375        'of_characters_typed__february_2026',
376        'of_characters_typed__march_2026',
377        'of_characters_typed__april_2026',
378        'of_characters_typed__may_2026',
379        'of_characters_typed__june_2026',
380        'of_characters_typed__july_2026',
381        'of_characters_typed__august_2026',
382        'of_characters_typed__september_2026',
383        'of_characters_typed__october_2026',
384        'of_characters_typed__november_2026',
385        'of_characters_typed__december_2026',
386        'is_invitation',
387        'is_beta',
388        'developer_mode',
389    ];
390
391    private function formatFloatValue($value)
392    {
393        return number_format($value, 10, '.', '');
394    }
395
396    public function getTotalTimeSavedByFlymsgByUserAttribute($value)
397    {
398        return $this->formatFloatValue($value);
399    }
400
401    public function getTotalCostSavingsByFlymsgByUserAttribute($value)
402    {
403        return $this->formatFloatValue($value);
404    }
405
406    public function getTotalTimeSaved___January2022Attribute($value)
407    {
408        return $this->formatFloatValue($value);
409    }
410
411    public function getTotalTimeSaved___February2022Attribute($value)
412    {
413        return $this->formatFloatValue($value);
414    }
415
416    public function getTotalTimeSaved___March2022Attribute($value)
417    {
418        return $this->formatFloatValue($value);
419    }
420
421    public function getTotalTimeSaved___April2022Attribute($value)
422    {
423        return $this->formatFloatValue($value);
424    }
425
426    public function getTotalTimeSaved___May2022Attribute($value)
427    {
428        return $this->formatFloatValue($value);
429    }
430
431    public function getTotalTimeSaved___June2022Attribute($value)
432    {
433        return $this->formatFloatValue($value);
434    }
435
436    public function getTotalTimeSaved___July2022Attribute($value)
437    {
438        return $this->formatFloatValue($value);
439    }
440
441    public function getTotalTimeSaved___August2022Attribute($value)
442    {
443        return $this->formatFloatValue($value);
444    }
445
446    public function getTotalTimeSaved___September2022Attribute($value)
447    {
448        return $this->formatFloatValue($value);
449    }
450
451    public function getTotalTimeSaved___October2022Attribute($value)
452    {
453        return $this->formatFloatValue($value);
454    }
455
456    public function getTotalTimeSaved___November2022Attribute($value)
457    {
458        return $this->formatFloatValue($value);
459    }
460
461    public function getTotalTimeSaved___December2022Attribute($value)
462    {
463        return $this->formatFloatValue($value);
464    }
465
466    public function getTotalTimeSaved___January2023Attribute($value)
467    {
468        return $this->formatFloatValue($value);
469    }
470
471    public function getTotalTimeSaved___February2023Attribute($value)
472    {
473        return $this->formatFloatValue($value);
474    }
475
476    public function getTotalTimeSaved___March2023Attribute($value)
477    {
478        return $this->formatFloatValue($value);
479    }
480
481    public function getTotalTimeSaved___April2023Attribute($value)
482    {
483        return $this->formatFloatValue($value);
484    }
485
486    public function getTotalTimeSaved___May2023Attribute($value)
487    {
488        return $this->formatFloatValue($value);
489    }
490
491    public function getTotalTimeSaved___June2023Attribute($value)
492    {
493        return $this->formatFloatValue($value);
494    }
495
496    public function getTotalTimeSaved___July2023Attribute($value)
497    {
498        return $this->formatFloatValue($value);
499    }
500
501    public function getTotalTimeSaved___August2023Attribute($value)
502    {
503        return $this->formatFloatValue($value);
504    }
505
506    public function getTotalTimeSaved___September2023Attribute($value)
507    {
508        return $this->formatFloatValue($value);
509    }
510
511    public function getTotalTimeSaved___October2023Attribute($value)
512    {
513        return $this->formatFloatValue($value);
514    }
515
516    public function getTotalTimeSaved___November2023Attribute($value)
517    {
518        return $this->formatFloatValue($value);
519    }
520
521    public function getTotalTimeSaved___December2023Attribute($value)
522    {
523        return $this->formatFloatValue($value);
524    }
525
526    public function getTotalTimeSaved___January2024Attribute($value)
527    {
528        return $this->formatFloatValue($value);
529    }
530
531    public function getTotalTimeSaved___February2024Attribute($value)
532    {
533        return $this->formatFloatValue($value);
534    }
535
536    public function getTotalTimeSaved___March2024Attribute($value)
537    {
538        return $this->formatFloatValue($value);
539    }
540
541    public function getTotalTimeSaved___April2024Attribute($value)
542    {
543        return $this->formatFloatValue($value);
544    }
545
546    public function getTotalTimeSaved___May2024Attribute($value)
547    {
548        return $this->formatFloatValue($value);
549    }
550
551    public function getTotalTimeSaved___June2024Attribute($value)
552    {
553        return $this->formatFloatValue($value);
554    }
555
556    public function getTotalTimeSaved___July2024Attribute($value)
557    {
558        return $this->formatFloatValue($value);
559    }
560
561    public function getTotalTimeSaved___August2024Attribute($value)
562    {
563        return $this->formatFloatValue($value);
564    }
565
566    public function getTotalTimeSaved___September2024Attribute($value)
567    {
568        return $this->formatFloatValue($value);
569    }
570
571    public function getTotalTimeSaved___October2024Attribute($value)
572    {
573        return $this->formatFloatValue($value);
574    }
575
576    public function getTotalTimeSaved___November2024Attribute($value)
577    {
578        return $this->formatFloatValue($value);
579    }
580
581    public function getTotalTimeSaved___December2024Attribute($value)
582    {
583        return $this->formatFloatValue($value);
584    }
585
586    public function getTotalTimeSaved___January2025Attribute($value)
587    {
588        return $this->formatFloatValue($value);
589    }
590
591    public function getTotalTimeSaved___February2025Attribute($value)
592    {
593        return $this->formatFloatValue($value);
594    }
595
596    public function getTotalTimeSaved___March2025Attribute($value)
597    {
598        return $this->formatFloatValue($value);
599    }
600
601    public function getTotalTimeSaved___April2025Attribute($value)
602    {
603        return $this->formatFloatValue($value);
604    }
605
606    public function getTotalTimeSaved___May2025Attribute($value)
607    {
608        return $this->formatFloatValue($value);
609    }
610
611    public function getTotalTimeSaved___June2025Attribute($value)
612    {
613        return $this->formatFloatValue($value);
614    }
615
616    public function getTotalTimeSaved___July2025Attribute($value)
617    {
618        return $this->formatFloatValue($value);
619    }
620
621    public function getTotalTimeSaved___August2025Attribute($value)
622    {
623        return $this->formatFloatValue($value);
624    }
625
626    public function getTotalTimeSaved___September2025Attribute($value)
627    {
628        return $this->formatFloatValue($value);
629    }
630
631    public function getTotalTimeSaved___October2025Attribute($value)
632    {
633        return $this->formatFloatValue($value);
634    }
635
636    public function getTotalTimeSaved___November2025Attribute($value)
637    {
638        return $this->formatFloatValue($value);
639    }
640
641    public function getTotalTimeSaved___December2025Attribute($value)
642    {
643        return $this->formatFloatValue($value);
644    }
645
646    public function getTotalTimeSaved__January2026Attribute($value)
647    {
648        return $this->formatFloatValue($value);
649    }
650
651    public function getTotalTimeSaved__February2026Attribute($value)
652    {
653        return $this->formatFloatValue($value);
654    }
655
656    public function getTotalTimeSaved__March2026Attribute($value)
657    {
658        return $this->formatFloatValue($value);
659    }
660
661    public function getTotalTimeSaved__April2026Attribute($value)
662    {
663        return $this->formatFloatValue($value);
664    }
665
666    public function getTotalTimeSaved__May2026Attribute($value)
667    {
668        return $this->formatFloatValue($value);
669    }
670
671    public function getTotalTimeSaved__June2026Attribute($value)
672    {
673        return $this->formatFloatValue($value);
674    }
675
676    public function getTotalTimeSaved__July2026Attribute($value)
677    {
678        return $this->formatFloatValue($value);
679    }
680
681    public function getTotalTimeSaved__August2026Attribute($value)
682    {
683        return $this->formatFloatValue($value);
684    }
685
686    public function getTotalTimeSaved__September2026Attribute($value)
687    {
688        return $this->formatFloatValue($value);
689    }
690
691    public function getTotalTimeSaved__October2026Attribute($value)
692    {
693        return $this->formatFloatValue($value);
694    }
695
696    public function getTotalTimeSaved__November2026Attribute($value)
697    {
698        return $this->formatFloatValue($value);
699    }
700
701    public function getTotalTimeSaved__December2026Attribute($value)
702    {
703        return $this->formatFloatValue($value);
704    }
705
706    public function setEmailAttribute(string $value): void
707    {
708        $this->attributes['email'] = strtolower($value);
709    }
710
711    public function getEmailAttribute(?string $value): ?string
712    {
713        return $value ? strtolower($value) : null;
714    }
715}