<?php

// @formatter:off
// phpcs:ignoreFile
/**
 * A helper file for your Eloquent Models
 * Copy the phpDocs from this file to the correct Model,
 * And remove them from this file, to prevent double declarations.
 *
 * @author Barry vd. Heuvel <barryvdh@gmail.com>
 */


namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property int $user_id
 * @property string $bank_name
 * @property string $account_number
 * @property string $account_holder_name
 * @property string $status
 * @property string|null $rejection_reason
 * @property \Illuminate\Support\Carbon|null $verified_at
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \App\Models\User $user
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Withdrawal> $withdrawals
 * @property-read int|null $withdrawals_count
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereAccountHolderName($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereAccountNumber($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereBankName($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereRejectionReason($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereUpdatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereUserId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|BankAccount whereVerifiedAt($value)
 */
	class BankAccount extends \Eloquent {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property string|null $transaction_code
 * @property int $customer_id
 * @property int $tailor_id
 * @property \Illuminate\Support\Carbon $appointment_date
 * @property \Illuminate\Support\Carbon $appointment_time
 * @property string $service_type
 * @property string $category
 * @property string|null $design_photo
 * @property string|null $notes
 * @property string $status
 * @property numeric|null $total_price
 * @property string $payment_status
 * @property \Illuminate\Support\Carbon|null $completion_date
 * @property array<array-key, mixed>|null $measurements
 * @property array<array-key, mixed>|null $repair_details
 * @property string|null $repair_photo
 * @property string|null $repair_notes
 * @property string|null $completion_photo
 * @property string|null $completion_notes
 * @property \Illuminate\Support\Carbon|null $accepted_at
 * @property \Illuminate\Support\Carbon|null $rejected_at
 * @property \Illuminate\Support\Carbon|null $completed_at
 * @property \Illuminate\Support\Carbon|null $pickup_date
 * @property string|null $rejection_reason
 * @property string|null $payment_method
 * @property string|null $midtrans_snap_token
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \App\Models\User $customer
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\TailorRating> $ratings
 * @property-read int|null $ratings_count
 * @property-read \App\Models\User $tailor
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereAcceptedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereAppointmentDate($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereAppointmentTime($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereCategory($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereCompletedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereCompletionDate($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereCompletionNotes($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereCompletionPhoto($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereCustomerId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereDesignPhoto($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereMeasurements($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereMidtransSnapToken($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereNotes($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking wherePaymentMethod($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking wherePaymentStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking wherePickupDate($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereRejectedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereRejectionReason($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereRepairDetails($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereRepairNotes($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereRepairPhoto($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereServiceType($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereTailorId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereTotalPrice($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereTransactionCode($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Booking whereUpdatedAt($value)
 */
	class Booking extends \Eloquent {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property int $user_id
 * @property string $photo
 * @property string|null $title
 * @property string|null $description
 * @property string|null $category
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \App\Models\User $tailor
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery whereCategory($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery whereDescription($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery wherePhoto($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery whereTitle($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery whereUpdatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorGallery whereUserId($value)
 */
	class TailorGallery extends \Eloquent {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property int $booking_id
 * @property int $customer_id
 * @property int $tailor_id
 * @property numeric $rating
 * @property string|null $review
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \App\Models\Booking $booking
 * @property-read \App\Models\User $customer
 * @property-read \App\Models\User $tailor
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating whereBookingId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating whereCustomerId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating whereRating($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating whereReview($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating whereTailorId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorRating whereUpdatedAt($value)
 */
	class TailorRating extends \Eloquent {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property int $user_id
 * @property string $name
 * @property string $description
 * @property numeric $price
 * @property string $category
 * @property int $estimated_days
 * @property bool $is_available
 * @property string|null $service_photo
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \App\Models\User $tailor
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereCategory($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereDescription($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereEstimatedDays($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereIsAvailable($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereName($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService wherePrice($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereServicePhoto($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereUpdatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorService whereUserId($value)
 */
	class TailorService extends \Eloquent {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property string $name
 * @property string $category
 * @property string|null $icon
 * @property string|null $photo
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\User> $tailors
 * @property-read int|null $tailors_count
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization whereCategory($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization whereIcon($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization whereName($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization wherePhoto($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|TailorSpecialization whereUpdatedAt($value)
 */
	class TailorSpecialization extends \Eloquent {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property string $name
 * @property string $email
 * @property string $password
 * @property string $role
 * @property string|null $phone_number
 * @property string|null $address
 * @property float|null $latitude
 * @property float|null $longitude
 * @property string|null $shop_description
 * @property string|null $profile_photo
 * @property \Illuminate\Support\Carbon|null $email_verified_at
 * @property string|null $remember_token
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\BankAccount> $bankAccounts
 * @property-read int|null $bank_accounts_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Booking> $bookings
 * @property-read int|null $bookings_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Booking> $customerBookings
 * @property-read int|null $customer_bookings_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\TailorGallery> $gallery
 * @property-read int|null $gallery_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\TailorRating> $givenRatings
 * @property-read int|null $given_ratings_count
 * @property-read \Illuminate\Notifications\DatabaseNotificationCollection<int, \Illuminate\Notifications\DatabaseNotification> $notifications
 * @property-read int|null $notifications_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\TailorSpecialization> $preferredSpecializations
 * @property-read int|null $preferred_specializations_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\TailorRating> $ratings
 * @property-read int|null $ratings_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\TailorService> $services
 * @property-read int|null $services_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\TailorSpecialization> $specializations
 * @property-read int|null $specializations_count
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \Laravel\Sanctum\PersonalAccessToken> $tokens
 * @property-read int|null $tokens_count
 * @property-read \App\Models\Wallet|null $wallet
 * @method static \Database\Factories\UserFactory factory($count = null, $state = [])
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereAddress($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereEmail($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereEmailVerifiedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereLatitude($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereLongitude($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereName($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User wherePassword($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User wherePhoneNumber($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereProfilePhoto($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereRememberToken($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereRole($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereShopDescription($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|User whereUpdatedAt($value)
 */
	class User extends \Eloquent implements \Illuminate\Contracts\Auth\MustVerifyEmail {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property int $user_id
 * @property float $balance
 * @property string $status
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\WalletTransaction> $transactions
 * @property-read int|null $transactions_count
 * @property-read \App\Models\User $user
 * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Withdrawal> $withdrawals
 * @property-read int|null $withdrawals_count
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet whereBalance($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet whereStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet whereUpdatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Wallet whereUserId($value)
 */
	class Wallet extends \Eloquent {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property int $wallet_id
 * @property int|null $booking_id
 * @property string $type
 * @property float $amount
 * @property string $description
 * @property string $status
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \App\Models\Booking|null $booking
 * @property-read \App\Models\Wallet $wallet
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereAmount($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereBookingId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereDescription($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereType($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereUpdatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|WalletTransaction whereWalletId($value)
 */
	class WalletTransaction extends \Eloquent {}
}

namespace App\Models{
/**
 * 
 *
 * @property int $id
 * @property int $wallet_id
 * @property int $bank_account_id
 * @property float $amount
 * @property string $status
 * @property string|null $rejection_reason
 * @property string|null $proof_of_payment
 * @property \Illuminate\Support\Carbon|null $processed_at
 * @property \Illuminate\Support\Carbon|null $created_at
 * @property \Illuminate\Support\Carbon|null $updated_at
 * @property-read \App\Models\BankAccount $bankAccount
 * @property-read \App\Models\Wallet $wallet
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal query()
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereAmount($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereBankAccountId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereProcessedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereProofOfPayment($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereRejectionReason($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereStatus($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereUpdatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder<static>|Withdrawal whereWalletId($value)
 */
	class Withdrawal extends \Eloquent {}
}

