<?php //1f6376b0c289ebe942ff312ba61b1c2d
/** @noinspection all */

namespace LaravelIdea\Helper\App\Model\Product {

    use App\Model\Product\ProductAttribute;
    use App\Model\Product\ProductDocument;
    use App\Model\Product\ProductOffer;
    use App\Model\Product\ProductPhoto;
    use Illuminate\Contracts\Support\Arrayable;
    use Illuminate\Pagination\LengthAwarePaginator;
    use Illuminate\Pagination\Paginator;
    use LaravelIdea\Helper\_BaseBuilder;
    use LaravelIdea\Helper\_BaseCollection;
    
    /**
     * @method ProductAttribute|$this shift()
     * @method ProductAttribute|$this pop()
     * @method ProductAttribute|null get($key, $default = null)
     * @method ProductAttribute|null pull($key, $default = null)
     * @method ProductAttribute|null first(callable $callback = null, $default = null)
     * @method ProductAttribute|null firstWhere(string $key, $operator = null, $value = null)
     * @method ProductAttribute|null find($key, $default = null)
     * @method ProductAttribute[] all()
     * @method ProductAttribute|null last(callable $callback = null, $default = null)
     * @method ProductAttribute|$this random(int|null $number = null)
     */
    class _IH_ProductAttribute_C extends _BaseCollection {
        /**
         * @param int $size
         * @return ProductAttribute[][]
         */
        public function chunk($size)
        {
            return [];
        }
    }
    
    /**
     * @method _IH_ProductAttribute_QB whereId($value)
     * @method _IH_ProductAttribute_QB whereAttributeId($value)
     * @method _IH_ProductAttribute_QB whereProductId($value)
     * @method _IH_ProductAttribute_QB whereAttributeValueId($value)
     * @method _IH_ProductAttribute_QB whereValue($value)
     * @method ProductAttribute create(array $attributes = [])
     * @method _IH_ProductAttribute_C|ProductAttribute[] cursor()
     * @method ProductAttribute|null|_IH_ProductAttribute_C|ProductAttribute[] find($id, array $columns = ['*'])
     * @method _IH_ProductAttribute_C|ProductAttribute[] findMany(array|Arrayable $ids, array $columns = ['*'])
     * @method ProductAttribute|_IH_ProductAttribute_C|ProductAttribute[] findOrFail($id, array $columns = ['*'])
     * @method ProductAttribute|_IH_ProductAttribute_C|ProductAttribute[] findOrNew($id, array $columns = ['*'])
     * @method ProductAttribute first(array|string $columns = ['*'])
     * @method ProductAttribute firstOr(array|\Closure $columns = ['*'], \Closure $callback = null)
     * @method ProductAttribute firstOrCreate(array $attributes, array $values = [])
     * @method ProductAttribute firstOrFail(array $columns = ['*'])
     * @method ProductAttribute firstOrNew(array $attributes = [], array $values = [])
     * @method ProductAttribute firstWhere(array|\Closure|string $column, $operator = null, $value = null, string $boolean = 'and')
     * @method ProductAttribute forceCreate(array $attributes)
     * @method _IH_ProductAttribute_C|ProductAttribute[] fromQuery(string $query, array $bindings = [])
     * @method _IH_ProductAttribute_C|ProductAttribute[] get(array|string $columns = ['*'])
     * @method ProductAttribute getModel()
     * @method ProductAttribute[] getModels(array|string $columns = ['*'])
     * @method _IH_ProductAttribute_C|ProductAttribute[] hydrate(array $items)
     * @method ProductAttribute make(array $attributes = [])
     * @method ProductAttribute newModelInstance(array $attributes = [])
     * @method LengthAwarePaginator|ProductAttribute[]|_IH_ProductAttribute_C paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
     * @method Paginator|ProductAttribute[]|_IH_ProductAttribute_C simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
     * @method ProductAttribute updateOrCreate(array $attributes, array $values = [])
     */
    class _IH_ProductAttribute_QB extends _BaseBuilder {}
    
    /**
     * @method ProductDocument|$this shift()
     * @method ProductDocument|$this pop()
     * @method ProductDocument|null get($key, $default = null)
     * @method ProductDocument|null pull($key, $default = null)
     * @method ProductDocument|null first(callable $callback = null, $default = null)
     * @method ProductDocument|null firstWhere(string $key, $operator = null, $value = null)
     * @method ProductDocument|null find($key, $default = null)
     * @method ProductDocument[] all()
     * @method ProductDocument|null last(callable $callback = null, $default = null)
     * @method ProductDocument|$this random(int|null $number = null)
     */
    class _IH_ProductDocument_C extends _BaseCollection {
        /**
         * @param int $size
         * @return ProductDocument[][]
         */
        public function chunk($size)
        {
            return [];
        }
    }
    
