'datetime', 'kilometer' => 'decimal:2', 'pressure_high' => 'decimal:2', 'pressure_low' => 'decimal:2', 'cabin_temperature' => 'decimal:2', ]; /** * Get the transaction associated with the Precheck * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function transaction() { return $this->belongsTo(Transaction::class); } /** * Get the user who performed the precheck * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function precheckBy() { return $this->belongsTo(User::class, 'precheck_by'); } /** * Get the AC condition options * * @return array */ public static function getAcConditionOptions() { return ['kotor', 'rusak', 'baik', 'tidak ada']; } /** * Get the blower condition options * * @return array */ public static function getBlowerConditionOptions() { return ['kotor', 'rusak', 'baik', 'tidak ada']; } /** * Get the evaporator condition options * * @return array */ public static function getEvaporatorConditionOptions() { return ['kotor', 'berlendir', 'bocor', 'bersih']; } /** * Get the compressor condition options * * @return array */ public static function getCompressorConditionOptions() { return ['kotor', 'rusak', 'baik', 'tidak ada']; } /** * Scope to filter by transaction * * @param \Illuminate\Database\Eloquent\Builder $query * @param int $transactionId * @return \Illuminate\Database\Eloquent\Builder */ public function scopeByTransaction($query, $transactionId) { return $query->where('transaction_id', $transactionId); } /** * Scope to filter by user who performed precheck * * @param \Illuminate\Database\Eloquent\Builder $query * @param int $userId * @return \Illuminate\Database\Eloquent\Builder */ public function scopeByUser($query, $userId) { return $query->where('precheck_by', $userId); } /** * Scope to filter by date range * * @param \Illuminate\Database\Eloquent\Builder $query * @param string $startDate * @param string $endDate * @return \Illuminate\Database\Eloquent\Builder */ public function scopeByDateRange($query, $startDate, $endDate) { return $query->whereBetween('precheck_at', [$startDate, $endDate]); } }