77use Illuminate \Database \Eloquent \Relations \BelongsTo ;
88
99/**
10- * @property-read \App\Models\EmployeeInfo|null $employeeInfo
10+ * @property int $id
11+ * @property int $employee_info_id
12+ * @property string $start_date
13+ * @property string $end_date
14+ * @property string $rate_type
15+ * @property string $rate
16+ * @property string $contract_type
17+ * @property \Illuminate\Support\Carbon|null $created_at
18+ * @property \Illuminate\Support\Carbon|null $updated_at
19+ * @property-read \App\Models\EmployeeInfo $employeeInfo
1120 * @property-read mixed $duration
12- * @property-read mixed $total_earnings
21+ *
1322 * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract newModelQuery()
1423 * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract newQuery()
1524 * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract query()
25+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereContractType($value)
26+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereCreatedAt($value)
27+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereEmployeeInfoId($value)
28+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereEndDate($value)
29+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereId($value)
30+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereRate($value)
31+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereRateType($value)
32+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereStartDate($value)
33+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Contract whereUpdatedAt($value)
34+ *
1635 * @mixin \Eloquent
1736 */
1837class Contract extends Model
@@ -34,14 +53,6 @@ public function getDurationAttribute()
3453 return Carbon::parse ($ this ->start_date )->diffForHumans ($ this ->end_date );
3554 }
3655
37- /**
38- * Calculate total earnings for the contract based on rate type.
39- */
40- public function getTotalEarningsAttribute ($ monthYear )
41- {
42- return $ this ->rate_type === 'monthly ' ? $ this ->rate : $ this ->rate * Carbon::parse ($ monthYear )->daysInMonth ;
43- }
44-
4556 public function employeeInfo (): BelongsTo
4657 {
4758 return $ this ->belongsTo (EmployeeInfo::class);
0 commit comments