    /**
     * @method _IH_ProductDocument_QB whereId($value)
     * @method _IH_ProductDocument_QB whereProductId($value)
     * @method _IH_ProductDocument_QB whereType($value)
     * @method _IH_ProductDocument_QB whereSlug($value)
     * @method _IH_ProductDocument_QB whereFilename($value)
     * @method _IH_ProductDocument_QB whereName($value)
     * @method _IH_ProductDocument_QB whereCreatedAt($value)
     * @method _IH_ProductDocument_QB whereUpdatedAt($value)
     * @method ProductDocument create(array $attributes = [])
     * @method _IH_ProductDocument_C|ProductDocument[] cursor()
     * @method ProductDocument|null|_IH_ProductDocument_C|ProductDocument[] find($id, array $columns = ['*'])
     * @method _IH_ProductDocument_C|ProductDocument[] findMany(array|Arrayable $ids, array $columns = ['*'])
     * @method ProductDocument|_IH_ProductDocument_C|ProductDocument[] findOrFail($id, array $columns = ['*'])
     * @method ProductDocument|_IH_ProductDocument_C|ProductDocument[] findOrNew($id, array $columns = ['*'])
     * @method ProductDocument first(array|string $columns = ['*'])
     * @method ProductDocument firstOr(array|\Closure $columns = ['*'], \Closure $callback = null)
     * @method ProductDocument firstOrCreate(array $attributes, array $values = [])
     * @method ProductDocument firstOrFail(array $columns = ['*'])
     * @method ProductDocument firstOrNew(array $attributes = [], array $values = [])
     * @method ProductDocument firstWhere(array|\Closure|string $column, $operator = null, $value = null, string $boolean = 'and')
     * @method ProductDocument forceCreate(array $attributes)
     * @method _IH_ProductDocument_C|ProductDocument[] fromQuery(string $query, array $bindings = [])
     * @method _IH_ProductDocument_C|ProductDocument[] get(array|string $columns = ['*'])
     * @method ProductDocument getModel()
     * @method ProductDocument[] getModels(array|string $columns = ['*'])
     * @method _IH_ProductDocument_C|ProductDocument[] hydrate(array $items)
     * @method ProductDocument make(array $attributes = [])
     * @method ProductDocument newModelInstance(array $attributes = [])
     * @method LengthAwarePaginator|ProductDocument[]|_IH_ProductDocument_C paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
     * @method Paginator|ProductDocument[]|_IH_ProductDocument_C simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
     * @method ProductDocument updateOrCreate(array $attributes, array $values = [])
     */
    class _IH_ProductDocument_QB extends _BaseBuilder {}
    
    /**
     * @method ProductOffer|$this shift()
     * @method ProductOffer|$this pop()
     * @method ProductOffer|null get($key, $default = null)
     * @method ProductOffer|null pull($key, $default = null)
     * @method ProductOffer|null first(callable $callback = null, $default = null)
     * @method ProductOffer|null firstWhere(string $key, $operator = null, $value = null)
     * @method ProductOffer|null find($key, $default = null)
     * @method ProductOffer[] all()
     * @method ProductOffer|null last(callable $callback = null, $default = null)
     * @method ProductOffer|$this random(int|null $number = null)
     */
    class _IH_ProductOffer_C extends _BaseCollection {
        /**
         * @param int $size
         * @return ProductOffer[][]
         */
        public function chunk($size)
        {
            return [];
        }
    }
    
    /**
     * @method _IH_ProductOffer_QB whereId($value)
     * @method _IH_ProductOffer_QB whereProductId($value)
     * @method _IH_ProductOffer_QB whereVendorId($value)
     * @method _IH_ProductOffer_QB wherePrice($value)
     * @method _IH_ProductOffer_QB wherePricePromo($value)
     * @method _IH_ProductOffer_QB whereStock($value)
     * @method _IH_ProductOffer_QB whereShouldValidateStock($value)
     * @method _IH_ProductOffer_QB wherePriority($value)
     * @method _IH_ProductOffer_QB whereStatus($value)
     * @method _IH_ProductOffer_QB whereCreatedAt($value)
     * @method _IH_ProductOffer_QB whereUpdatedAt($value)
     * @method ProductOffer create(array $attributes = [])
     * @method _IH_ProductOffer_C|ProductOffer[] cursor()
     * @method ProductOffer|null|_IH_ProductOffer_C|ProductOffer[] find($id, array $columns = ['*'])
     * @method _IH_ProductOffer_C|ProductOffer[] findMany(array|Arrayable $ids, array $columns = ['*'])
     * @method ProductOffer|_IH_ProductOffer_C|ProductOffer[] findOrFail($id, array $columns = ['*'])
     * @method ProductOffer|_IH_ProductOffer_C|ProductOffer[] findOrNew($id, array $columns = ['*'])
     * @method ProductOffer first(array|string $columns = ['*'])
     * @method ProductOffer firstOr(array|\Closure $columns = ['*'], \Closure $callback = null)
     * @method ProductOffer firstOrCreate(array $attributes, array $values = [])
     * @method ProductOffer firstOrFail(array $columns = ['*'])
     * @method ProductOffer firstOrNew(array $attributes = [], array $values = [])
     * @method ProductOffer firstWhere(array|\Closure|string $column, $operator = null, $value = null, string $boolean = 'and')
     * @method ProductOffer forceCreate(array $attributes)
     * @method _IH_ProductOffer_C|ProductOffer[] fromQuery(string $query, array $bindings = [])
     * @method _IH_ProductOffer_C|ProductOffer[] get(array|string $columns = ['*'])
     * @method ProductOffer getModel()
     * @method ProductOffer[] getModels(array|string $columns = ['*'])
     * @method _IH_ProductOffer_C|ProductOffer[] hydrate(array $items)
     * @method ProductOffer make(array $attributes = [])
     * @method ProductOffer newModelInstance(array $attributes = [])
     * @method LengthAwarePaginator|ProductOffer[]|_IH_ProductOffer_C paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
     * @method Paginator|ProductOffer[]|_IH_ProductOffer_C simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
     * @method ProductOffer updateOrCreate(array $attributes, array $values = [])
     * @method _IH_ProductOffer_QB active()
     */
    class _IH_ProductOffer_QB extends _BaseBuilder {}
    
