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