    /**
     * @method ProductPhoto|$this shift()
     * @method ProductPhoto|$this pop()
     * @method ProductPhoto|null get($key, $default = null)
     * @method ProductPhoto|null pull($key, $default = null)
     * @method ProductPhoto|null first(callable $callback = null, $default = null)
     * @method ProductPhoto|null firstWhere(string $key, $operator = null, $value = null)
     * @method ProductPhoto|null find($key, $default = null)
     * @method ProductPhoto[] all()
     * @method ProductPhoto|null last(callable $callback = null, $default = null)
     * @method ProductPhoto|$this random(int|null $number = null)
     */
    class _IH_ProductPhoto_C extends _BaseCollection {
        /**
         * @param int $size
         * @return ProductPhoto[][]
         */
        public function chunk($size)
        {
            return [];
        }
    }
    
    /**
     * @method _IH_ProductPhoto_QB whereId($value)
     * @method _IH_ProductPhoto_QB whereProductId($value)
     * @method _IH_ProductPhoto_QB whereFilename($value)
     * @method _IH_ProductPhoto_QB wherePriority($value)
     * @method _IH_ProductPhoto_QB whereCreatedAt($value)
     * @method _IH_ProductPhoto_QB whereUpdatedAt($value)
     * @method ProductPhoto create(array $attributes = [])
     * @method _IH_ProductPhoto_C|ProductPhoto[] cursor()
     * @method ProductPhoto|null|_IH_ProductPhoto_C|ProductPhoto[] find($id, array $columns = ['*'])
     * @method _IH_ProductPhoto_C|ProductPhoto[] findMany(array|Arrayable $ids, array $columns = ['*'])
     * @method ProductPhoto|_IH_ProductPhoto_C|ProductPhoto[] findOrFail($id, array $columns = ['*'])
     * @method ProductPhoto|_IH_ProductPhoto_C|ProductPhoto[] findOrNew($id, array $columns = ['*'])
     * @method ProductPhoto first(array|string $columns = ['*'])
     * @method ProductPhoto firstOr(array|\Closure $columns = ['*'], \Closure $callback = null)
     * @method ProductPhoto firstOrCreate(array $attributes, array $values = [])
     * @method ProductPhoto firstOrFail(array $columns = ['*'])
     * @method ProductPhoto firstOrNew(array $attributes = [], array $values = [])
     * @method ProductPhoto firstWhere(array|\Closure|string $column, $operator = null, $value = null, string $boolean = 'and')
     * @method ProductPhoto forceCreate(array $attributes)
     * @method _IH_ProductPhoto_C|ProductPhoto[] fromQuery(string $query, array $bindings = [])
     * @method _IH_ProductPhoto_C|ProductPhoto[] get(array|string $columns = ['*'])
     * @method ProductPhoto getModel()
     * @method ProductPhoto[] getModels(array|string $columns = ['*'])
     * @method _IH_ProductPhoto_C|ProductPhoto[] hydrate(array $items)
     * @method ProductPhoto make(array $attributes = [])
     * @method ProductPhoto newModelInstance(array $attributes = [])
     * @method LengthAwarePaginator|ProductPhoto[]|_IH_ProductPhoto_C paginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
     * @method Paginator|ProductPhoto[]|_IH_ProductPhoto_C simplePaginate(int|null $perPage = null, array $columns = ['*'], string $pageName = 'page', int|null $page = null)
     * @method ProductPhoto updateOrCreate(array $attributes, array $values = [])
     */
    class _IH_ProductPhoto_QB extends _BaseBuilder {}
}