From 9ce711d6b2cc698059817156a67801469357b9ca Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Fri, 10 Apr 2026 17:14:38 +0200 Subject: [PATCH] April 2026 waren Wirtschaft Feedback --- .cursor/mcp.json | 27 + .cursor/rules/laravel-boost.mdc | 248 + .devcontainer/devcontainer.json | 44 + .env | 31 +- .mcp.json | 27 + .phpstorm.meta.php | 978 +- CLAUDE.md | 85 + _ide_helper.php | 8898 ++++++++--------- _ide_helper_models.php | 2267 +++++ app/Console/Commands/PaymentsReminders.php | 141 +- app/Console/Kernel.php | 18 +- app/Cron/UserCheckPaymentsAccounts.php | 137 +- .../Admin/Inventory/LocationController.php | 59 + .../Inventory/MaterialQualityController.php | 59 + .../Inventory/PackagingItemController.php | 98 + .../Inventory/PackagingMaterialController.php | 59 + .../Admin/Inventory/ProductionController.php | 169 + .../Admin/Inventory/StockEntryController.php | 234 + .../Inventory/SupplierCategoryController.php | 59 + .../Admin/Inventory/SupplierController.php | 74 + app/Http/Controllers/FileController.php | 135 +- app/Http/Controllers/IngredientController.php | 44 +- app/Http/Controllers/ProductController.php | 83 +- app/Http/Controllers/SalesController.php | 239 +- .../Inventory/ReceiveStockEntryRequest.php | 34 + .../Inventory/StoreLocationRequest.php | 31 + .../Inventory/StoreMaterialQualityRequest.php | 31 + .../Inventory/StorePackagingItemRequest.php | 45 + .../StorePackagingMaterialRequest.php | 31 + .../Inventory/StoreProductionRequest.php | 54 + .../Inventory/StoreStockEntryRequest.php | 73 + .../StoreSupplierCategoryRequest.php | 31 + .../Inventory/StoreSupplierRequest.php | 39 + .../Inventory/UpdateLocationRequest.php | 31 + .../UpdateMaterialQualityRequest.php | 31 + .../Inventory/UpdatePackagingItemRequest.php | 45 + .../UpdatePackagingMaterialRequest.php | 31 + .../Inventory/UpdateStockEntryRequest.php | 73 + .../UpdateSupplierCategoryRequest.php | 31 + .../Inventory/UpdateSupplierRequest.php | 39 + app/Mail/MailLogistic.php | 54 +- app/Models/Ingredient.php | 65 +- app/Models/Location.php | 28 + app/Models/MaterialQuality.php | 18 + app/Models/PackagingItem.php | 75 + app/Models/PackagingMaterial.php | 27 + app/Models/PaymentReminder.php | 64 +- app/Models/Product.php | 355 +- app/Models/ProductIngredient.php | 44 +- app/Models/Production.php | 72 + app/Models/ProductionIngredient.php | 50 + app/Models/ProductionPackaging.php | 41 + app/Models/ShoppingOrder.php | 201 +- app/Models/ShoppingPayment.php | 52 +- app/Models/StockEntry.php | 118 + app/Models/Supplier.php | 67 + app/Models/SupplierCategory.php | 32 + app/Providers/AppServiceProvider.php | 5 +- app/Repositories/PackagingItemRepository.php | 44 + app/Repositories/ProductRepository.php | 346 +- app/Repositories/ProductionRepository.php | 21 + app/Repositories/StockEntryRepository.php | 92 + app/Repositories/SupplierRepository.php | 58 + app/Repositories/UserRepository.php | 183 +- app/Services/HTMLHelper.php | 464 +- app/Services/Invoice.php | 152 +- app/Services/PaymentReminderService.php | 164 +- app/Services/ProductionService.php | 343 + app/User.php | 351 +- composer.json | 19 +- composer.lock | 2514 +++-- database/factories/LocationFactory.php | 22 + database/factories/MaterialQualityFactory.php | 22 + database/factories/PackagingItemFactory.php | 29 + .../factories/PackagingMaterialFactory.php | 22 + database/factories/StockEntryFactory.php | 208 + .../factories/SupplierCategoryFactory.php | 22 + database/factories/SupplierFactory.php | 48 + ...18_09_29_145909_create_countries_table.php | 7 +- ...8_10_21_163956_create_attributes_table.php | 9 +- ...164003_create_product_attributes_table.php | 9 +- ..._21_164007_create_product_images_table.php | 11 +- ...06_15_112357_create_product_buys_table.php | 10 +- ...18_171231_create_attribute_types_table.php | 22 +- ..._create_user_whitelabel_products_table.php | 11 + ...ation_invoice_to_shopping_orders_table.php | 28 + ...pe_fields_to_product_ingredients_table.php | 30 + ...11353_add_shelf_life_to_products_table.php | 29 + ..._inventory_fields_to_ingredients_table.php | 29 + ...26_03_27_123736_create_locations_table.php | 23 + ...23737_create_supplier_categories_table.php | 23 + ...26_03_27_123738_create_suppliers_table.php | 32 + ...reate_supplier_supplier_category_table.php | 25 + ...123740_create_material_qualities_table.php | 23 + ...23741_create_packaging_materials_table.php | 23 + ...27_123742_create_packaging_items_table.php | 31 + ...3_27_130025_create_stock_entries_table.php | 48 + ...132730_create_product_packagings_table.php | 47 + ...03_27_134200_create_productions_schema.php | 56 + ...61725_add_url_to_packaging_items_table.php | 22 + ...terial_quality_id_to_ingredients_table.php | 24 + ...cipe_type_to_product_ingredients_table.php | 22 + .../seeders/InventoryStammdatenSeeder.php | 49 + .../seeders/InventoryStammdatenTestSeeder.php | 315 + database/seeders/ProductionDemoSeeder.php | 234 + database/seeds/DatabaseSeeder.php | 3 + dev/docs/project-audit.md | 253 + dev/product management /briefing.md | 139 + dev/product management /entwicklungsplan.md | 878 ++ dev/product management /feedback.md | 36 + dev/product management /konzept-final.md | 710 ++ dev/product management /konzept.md | 239 + dev/tasks.md | 2 + docker-compose.yml | 58 + docker/8.4/Dockerfile | 32 + partner-gs.code-workspace | 8 - partner.gruene-seele.bio.code-workspace | 8 + phpunit.xml | 20 +- public/css/application.css | 6 +- .../views/admin/ingredient/form.blade.php | 20 + .../admin/inventory/locations/form.blade.php | 35 + .../admin/inventory/locations/index.blade.php | 60 + .../material-qualities/form.blade.php | 36 + .../material-qualities/index.blade.php | 53 + .../inventory/packaging-items/form.blade.php | 108 + .../inventory/packaging-items/index.blade.php | 73 + .../packaging-materials/form.blade.php | 36 + .../packaging-materials/index.blade.php | 53 + .../inventory/productions/create.blade.php | 191 + .../inventory/productions/edit.blade.php | 203 + .../inventory/productions/index.blade.php | 62 + .../inventory/productions/show.blade.php | 104 + .../inventory/stock-entries/_form.blade.php | 111 + .../stock-entries/_scripts.blade.php | 79 + .../inventory/stock-entries/create.blade.php | 19 + .../inventory/stock-entries/edit.blade.php | 20 + .../inventory/stock-entries/index.blade.php | 85 + .../inventory/stock-entries/show.blade.php | 191 + .../supplier-categories/form.blade.php | 36 + .../supplier-categories/index.blade.php | 53 + .../admin/inventory/suppliers/form.blade.php | 125 + .../admin/inventory/suppliers/index.blade.php | 67 + .../admin/payment/reminder/index.blade.php | 822 +- resources/views/admin/product/edit.blade.php | 411 + resources/views/admin/product/form.blade.php | 727 +- resources/views/admin/sales/_detail.blade.php | 684 +- .../layouts/includes/layout-sidenav.blade.php | 445 +- resources/views/layouts/layout-2.blade.php | 13 + .../views/pdf/cancellation_invoice.blade.php | 524 + routes/web.php | 222 +- storage/fonts/installed-fonts.json | 8 +- ...o_300_22960d4cd411770560d4d9cea16f3864.ttf | Bin 0 -> 36224 bytes ...o_300_22960d4cd411770560d4d9cea16f3864.ufm | 248 + ...o_500_8be5e408a14fb8eb292a00011dd3d0ef.ttf | Bin 0 -> 36420 bytes ...o_500_8be5e408a14fb8eb292a00011dd3d0ef.ufm | 248 + ..._bold_8b68a5f5144c6e1cf84bdd7d532e3bf9.ttf | Bin 0 -> 36012 bytes ..._bold_8b68a5f5144c6e1cf84bdd7d532e3bf9.ufm | 248 + ..._8b68a5f5144c6e1cf84bdd7d532e3bf9.ufm.json | 478 + ...ormal_571a9cfece0739eed437614401e4383e.ttf | Bin 0 -> 36176 bytes ...ormal_571a9cfece0739eed437614401e4383e.ufm | 248 + ..._571a9cfece0739eed437614401e4383e.ufm.json | 478 + tests/Feature/InventoryPhase2Test.php | 294 + tests/Feature/InventoryPhase3Test.php | 228 + tests/Feature/ProductPhase0Test.php | 186 + tests/Feature/ProductPhase1Test.php | 92 + tests/Feature/ProductPhase4Test.php | 88 + tests/Feature/ProductionPhase5Test.php | 345 + 167 files changed, 25278 insertions(+), 8518 deletions(-) create mode 100644 .cursor/mcp.json create mode 100644 .cursor/rules/laravel-boost.mdc create mode 100644 .devcontainer/devcontainer.json create mode 100644 .mcp.json create mode 100644 CLAUDE.md create mode 100644 _ide_helper_models.php create mode 100644 app/Http/Controllers/Admin/Inventory/LocationController.php create mode 100644 app/Http/Controllers/Admin/Inventory/MaterialQualityController.php create mode 100644 app/Http/Controllers/Admin/Inventory/PackagingItemController.php create mode 100644 app/Http/Controllers/Admin/Inventory/PackagingMaterialController.php create mode 100644 app/Http/Controllers/Admin/Inventory/ProductionController.php create mode 100644 app/Http/Controllers/Admin/Inventory/StockEntryController.php create mode 100644 app/Http/Controllers/Admin/Inventory/SupplierCategoryController.php create mode 100644 app/Http/Controllers/Admin/Inventory/SupplierController.php create mode 100644 app/Http/Requests/Inventory/ReceiveStockEntryRequest.php create mode 100644 app/Http/Requests/Inventory/StoreLocationRequest.php create mode 100644 app/Http/Requests/Inventory/StoreMaterialQualityRequest.php create mode 100644 app/Http/Requests/Inventory/StorePackagingItemRequest.php create mode 100644 app/Http/Requests/Inventory/StorePackagingMaterialRequest.php create mode 100644 app/Http/Requests/Inventory/StoreProductionRequest.php create mode 100644 app/Http/Requests/Inventory/StoreStockEntryRequest.php create mode 100644 app/Http/Requests/Inventory/StoreSupplierCategoryRequest.php create mode 100644 app/Http/Requests/Inventory/StoreSupplierRequest.php create mode 100644 app/Http/Requests/Inventory/UpdateLocationRequest.php create mode 100644 app/Http/Requests/Inventory/UpdateMaterialQualityRequest.php create mode 100644 app/Http/Requests/Inventory/UpdatePackagingItemRequest.php create mode 100644 app/Http/Requests/Inventory/UpdatePackagingMaterialRequest.php create mode 100644 app/Http/Requests/Inventory/UpdateStockEntryRequest.php create mode 100644 app/Http/Requests/Inventory/UpdateSupplierCategoryRequest.php create mode 100644 app/Http/Requests/Inventory/UpdateSupplierRequest.php create mode 100644 app/Models/Location.php create mode 100644 app/Models/MaterialQuality.php create mode 100644 app/Models/PackagingItem.php create mode 100644 app/Models/PackagingMaterial.php create mode 100644 app/Models/Production.php create mode 100644 app/Models/ProductionIngredient.php create mode 100644 app/Models/ProductionPackaging.php create mode 100644 app/Models/StockEntry.php create mode 100644 app/Models/Supplier.php create mode 100644 app/Models/SupplierCategory.php create mode 100644 app/Repositories/PackagingItemRepository.php create mode 100644 app/Repositories/ProductionRepository.php create mode 100644 app/Repositories/StockEntryRepository.php create mode 100644 app/Repositories/SupplierRepository.php create mode 100644 app/Services/ProductionService.php create mode 100644 database/factories/LocationFactory.php create mode 100644 database/factories/MaterialQualityFactory.php create mode 100644 database/factories/PackagingItemFactory.php create mode 100644 database/factories/PackagingMaterialFactory.php create mode 100644 database/factories/StockEntryFactory.php create mode 100644 database/factories/SupplierCategoryFactory.php create mode 100644 database/factories/SupplierFactory.php create mode 100644 database/migrations/2025_12_22_180249_add_cancellation_invoice_to_shopping_orders_table.php create mode 100644 database/migrations/2026_03_27_111352_add_recipe_fields_to_product_ingredients_table.php create mode 100644 database/migrations/2026_03_27_111353_add_shelf_life_to_products_table.php create mode 100644 database/migrations/2026_03_27_111354_add_inventory_fields_to_ingredients_table.php create mode 100644 database/migrations/2026_03_27_123736_create_locations_table.php create mode 100644 database/migrations/2026_03_27_123737_create_supplier_categories_table.php create mode 100644 database/migrations/2026_03_27_123738_create_suppliers_table.php create mode 100644 database/migrations/2026_03_27_123739_create_supplier_supplier_category_table.php create mode 100644 database/migrations/2026_03_27_123740_create_material_qualities_table.php create mode 100644 database/migrations/2026_03_27_123741_create_packaging_materials_table.php create mode 100644 database/migrations/2026_03_27_123742_create_packaging_items_table.php create mode 100644 database/migrations/2026_03_27_130025_create_stock_entries_table.php create mode 100644 database/migrations/2026_03_27_132730_create_product_packagings_table.php create mode 100644 database/migrations/2026_03_27_134200_create_productions_schema.php create mode 100644 database/migrations/2026_04_10_161725_add_url_to_packaging_items_table.php create mode 100644 database/migrations/2026_04_10_161834_add_material_quality_id_to_ingredients_table.php create mode 100644 database/migrations/2026_04_10_162143_add_recipe_type_to_product_ingredients_table.php create mode 100644 database/seeders/InventoryStammdatenSeeder.php create mode 100644 database/seeders/InventoryStammdatenTestSeeder.php create mode 100644 database/seeders/ProductionDemoSeeder.php create mode 100644 dev/docs/project-audit.md create mode 100644 dev/product management /briefing.md create mode 100644 dev/product management /entwicklungsplan.md create mode 100644 dev/product management /feedback.md create mode 100644 dev/product management /konzept-final.md create mode 100644 dev/product management /konzept.md create mode 100644 dev/tasks.md create mode 100644 docker-compose.yml create mode 100644 docker/8.4/Dockerfile delete mode 100644 partner-gs.code-workspace create mode 100644 partner.gruene-seele.bio.code-workspace create mode 100644 resources/views/admin/inventory/locations/form.blade.php create mode 100644 resources/views/admin/inventory/locations/index.blade.php create mode 100644 resources/views/admin/inventory/material-qualities/form.blade.php create mode 100644 resources/views/admin/inventory/material-qualities/index.blade.php create mode 100644 resources/views/admin/inventory/packaging-items/form.blade.php create mode 100644 resources/views/admin/inventory/packaging-items/index.blade.php create mode 100644 resources/views/admin/inventory/packaging-materials/form.blade.php create mode 100644 resources/views/admin/inventory/packaging-materials/index.blade.php create mode 100644 resources/views/admin/inventory/productions/create.blade.php create mode 100644 resources/views/admin/inventory/productions/edit.blade.php create mode 100644 resources/views/admin/inventory/productions/index.blade.php create mode 100644 resources/views/admin/inventory/productions/show.blade.php create mode 100644 resources/views/admin/inventory/stock-entries/_form.blade.php create mode 100644 resources/views/admin/inventory/stock-entries/_scripts.blade.php create mode 100644 resources/views/admin/inventory/stock-entries/create.blade.php create mode 100644 resources/views/admin/inventory/stock-entries/edit.blade.php create mode 100644 resources/views/admin/inventory/stock-entries/index.blade.php create mode 100644 resources/views/admin/inventory/stock-entries/show.blade.php create mode 100644 resources/views/admin/inventory/supplier-categories/form.blade.php create mode 100644 resources/views/admin/inventory/supplier-categories/index.blade.php create mode 100644 resources/views/admin/inventory/suppliers/form.blade.php create mode 100644 resources/views/admin/inventory/suppliers/index.blade.php create mode 100644 resources/views/pdf/cancellation_invoice.blade.php create mode 100644 storage/fonts/roboto_300_22960d4cd411770560d4d9cea16f3864.ttf create mode 100644 storage/fonts/roboto_300_22960d4cd411770560d4d9cea16f3864.ufm create mode 100644 storage/fonts/roboto_500_8be5e408a14fb8eb292a00011dd3d0ef.ttf create mode 100644 storage/fonts/roboto_500_8be5e408a14fb8eb292a00011dd3d0ef.ufm create mode 100644 storage/fonts/roboto_bold_8b68a5f5144c6e1cf84bdd7d532e3bf9.ttf create mode 100644 storage/fonts/roboto_bold_8b68a5f5144c6e1cf84bdd7d532e3bf9.ufm create mode 100644 storage/fonts/roboto_bold_8b68a5f5144c6e1cf84bdd7d532e3bf9.ufm.json create mode 100644 storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ttf create mode 100644 storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ufm create mode 100644 storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ufm.json create mode 100644 tests/Feature/InventoryPhase2Test.php create mode 100644 tests/Feature/InventoryPhase3Test.php create mode 100644 tests/Feature/ProductPhase0Test.php create mode 100644 tests/Feature/ProductPhase1Test.php create mode 100644 tests/Feature/ProductPhase4Test.php create mode 100644 tests/Feature/ProductionPhase5Test.php diff --git a/.cursor/mcp.json b/.cursor/mcp.json new file mode 100644 index 0000000..3cceeb6 --- /dev/null +++ b/.cursor/mcp.json @@ -0,0 +1,27 @@ +{ + "mcpServers": { + "laravel-boost": { + "command": "php", + "args": [ + "artisan", + "boost:mcp" + ] + }, + "context7": { + "command": "npx", + "args": [ + "-y", + "@upstash/context7-mcp", + "--api-key", + "ctx7sk-119cd4ab-8983-4229-8702-e84c59c34fc9" + ] + }, + "sequential-thinking": { + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-sequential-thinking" + ] + } + } +} \ No newline at end of file diff --git a/.cursor/rules/laravel-boost.mdc b/.cursor/rules/laravel-boost.mdc new file mode 100644 index 0000000..df47bea --- /dev/null +++ b/.cursor/rules/laravel-boost.mdc @@ -0,0 +1,248 @@ +--- +alwaysApply: true +--- + +=== foundation rules === + +# Laravel Boost Guidelines + +The Laravel Boost guidelines are specifically curated by Laravel maintainers for this application. These guidelines should be followed closely to enhance the user's satisfaction building Laravel applications. + +## Foundational Context +This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions. + +- php - 8.4.1 +- laravel/framework (LARAVEL) - v11 +- laravel/prompts (PROMPTS) - v0 +- laravel/pint (PINT) - v1 +- pestphp/pest (PEST) - v2 + + +## Conventions +- You must follow all existing code conventions used in this application. When creating or editing a file, check sibling files for the correct structure, approach, naming. +- Use descriptive names for variables and methods. For example, `isRegisteredForDiscounts`, not `discount()`. +- Check for existing components to reuse before writing a new one. + +## Verification Scripts +- Do not create verification scripts or tinker when tests cover that functionality and prove it works. Unit and feature tests are more important. + +## Application Structure & Architecture +- Stick to existing directory structure - don't create new base folders without approval. +- Do not change the application's dependencies without approval. + +## Frontend Bundling +- If the user doesn't see a frontend change reflected in the UI, it could mean they need to run `npm run build`, `npm run dev`, or `composer run dev`. Ask them. + +## Replies +- Be concise in your explanations - focus on what's important rather than explaining obvious details. + +## Documentation Files +- You must only create documentation files if explicitly requested by the user. + + +=== boost rules === + +## Laravel Boost +- Laravel Boost is an MCP server that comes with powerful tools designed specifically for this application. Use them. + +## Artisan +- Use the `list-artisan-commands` tool when you need to call an Artisan command to double check the available parameters. + +## URLs +- Whenever you share a project URL with the user you should use the `get-absolute-url` tool to ensure you're using the correct scheme, domain / IP, and port. + +## Tinker / Debugging +- You should use the `tinker` tool when you need to execute PHP to debug code or query Eloquent models directly. +- Use the `database-query` tool when you only need to read from the database. + +## Reading Browser Logs With the `browser-logs` Tool +- You can read browser logs, errors, and exceptions using the `browser-logs` tool from Boost. +- Only recent browser logs will be useful - ignore old logs. + +## Searching Documentation (Critically Important) +- Boost comes with a powerful `search-docs` tool you should use before any other approaches. This tool automatically passes a list of installed packages and their versions to the remote Boost API, so it returns only version-specific documentation specific for the user's circumstance. You should pass an array of packages to filter on if you know you need docs for particular packages. +- The 'search-docs' tool is perfect for all Laravel related packages, including Laravel, Inertia, Livewire, Filament, Tailwind, Pest, Nova, Nightwatch, etc. +- You must use this tool to search for Laravel-ecosystem documentation before falling back to other approaches. +- Search the documentation before making code changes to ensure we are taking the correct approach. +- Use multiple, broad, simple, topic based queries to start. For example: `['rate limiting', 'routing rate limiting', 'routing']`. +- Do not add package names to queries - package information is already shared. For example, use `test resource table`, not `filament 4 test resource table`. + +### Available Search Syntax +- You can and should pass multiple queries at once. The most relevant results will be returned first. + +1. Simple Word Searches with auto-stemming - query=authentication - finds 'authenticate' and 'auth' +2. Multiple Words (AND Logic) - query=rate limit - finds knowledge containing both "rate" AND "limit" +3. Quoted Phrases (Exact Position) - query="infinite scroll" - Words must be adjacent and in that order +4. Mixed Queries - query=middleware "rate limit" - "middleware" AND exact phrase "rate limit" +5. Multiple Queries - queries=["authentication", "middleware"] - ANY of these terms + + +=== php rules === + +## PHP + +- Always use curly braces for control structures, even if it has one line. + +### Constructors +- Use PHP 8 constructor property promotion in `__construct()`. + - public function __construct(public GitHub $github) { } +- Do not allow empty `__construct()` methods with zero parameters. + +### Type Declarations +- Always use explicit return type declarations for methods and functions. +- Use appropriate PHP type hints for method parameters. + + +protected function isAccessible(User $user, ?string $path = null): bool +{ + ... +} + + +## Comments +- Prefer PHPDoc blocks over comments. Never use comments within the code itself unless there is something _very_ complex going on. + +## PHPDoc Blocks +- Add useful array shape type definitions for arrays when appropriate. + +## Enums +- Typically, keys in an Enum should be TitleCase. For example: `FavoritePerson`, `BestLake`, `Monthly`. + + +=== laravel/core rules === + +## Do Things the Laravel Way + +- Use `php artisan make:` commands to create new files (i.e. migrations, controllers, models, etc.). You can list available Artisan commands using the `list-artisan-commands` tool. +- If you're creating a generic PHP class, use `artisan make:class`. +- Pass `--no-interaction` to all Artisan commands to ensure they work without user input. You should also pass the correct `--options` to ensure correct behavior. + +### Database +- Always use proper Eloquent relationship methods with return type hints. Prefer relationship methods over raw queries or manual joins. +- Use Eloquent models and relationships before suggesting raw database queries +- Avoid `DB::`; prefer `Model::query()`. Generate code that leverages Laravel's ORM capabilities rather than bypassing them. +- Generate code that prevents N+1 query problems by using eager loading. +- Use Laravel's query builder for very complex database operations. + +### Model Creation +- When creating new models, create useful factories and seeders for them too. Ask the user if they need any other things, using `list-artisan-commands` to check the available options to `php artisan make:model`. + +### APIs & Eloquent Resources +- For APIs, default to using Eloquent API Resources and API versioning unless existing API routes do not, then you should follow existing application convention. + +### Controllers & Validation +- Always create Form Request classes for validation rather than inline validation in controllers. Include both validation rules and custom error messages. +- Check sibling Form Requests to see if the application uses array or string based validation rules. + +### Queues +- Use queued jobs for time-consuming operations with the `ShouldQueue` interface. + +### Authentication & Authorization +- Use Laravel's built-in authentication and authorization features (gates, policies, Sanctum, etc.). + +### URL Generation +- When generating links to other pages, prefer named routes and the `route()` function. + +### Configuration +- Use environment variables only in configuration files - never use the `env()` function directly outside of config files. Always use `config('app.name')`, not `env('APP_NAME')`. + +### Testing +- When creating models for tests, use the factories for the models. Check if the factory has custom states that can be used before manually setting up the model. +- Faker: Use methods such as `$this->faker->word()` or `fake()->randomDigit()`. Follow existing conventions whether to use `$this->faker` or `fake()`. +- When creating tests, make use of `php artisan make:test [options] ` to create a feature test, and pass `--unit` to create a unit test. Most tests should be feature tests. + +### Vite Error +- If you receive an "Illuminate\Foundation\ViteException: Unable to locate file in Vite manifest" error, you can run `npm run build` or ask the user to run `npm run dev` or `composer run dev`. + + +=== laravel/v11 rules === + +## Laravel 11 + +- Use the `search-docs` tool to get version specific documentation. +- This project upgraded from Laravel 10 without migrating to the new streamlined Laravel 11 file structure. +- This is **perfectly fine** and recommended by Laravel. Follow the existing structure from Laravel 10. We do not to need migrate to the Laravel 11 structure unless the user explicitly requests that. + +### Laravel 10 Structure +- Middleware typically live in `app/Http/Middleware/` and service providers in `app/Providers/`. +- There is no `bootstrap/app.php` application configuration in a Laravel 10 structure: + - Middleware registration is in `app/Http/Kernel.php` + - Exception handling is in `app/Exceptions/Handler.php` + - Console commands and schedule registration is in `app/Console/Kernel.php` + - Rate limits likely exist in `RouteServiceProvider` or `app/Http/Kernel.php` + +### Database +- When modifying a column, the migration must include all of the attributes that were previously defined on the column. Otherwise, they will be dropped and lost. +- Laravel 11 allows limiting eagerly loaded records natively, without external packages: `$query->latest()->limit(10);`. + +### Models +- Casts can and likely should be set in a `casts()` method on a model rather than the `$casts` property. Follow existing conventions from other models. + +### New Artisan Commands +- List Artisan commands using Boost's MCP tool, if available. New commands available in Laravel 11: + - `php artisan make:enum` + - `php artisan make:class` + - `php artisan make:interface` + + +=== pint/core rules === + +## Laravel Pint Code Formatter + +- You must run `vendor/bin/pint --dirty` before finalizing changes to ensure your code matches the project's expected style. +- Do not run `vendor/bin/pint --test`, simply run `vendor/bin/pint` to fix any formatting issues. + + +=== pest/core rules === + +## Pest + +### Testing +- If you need to verify a feature is working, write or update a Unit / Feature test. + +### Pest Tests +- All tests must be written using Pest. Use `php artisan make:test --pest `. +- You must not remove any tests or test files from the tests directory without approval. These are not temporary or helper files - these are core to the application. +- Tests should test all of the happy paths, failure paths, and weird paths. +- Tests live in the `tests/Feature` and `tests/Unit` directories. +- Pest tests look and behave like this: + +it('is true', function () { + expect(true)->toBeTrue(); +}); + + +### Running Tests +- Run the minimal number of tests using an appropriate filter before finalizing code edits. +- To run all tests: `php artisan test`. +- To run all tests in a file: `php artisan test tests/Feature/ExampleTest.php`. +- To filter on a particular test name: `php artisan test --filter=testName` (recommended after making a change to a related file). +- When the tests relating to your changes are passing, ask the user if they would like to run the entire test suite to ensure everything is still passing. + +### Pest Assertions +- When asserting status codes on a response, use the specific method like `assertForbidden` and `assertNotFound` instead of using `assertStatus(403)` or similar, e.g.: + +it('returns all', function () { + $response = $this->postJson('/api/docs', []); + + $response->assertSuccessful(); +}); + + +### Mocking +- Mocking can be very helpful when appropriate. +- When mocking, you can use the `Pest\Laravel\mock` Pest function, but always import it via `use function Pest\Laravel\mock;` before using it. Alternatively, you can use `$this->mock()` if existing tests do. +- You can also create partial mocks using the same import or self method. + +### Datasets +- Use datasets in Pest to simplify tests which have a lot of duplicated data. This is often the case when testing validation rules, so consider going with this solution when writing tests for validation rules. + + +it('has emails', function (string $email) { + expect($email)->not->toBeEmpty(); +})->with([ + 'james' => 'james@laravel.com', + 'taylor' => 'taylor@laravel.com', +]); + + \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..d64a26b --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,44 @@ +{ + "name": "Partner Grüne Seele (Dev Container)", + "dockerComposeFile": [ + "../docker-compose.yml" + ], + "service": "laravel.test", + "workspaceFolder": "/var/www/html", + "remoteUser": "sail", + "features": {}, + "customizations": { + "vscode": { + "extensions": [ + "bmewburn.vscode-intelephense-client", + "onecentlin.laravel-blade", + "shufo.vscode-blade-formatter", + "bradlc.vscode-tailwindcss", + "Anthropic.claude-code", + "onecentlin.laravel-extension-pack" + ] + } + }, + // WICHTIG: Nur noch den Haupt-Container starten! + "runServices": [ + "laravel.test" + ], + "containerEnv": { + "WWWUSER": "501", + "WWWGROUP": "20", + "LARAVEL_SAIL": "1" + }, + "mounts": [ + "source=${localWorkspaceFolder},target=/var/www/html,type=bind,consistency=cached" + ], + // WICHTIG: Nur noch den Vite-Port weiterleiten + "forwardPorts": [ + 5179 + ], + "portsAttributes": { + "5179": { + "label": "Vite Dev Server", + "onAutoForward": "notify" + } + } +} \ No newline at end of file diff --git a/.env b/.env index 26f1aa7..8797e9f 100644 --- a/.env +++ b/.env @@ -27,15 +27,15 @@ LOG_CHANNEL=stack LOG_LEVEL=debug DB_CONNECTION=mysql -DB_HOST=192.168.1.8 +DB_HOST=mysql DB_PORT=3306 -DB_DATABASE=grueneseele -DB_USERNAME=kadmin -DB_PASSWORD=KT32vQ7ix +DB_DATABASE=partner_gruene_seele +DB_USERNAME=root +DB_PASSWORD=password #DB_CONNECTION=mysql -#DB_HOST=localhost +#DB_HOST=mysql #DB_PORT=3306 #DB_DATABASE=web28_db4 #DB_USERNAME=web28_4 @@ -51,16 +51,21 @@ MEMCACHED_HOST=127.0.0.1 REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null -REDIS_PORT=6379 +REDIS_PORT=6384 +#REDIS_PORT=6379 MAIL_DRIVER=smtp -MAIL_HOST=w017e534.kasserver.com -MAIL_PORT=587 -MAIL_USERNAME=m0496c96 -MAIL_PASSWORD=mZtVp7WQcs6DC3hf -MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS=dev@adametz.media -MAIL_FROM_NAME="DEV Grüne Seele" +MAIL_HOST=mailpit +MAIL_PORT=1029 + +#MAIL_DRIVER=smtp +#MAIL_HOST=w017e534.kasserver.com +#MAIL_PORT=587 +#MAIL_USERNAME=m0496c96 +#MAIL_PASSWORD=mZtVp7WQcs6DC3hf +#MAIL_ENCRYPTION=null +#MAIL_FROM_ADDRESS=dev@adametz.media +#MAIL_FROM_NAME="DEV Grüne Seele" #MAIL_MAILER=smtp #MAIL_HOST=s182.goserver.host diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 0000000..3cceeb6 --- /dev/null +++ b/.mcp.json @@ -0,0 +1,27 @@ +{ + "mcpServers": { + "laravel-boost": { + "command": "php", + "args": [ + "artisan", + "boost:mcp" + ] + }, + "context7": { + "command": "npx", + "args": [ + "-y", + "@upstash/context7-mcp", + "--api-key", + "ctx7sk-119cd4ab-8983-4229-8702-e84c59c34fc9" + ] + }, + "sequential-thinking": { + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-sequential-thinking" + ] + } + } +} \ No newline at end of file diff --git a/.phpstorm.meta.php b/.phpstorm.meta.php index e5375f2..3bb0ac0 100644 --- a/.phpstorm.meta.php +++ b/.phpstorm.meta.php @@ -41,7 +41,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -123,7 +122,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -205,7 +203,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -287,7 +284,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -369,7 +365,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -451,7 +446,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -533,7 +527,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -615,7 +608,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -697,7 +689,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -779,7 +770,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -861,7 +851,6 @@ namespace PHPSTORM_META { 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'cache' => \Illuminate\Cache\CacheManager::class, 'cache.store' => \Illuminate\Cache\Repository::class, - 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, @@ -934,6 +923,7 @@ namespace PHPSTORM_META { ])); override(\config(), map([ + 'concurrency.default' => 'string', 'app.name' => 'string', 'app.env' => 'string', 'app.debug' => 'boolean', @@ -1010,6 +1000,7 @@ namespace PHPSTORM_META { 'app.main_tax_rate' => 'string', 'app.main_user_id' => 'string', 'app.exception_mail' => 'string', + 'app.logistic_mail' => 'string', 'auth.defaults.guard' => 'string', 'auth.defaults.passwords' => 'string', 'auth.guards.web.driver' => 'string', @@ -1170,7 +1161,7 @@ namespace PHPSTORM_META { 'debugbar.storage.provider' => 'string', 'debugbar.editor' => 'string', 'debugbar.remote_sites_path' => 'NULL', - 'debugbar.local_sites_path' => 'NULL', + 'debugbar.local_sites_path' => 'string', 'debugbar.include_vendors' => 'boolean', 'debugbar.capture_ajax' => 'boolean', 'debugbar.add_ajax_timing' => 'boolean', @@ -1178,6 +1169,7 @@ namespace PHPSTORM_META { 'debugbar.ajax_handler_enable_tab' => 'boolean', 'debugbar.defer_datasets' => 'boolean', 'debugbar.error_handler' => 'boolean', + 'debugbar.error_level' => 'integer', 'debugbar.clockwork' => 'boolean', 'debugbar.collectors.phpinfo' => 'boolean', 'debugbar.collectors.messages' => 'boolean', @@ -1281,7 +1273,7 @@ namespace PHPSTORM_META { 'filesystems.disks.import.driver' => 'string', 'filesystems.disks.import.root' => 'string', 'filesystems.disks.import.url' => 'string', - 'filesystems.links./Users/kadmin/Websites/partner.gruene-seele.bio/public/storage' => 'string', + 'filesystems.links./var/www/html/public/storage' => 'string', 'filesystems.cloud' => 'string', 'hashing.driver' => 'string', 'hashing.bcrypt.rounds' => 'integer', @@ -1297,6 +1289,7 @@ namespace PHPSTORM_META { 'ide-helper.write_model_magic_where' => 'boolean', 'ide-helper.write_model_external_builder_methods' => 'boolean', 'ide-helper.write_model_relation_count_properties' => 'boolean', + 'ide-helper.write_model_relation_exists_properties' => 'boolean', 'ide-helper.write_eloquent_model_mixins' => 'boolean', 'ide-helper.include_helpers' => 'boolean', 'ide-helper.helper_files' => 'array', @@ -1313,11 +1306,11 @@ namespace PHPSTORM_META { 'ide-helper.include_class_docblocks' => 'boolean', 'ide-helper.force_fqn' => 'boolean', 'ide-helper.use_generics_annotations' => 'boolean', + 'ide-helper.macro_default_return_types.Illuminate\Http\Client\Factory' => 'string', 'ide-helper.additional_relation_types' => 'array', 'ide-helper.additional_relation_return_types' => 'array', 'ide-helper.enforce_nullable_relationships' => 'boolean', 'ide-helper.post_migrate' => 'array', - 'ide-helper.macroable_traits' => 'array', 'ide-helper.custom_db_types' => 'array', 'localization.supportedLocales.de.name' => 'string', 'localization.supportedLocales.de.script' => 'string', @@ -1357,13 +1350,19 @@ namespace PHPSTORM_META { 'logging.channels.null.driver' => 'string', 'logging.channels.null.handler' => 'string', 'logging.channels.emergency.path' => 'string', + 'logging.channels.browser.driver' => 'string', + 'logging.channels.browser.path' => 'string', + 'logging.channels.browser.level' => 'string', + 'logging.channels.browser.days' => 'integer', + 'logging.channels.deprecations.driver' => 'string', + 'logging.channels.deprecations.handler' => 'string', 'mail.default' => 'string', 'mail.mailers.smtp.transport' => 'string', 'mail.mailers.smtp.host' => 'string', 'mail.mailers.smtp.port' => 'string', - 'mail.mailers.smtp.encryption' => 'NULL', - 'mail.mailers.smtp.username' => 'string', - 'mail.mailers.smtp.password' => 'string', + 'mail.mailers.smtp.encryption' => 'string', + 'mail.mailers.smtp.username' => 'NULL', + 'mail.mailers.smtp.password' => 'NULL', 'mail.mailers.ses.transport' => 'string', 'mail.mailers.postmark.transport' => 'string', 'mail.mailers.resend.transport' => 'string', @@ -1451,7 +1450,7 @@ namespace PHPSTORM_META { 'profanity.strReplace.x' => 'string', 'profanity.strReplace.y' => 'string', 'profanity.strReplace.z' => 'string', - 'profanity.defaults' => 'array', + 'profanity.full_word_check' => 'array', 'queue.default' => 'string', 'queue.connections.sync.driver' => 'string', 'queue.connections.database.driver' => 'string', @@ -1522,7 +1521,6 @@ namespace PHPSTORM_META { 'view.paths' => 'array', 'view.compiled' => 'string', 'view.expires' => 'boolean', - 'concurrency.default' => 'string', 'translation.driver' => 'string', 'translation.route_group_config.middleware' => 'string', 'translation.translation_methods' => 'array', @@ -1531,6 +1529,13 @@ namespace PHPSTORM_META { 'translation.database.connection' => 'string', 'translation.database.languages_table' => 'string', 'translation.database.translations_table' => 'string', + 'boost.enabled' => 'boolean', + 'boost.browser_logs_watcher' => 'boolean', + 'boost.executable_paths.php' => 'NULL', + 'boost.executable_paths.composer' => 'NULL', + 'boost.executable_paths.npm' => 'NULL', + 'boost.executable_paths.vendor_bin' => 'NULL', + 'mcp.redirect_domains' => 'array', 'passport.guard' => 'string', 'passport.private_key' => 'NULL', 'passport.public_key' => 'NULL', @@ -1631,8 +1636,10 @@ namespace PHPSTORM_META { 'tinker.commands' => 'array', 'tinker.alias' => 'array', 'tinker.dont_alias' => 'array', + 'tinker.trust_project' => 'string', ])); override(\Illuminate\Config\Repository::get(), map([ + 'concurrency.default' => 'string', 'app.name' => 'string', 'app.env' => 'string', 'app.debug' => 'boolean', @@ -1709,6 +1716,7 @@ namespace PHPSTORM_META { 'app.main_tax_rate' => 'string', 'app.main_user_id' => 'string', 'app.exception_mail' => 'string', + 'app.logistic_mail' => 'string', 'auth.defaults.guard' => 'string', 'auth.defaults.passwords' => 'string', 'auth.guards.web.driver' => 'string', @@ -1869,7 +1877,7 @@ namespace PHPSTORM_META { 'debugbar.storage.provider' => 'string', 'debugbar.editor' => 'string', 'debugbar.remote_sites_path' => 'NULL', - 'debugbar.local_sites_path' => 'NULL', + 'debugbar.local_sites_path' => 'string', 'debugbar.include_vendors' => 'boolean', 'debugbar.capture_ajax' => 'boolean', 'debugbar.add_ajax_timing' => 'boolean', @@ -1877,6 +1885,7 @@ namespace PHPSTORM_META { 'debugbar.ajax_handler_enable_tab' => 'boolean', 'debugbar.defer_datasets' => 'boolean', 'debugbar.error_handler' => 'boolean', + 'debugbar.error_level' => 'integer', 'debugbar.clockwork' => 'boolean', 'debugbar.collectors.phpinfo' => 'boolean', 'debugbar.collectors.messages' => 'boolean', @@ -1980,7 +1989,7 @@ namespace PHPSTORM_META { 'filesystems.disks.import.driver' => 'string', 'filesystems.disks.import.root' => 'string', 'filesystems.disks.import.url' => 'string', - 'filesystems.links./Users/kadmin/Websites/partner.gruene-seele.bio/public/storage' => 'string', + 'filesystems.links./var/www/html/public/storage' => 'string', 'filesystems.cloud' => 'string', 'hashing.driver' => 'string', 'hashing.bcrypt.rounds' => 'integer', @@ -1996,6 +2005,7 @@ namespace PHPSTORM_META { 'ide-helper.write_model_magic_where' => 'boolean', 'ide-helper.write_model_external_builder_methods' => 'boolean', 'ide-helper.write_model_relation_count_properties' => 'boolean', + 'ide-helper.write_model_relation_exists_properties' => 'boolean', 'ide-helper.write_eloquent_model_mixins' => 'boolean', 'ide-helper.include_helpers' => 'boolean', 'ide-helper.helper_files' => 'array', @@ -2012,11 +2022,11 @@ namespace PHPSTORM_META { 'ide-helper.include_class_docblocks' => 'boolean', 'ide-helper.force_fqn' => 'boolean', 'ide-helper.use_generics_annotations' => 'boolean', + 'ide-helper.macro_default_return_types.Illuminate\Http\Client\Factory' => 'string', 'ide-helper.additional_relation_types' => 'array', 'ide-helper.additional_relation_return_types' => 'array', 'ide-helper.enforce_nullable_relationships' => 'boolean', 'ide-helper.post_migrate' => 'array', - 'ide-helper.macroable_traits' => 'array', 'ide-helper.custom_db_types' => 'array', 'localization.supportedLocales.de.name' => 'string', 'localization.supportedLocales.de.script' => 'string', @@ -2056,13 +2066,19 @@ namespace PHPSTORM_META { 'logging.channels.null.driver' => 'string', 'logging.channels.null.handler' => 'string', 'logging.channels.emergency.path' => 'string', + 'logging.channels.browser.driver' => 'string', + 'logging.channels.browser.path' => 'string', + 'logging.channels.browser.level' => 'string', + 'logging.channels.browser.days' => 'integer', + 'logging.channels.deprecations.driver' => 'string', + 'logging.channels.deprecations.handler' => 'string', 'mail.default' => 'string', 'mail.mailers.smtp.transport' => 'string', 'mail.mailers.smtp.host' => 'string', 'mail.mailers.smtp.port' => 'string', - 'mail.mailers.smtp.encryption' => 'NULL', - 'mail.mailers.smtp.username' => 'string', - 'mail.mailers.smtp.password' => 'string', + 'mail.mailers.smtp.encryption' => 'string', + 'mail.mailers.smtp.username' => 'NULL', + 'mail.mailers.smtp.password' => 'NULL', 'mail.mailers.ses.transport' => 'string', 'mail.mailers.postmark.transport' => 'string', 'mail.mailers.resend.transport' => 'string', @@ -2150,7 +2166,7 @@ namespace PHPSTORM_META { 'profanity.strReplace.x' => 'string', 'profanity.strReplace.y' => 'string', 'profanity.strReplace.z' => 'string', - 'profanity.defaults' => 'array', + 'profanity.full_word_check' => 'array', 'queue.default' => 'string', 'queue.connections.sync.driver' => 'string', 'queue.connections.database.driver' => 'string', @@ -2221,7 +2237,6 @@ namespace PHPSTORM_META { 'view.paths' => 'array', 'view.compiled' => 'string', 'view.expires' => 'boolean', - 'concurrency.default' => 'string', 'translation.driver' => 'string', 'translation.route_group_config.middleware' => 'string', 'translation.translation_methods' => 'array', @@ -2230,6 +2245,13 @@ namespace PHPSTORM_META { 'translation.database.connection' => 'string', 'translation.database.languages_table' => 'string', 'translation.database.translations_table' => 'string', + 'boost.enabled' => 'boolean', + 'boost.browser_logs_watcher' => 'boolean', + 'boost.executable_paths.php' => 'NULL', + 'boost.executable_paths.composer' => 'NULL', + 'boost.executable_paths.npm' => 'NULL', + 'boost.executable_paths.vendor_bin' => 'NULL', + 'mcp.redirect_domains' => 'array', 'passport.guard' => 'string', 'passport.private_key' => 'NULL', 'passport.public_key' => 'NULL', @@ -2330,8 +2352,10 @@ namespace PHPSTORM_META { 'tinker.commands' => 'array', 'tinker.alias' => 'array', 'tinker.dont_alias' => 'array', + 'tinker.trust_project' => 'string', ])); override(\Illuminate\Support\Facades\Config::get(), map([ + 'concurrency.default' => 'string', 'app.name' => 'string', 'app.env' => 'string', 'app.debug' => 'boolean', @@ -2408,6 +2432,7 @@ namespace PHPSTORM_META { 'app.main_tax_rate' => 'string', 'app.main_user_id' => 'string', 'app.exception_mail' => 'string', + 'app.logistic_mail' => 'string', 'auth.defaults.guard' => 'string', 'auth.defaults.passwords' => 'string', 'auth.guards.web.driver' => 'string', @@ -2568,7 +2593,7 @@ namespace PHPSTORM_META { 'debugbar.storage.provider' => 'string', 'debugbar.editor' => 'string', 'debugbar.remote_sites_path' => 'NULL', - 'debugbar.local_sites_path' => 'NULL', + 'debugbar.local_sites_path' => 'string', 'debugbar.include_vendors' => 'boolean', 'debugbar.capture_ajax' => 'boolean', 'debugbar.add_ajax_timing' => 'boolean', @@ -2576,6 +2601,7 @@ namespace PHPSTORM_META { 'debugbar.ajax_handler_enable_tab' => 'boolean', 'debugbar.defer_datasets' => 'boolean', 'debugbar.error_handler' => 'boolean', + 'debugbar.error_level' => 'integer', 'debugbar.clockwork' => 'boolean', 'debugbar.collectors.phpinfo' => 'boolean', 'debugbar.collectors.messages' => 'boolean', @@ -2679,7 +2705,7 @@ namespace PHPSTORM_META { 'filesystems.disks.import.driver' => 'string', 'filesystems.disks.import.root' => 'string', 'filesystems.disks.import.url' => 'string', - 'filesystems.links./Users/kadmin/Websites/partner.gruene-seele.bio/public/storage' => 'string', + 'filesystems.links./var/www/html/public/storage' => 'string', 'filesystems.cloud' => 'string', 'hashing.driver' => 'string', 'hashing.bcrypt.rounds' => 'integer', @@ -2695,6 +2721,7 @@ namespace PHPSTORM_META { 'ide-helper.write_model_magic_where' => 'boolean', 'ide-helper.write_model_external_builder_methods' => 'boolean', 'ide-helper.write_model_relation_count_properties' => 'boolean', + 'ide-helper.write_model_relation_exists_properties' => 'boolean', 'ide-helper.write_eloquent_model_mixins' => 'boolean', 'ide-helper.include_helpers' => 'boolean', 'ide-helper.helper_files' => 'array', @@ -2711,11 +2738,11 @@ namespace PHPSTORM_META { 'ide-helper.include_class_docblocks' => 'boolean', 'ide-helper.force_fqn' => 'boolean', 'ide-helper.use_generics_annotations' => 'boolean', + 'ide-helper.macro_default_return_types.Illuminate\Http\Client\Factory' => 'string', 'ide-helper.additional_relation_types' => 'array', 'ide-helper.additional_relation_return_types' => 'array', 'ide-helper.enforce_nullable_relationships' => 'boolean', 'ide-helper.post_migrate' => 'array', - 'ide-helper.macroable_traits' => 'array', 'ide-helper.custom_db_types' => 'array', 'localization.supportedLocales.de.name' => 'string', 'localization.supportedLocales.de.script' => 'string', @@ -2755,13 +2782,19 @@ namespace PHPSTORM_META { 'logging.channels.null.driver' => 'string', 'logging.channels.null.handler' => 'string', 'logging.channels.emergency.path' => 'string', + 'logging.channels.browser.driver' => 'string', + 'logging.channels.browser.path' => 'string', + 'logging.channels.browser.level' => 'string', + 'logging.channels.browser.days' => 'integer', + 'logging.channels.deprecations.driver' => 'string', + 'logging.channels.deprecations.handler' => 'string', 'mail.default' => 'string', 'mail.mailers.smtp.transport' => 'string', 'mail.mailers.smtp.host' => 'string', 'mail.mailers.smtp.port' => 'string', - 'mail.mailers.smtp.encryption' => 'NULL', - 'mail.mailers.smtp.username' => 'string', - 'mail.mailers.smtp.password' => 'string', + 'mail.mailers.smtp.encryption' => 'string', + 'mail.mailers.smtp.username' => 'NULL', + 'mail.mailers.smtp.password' => 'NULL', 'mail.mailers.ses.transport' => 'string', 'mail.mailers.postmark.transport' => 'string', 'mail.mailers.resend.transport' => 'string', @@ -2849,7 +2882,7 @@ namespace PHPSTORM_META { 'profanity.strReplace.x' => 'string', 'profanity.strReplace.y' => 'string', 'profanity.strReplace.z' => 'string', - 'profanity.defaults' => 'array', + 'profanity.full_word_check' => 'array', 'queue.default' => 'string', 'queue.connections.sync.driver' => 'string', 'queue.connections.database.driver' => 'string', @@ -2920,7 +2953,6 @@ namespace PHPSTORM_META { 'view.paths' => 'array', 'view.compiled' => 'string', 'view.expires' => 'boolean', - 'concurrency.default' => 'string', 'translation.driver' => 'string', 'translation.route_group_config.middleware' => 'string', 'translation.translation_methods' => 'array', @@ -2929,6 +2961,13 @@ namespace PHPSTORM_META { 'translation.database.connection' => 'string', 'translation.database.languages_table' => 'string', 'translation.database.translations_table' => 'string', + 'boost.enabled' => 'boolean', + 'boost.browser_logs_watcher' => 'boolean', + 'boost.executable_paths.php' => 'NULL', + 'boost.executable_paths.composer' => 'NULL', + 'boost.executable_paths.npm' => 'NULL', + 'boost.executable_paths.vendor_bin' => 'NULL', + 'mcp.redirect_domains' => 'array', 'passport.guard' => 'string', 'passport.private_key' => 'NULL', 'passport.public_key' => 'NULL', @@ -3029,6 +3068,7 @@ namespace PHPSTORM_META { 'tinker.commands' => 'array', 'tinker.alias' => 'array', 'tinker.dont_alias' => 'array', + 'tinker.trust_project' => 'string', ])); @@ -3071,91 +3111,93 @@ namespace PHPSTORM_META { 'getModelClass','viewAny','view','create','update', 'delete','isOwner','denyWithStatus','denyAsNotFound',); registerArgumentsSet('configs', -'app.name','app.env','app.debug','app.url','app.frontend_url', -'app.asset_url','app.timezone','app.locale','app.fallback_locale','app.faker_locale', -'app.cipher','app.key','app.previous_keys','app.maintenance.driver','app.maintenance.store', -'app.providers','app.aliases.App','app.aliases.Arr','app.aliases.Artisan','app.aliases.Auth', -'app.aliases.Blade','app.aliases.Broadcast','app.aliases.Bus','app.aliases.Cache','app.aliases.Config', -'app.aliases.Cookie','app.aliases.Crypt','app.aliases.DB','app.aliases.Eloquent','app.aliases.Event', -'app.aliases.File','app.aliases.Gate','app.aliases.Hash','app.aliases.Http','app.aliases.Lang', -'app.aliases.Log','app.aliases.Mail','app.aliases.Notification','app.aliases.Password','app.aliases.Queue', -'app.aliases.Redirect','app.aliases.Redis','app.aliases.Request','app.aliases.Response','app.aliases.Route', -'app.aliases.Schema','app.aliases.Session','app.aliases.Storage','app.aliases.Str','app.aliases.URL', -'app.aliases.Validator','app.aliases.View','app.aliases.Form','app.aliases.HTML','app.aliases.Image', -'app.aliases.Carbon','app.aliases.Date','app.aliases.HTMLHelper','app.aliases.Util','app.aliases.Excel', -'app.aliases.DataTables','app.aliases.Yard','app.api_domain','app.domain','app.promo_url', -'app.promo_domain','app.shop_url','app.shop_domain','app.checkout_mail','app.checkout_test_mail', -'app.info_mail','app.info_test_mail','app.main_tax','app.main_tax_rate','app.main_user_id', -'app.exception_mail','auth.defaults.guard','auth.defaults.passwords','auth.guards.web.driver','auth.guards.web.provider', -'auth.guards.user.driver','auth.guards.user.provider','auth.guards.api.driver','auth.guards.api.provider','auth.providers.users.driver', -'auth.providers.users.model','auth.passwords.users.provider','auth.passwords.users.table','auth.passwords.users.expire','auth.passwords.users.throttle', -'auth.password_timeout','broadcasting.default','broadcasting.connections.reverb.driver','broadcasting.connections.reverb.key','broadcasting.connections.reverb.secret', -'broadcasting.connections.reverb.app_id','broadcasting.connections.reverb.options.host','broadcasting.connections.reverb.options.port','broadcasting.connections.reverb.options.scheme','broadcasting.connections.reverb.options.useTLS', -'broadcasting.connections.reverb.client_options','broadcasting.connections.pusher.driver','broadcasting.connections.pusher.key','broadcasting.connections.pusher.secret','broadcasting.connections.pusher.app_id', -'broadcasting.connections.pusher.options.cluster','broadcasting.connections.pusher.options.useTLS','broadcasting.connections.ably.driver','broadcasting.connections.ably.key','broadcasting.connections.log.driver', -'broadcasting.connections.null.driver','broadcasting.connections.redis.driver','broadcasting.connections.redis.connection','cache.default','cache.stores.array.driver', -'cache.stores.database.driver','cache.stores.database.table','cache.stores.database.connection','cache.stores.file.driver','cache.stores.file.path', -'cache.stores.memcached.driver','cache.stores.memcached.persistent_id','cache.stores.memcached.sasl','cache.stores.memcached.options','cache.stores.memcached.servers.0.host', -'cache.stores.memcached.servers.0.port','cache.stores.memcached.servers.0.weight','cache.stores.redis.driver','cache.stores.redis.connection','cache.stores.dynamodb.driver', -'cache.stores.dynamodb.key','cache.stores.dynamodb.secret','cache.stores.dynamodb.region','cache.stores.dynamodb.table','cache.stores.dynamodb.endpoint', -'cache.stores.octane.driver','cache.stores.apc.driver','cache.prefix','cart.tax','cart.database.connection', -'cart.database.table','cart.destroy_on_logout','cart.format.decimals','cart.format.decimal_point','cart.format.thousand_seperator', -'cart.discountOnFees','cors.paths','cors.allowed_methods','cors.allowed_origins','cors.allowed_origins_patterns', -'cors.allowed_headers','cors.exposed_headers','cors.max_age','cors.supports_credentials','database.default', -'database.connections.sqlite.driver','database.connections.sqlite.url','database.connections.sqlite.database','database.connections.sqlite.prefix','database.connections.sqlite.foreign_key_constraints', -'database.connections.mysql.driver','database.connections.mysql.url','database.connections.mysql.host','database.connections.mysql.port','database.connections.mysql.database', -'database.connections.mysql.username','database.connections.mysql.password','database.connections.mysql.unix_socket','database.connections.mysql.charset','database.connections.mysql.collation', -'database.connections.mysql.prefix','database.connections.mysql.prefix_indexes','database.connections.mysql.strict','database.connections.mysql.engine','database.connections.mysql.options', -'database.connections.mariadb.driver','database.connections.mariadb.url','database.connections.mariadb.host','database.connections.mariadb.port','database.connections.mariadb.database', -'database.connections.mariadb.username','database.connections.mariadb.password','database.connections.mariadb.unix_socket','database.connections.mariadb.charset','database.connections.mariadb.collation', -'database.connections.mariadb.prefix','database.connections.mariadb.prefix_indexes','database.connections.mariadb.strict','database.connections.mariadb.engine','database.connections.mariadb.options', -'database.connections.pgsql.driver','database.connections.pgsql.url','database.connections.pgsql.host','database.connections.pgsql.port','database.connections.pgsql.database', -'database.connections.pgsql.username','database.connections.pgsql.password','database.connections.pgsql.charset','database.connections.pgsql.prefix','database.connections.pgsql.prefix_indexes', -'database.connections.pgsql.schema','database.connections.pgsql.sslmode','database.connections.sqlsrv.driver','database.connections.sqlsrv.url','database.connections.sqlsrv.host', -'database.connections.sqlsrv.port','database.connections.sqlsrv.database','database.connections.sqlsrv.username','database.connections.sqlsrv.password','database.connections.sqlsrv.charset', -'database.connections.sqlsrv.prefix','database.connections.sqlsrv.prefix_indexes','database.migrations','database.redis.client','database.redis.options.cluster', -'database.redis.options.prefix','database.redis.default.url','database.redis.default.host','database.redis.default.password','database.redis.default.port', -'database.redis.default.database','database.redis.cache.url','database.redis.cache.host','database.redis.cache.password','database.redis.cache.port', -'database.redis.cache.database','debugbar.enabled','debugbar.hide_empty_tabs','debugbar.except','debugbar.storage.enabled', -'debugbar.storage.driver','debugbar.storage.path','debugbar.storage.connection','debugbar.storage.provider','debugbar.editor', -'debugbar.remote_sites_path','debugbar.local_sites_path','debugbar.include_vendors','debugbar.capture_ajax','debugbar.add_ajax_timing', -'debugbar.ajax_handler_auto_show','debugbar.ajax_handler_enable_tab','debugbar.defer_datasets','debugbar.error_handler','debugbar.clockwork', -'debugbar.collectors.phpinfo','debugbar.collectors.messages','debugbar.collectors.time','debugbar.collectors.memory','debugbar.collectors.exceptions', -'debugbar.collectors.log','debugbar.collectors.db','debugbar.collectors.views','debugbar.collectors.route','debugbar.collectors.auth', -'debugbar.collectors.gate','debugbar.collectors.session','debugbar.collectors.symfony_request','debugbar.collectors.mail','debugbar.collectors.laravel', -'debugbar.collectors.events','debugbar.collectors.default_request','debugbar.collectors.logs','debugbar.collectors.files','debugbar.collectors.config', -'debugbar.collectors.cache','debugbar.collectors.models','debugbar.collectors.livewire','debugbar.options.auth.show_name','debugbar.options.db.with_params', -'debugbar.options.db.backtrace','debugbar.options.db.backtrace_exclude_paths','debugbar.options.db.timeline','debugbar.options.db.explain.enabled','debugbar.options.db.explain.types', -'debugbar.options.db.hints','debugbar.options.db.show_copy','debugbar.options.mail.full_log','debugbar.options.views.data','debugbar.options.route.label', -'debugbar.options.logs.file','debugbar.options.cache.values','debugbar.inject','debugbar.route_prefix','debugbar.route_middleware', -'debugbar.route_domain','debugbar.theme','debugbar.debug_backtrace_limit','dompdf.show_warnings','dompdf.public_path', -'dompdf.convert_entities','dompdf.options.font_dir','dompdf.options.font_cache','dompdf.options.temp_dir','dompdf.options.chroot', -'dompdf.options.allowed_protocols.file://.rules','dompdf.options.allowed_protocols.http://.rules','dompdf.options.allowed_protocols.https://.rules','dompdf.options.log_output_file','dompdf.options.enable_font_subsetting', -'dompdf.options.pdf_backend','dompdf.options.default_media_type','dompdf.options.default_paper_size','dompdf.options.default_paper_orientation','dompdf.options.default_font', -'dompdf.options.dpi','dompdf.options.enable_php','dompdf.options.enable_javascript','dompdf.options.enable_remote','dompdf.options.font_height_ratio', -'dompdf.options.enable_html5_parser','dompdf.orientation','dompdf.defines.font_dir','dompdf.defines.font_cache','dompdf.defines.temp_dir', -'dompdf.defines.chroot','dompdf.defines.enable_font_subsetting','dompdf.defines.pdf_backend','dompdf.defines.default_media_type','dompdf.defines.default_paper_size', -'dompdf.defines.default_font','dompdf.defines.dpi','dompdf.defines.enable_php','dompdf.defines.enable_javascript','dompdf.defines.enable_remote', -'dompdf.defines.font_height_ratio','dompdf.defines.enable_html5_parser','filesystems.default','filesystems.disks.local.driver','filesystems.disks.local.root', -'filesystems.disks.public.driver','filesystems.disks.public.root','filesystems.disks.public.url','filesystems.disks.public.visibility','filesystems.disks.s3.driver', -'filesystems.disks.s3.key','filesystems.disks.s3.secret','filesystems.disks.s3.region','filesystems.disks.s3.bucket','filesystems.disks.s3.url', -'filesystems.disks.user.driver','filesystems.disks.user.root','filesystems.disks.user.url','filesystems.disks.user.visibility','filesystems.disks.import.driver', -'filesystems.disks.import.root','filesystems.disks.import.url','filesystems.links./Users/kadmin/Websites/partner.gruene-seele.bio/public/storage','filesystems.cloud','hashing.driver', -'hashing.bcrypt.rounds','hashing.argon.memory','hashing.argon.threads','hashing.argon.time','hashing.rehash_on_login', -'ide-helper.filename','ide-helper.models_filename','ide-helper.meta_filename','ide-helper.include_fluent','ide-helper.include_factory_builders', -'ide-helper.write_model_magic_where','ide-helper.write_model_external_builder_methods','ide-helper.write_model_relation_count_properties','ide-helper.write_eloquent_model_mixins','ide-helper.include_helpers', -'ide-helper.helper_files','ide-helper.model_locations','ide-helper.ignored_models','ide-helper.model_hooks','ide-helper.extra.Eloquent', -'ide-helper.extra.Session','ide-helper.magic','ide-helper.interfaces','ide-helper.model_camel_case_properties','ide-helper.type_overrides.integer', -'ide-helper.type_overrides.boolean','ide-helper.include_class_docblocks','ide-helper.force_fqn','ide-helper.use_generics_annotations','ide-helper.additional_relation_types', -'ide-helper.additional_relation_return_types','ide-helper.enforce_nullable_relationships','ide-helper.post_migrate','ide-helper.macroable_traits','ide-helper.custom_db_types', -'localization.supportedLocales.de.name','localization.supportedLocales.de.script','localization.supportedLocales.de.native','localization.supportedLocales.de.regional','logging.default', -'logging.deprecations.channel','logging.deprecations.trace','logging.channels.stack.driver','logging.channels.stack.channels','logging.channels.stack.ignore_exceptions', -'logging.channels.single.driver','logging.channels.single.path','logging.channels.single.level','logging.channels.daily.driver','logging.channels.daily.path', -'logging.channels.daily.level','logging.channels.daily.days','logging.channels.slack.driver','logging.channels.slack.url','logging.channels.slack.username', -'logging.channels.slack.emoji','logging.channels.slack.level','logging.channels.papertrail.driver','logging.channels.papertrail.level','logging.channels.papertrail.handler', -'logging.channels.papertrail.handler_with.host','logging.channels.papertrail.handler_with.port','logging.channels.stderr.driver','logging.channels.stderr.handler','logging.channels.stderr.formatter', -'logging.channels.stderr.with.stream','logging.channels.syslog.driver','logging.channels.syslog.level','logging.channels.errorlog.driver','logging.channels.errorlog.level', -'logging.channels.null.driver','logging.channels.null.handler','logging.channels.emergency.path','mail.default','mail.mailers.smtp.transport', +'concurrency.default','app.name','app.env','app.debug','app.url', +'app.frontend_url','app.asset_url','app.timezone','app.locale','app.fallback_locale', +'app.faker_locale','app.cipher','app.key','app.previous_keys','app.maintenance.driver', +'app.maintenance.store','app.providers','app.aliases.App','app.aliases.Arr','app.aliases.Artisan', +'app.aliases.Auth','app.aliases.Blade','app.aliases.Broadcast','app.aliases.Bus','app.aliases.Cache', +'app.aliases.Config','app.aliases.Cookie','app.aliases.Crypt','app.aliases.DB','app.aliases.Eloquent', +'app.aliases.Event','app.aliases.File','app.aliases.Gate','app.aliases.Hash','app.aliases.Http', +'app.aliases.Lang','app.aliases.Log','app.aliases.Mail','app.aliases.Notification','app.aliases.Password', +'app.aliases.Queue','app.aliases.Redirect','app.aliases.Redis','app.aliases.Request','app.aliases.Response', +'app.aliases.Route','app.aliases.Schema','app.aliases.Session','app.aliases.Storage','app.aliases.Str', +'app.aliases.URL','app.aliases.Validator','app.aliases.View','app.aliases.Form','app.aliases.HTML', +'app.aliases.Image','app.aliases.Carbon','app.aliases.Date','app.aliases.HTMLHelper','app.aliases.Util', +'app.aliases.Excel','app.aliases.DataTables','app.aliases.Yard','app.api_domain','app.domain', +'app.promo_url','app.promo_domain','app.shop_url','app.shop_domain','app.checkout_mail', +'app.checkout_test_mail','app.info_mail','app.info_test_mail','app.main_tax','app.main_tax_rate', +'app.main_user_id','app.exception_mail','app.logistic_mail','auth.defaults.guard','auth.defaults.passwords', +'auth.guards.web.driver','auth.guards.web.provider','auth.guards.user.driver','auth.guards.user.provider','auth.guards.api.driver', +'auth.guards.api.provider','auth.providers.users.driver','auth.providers.users.model','auth.passwords.users.provider','auth.passwords.users.table', +'auth.passwords.users.expire','auth.passwords.users.throttle','auth.password_timeout','broadcasting.default','broadcasting.connections.reverb.driver', +'broadcasting.connections.reverb.key','broadcasting.connections.reverb.secret','broadcasting.connections.reverb.app_id','broadcasting.connections.reverb.options.host','broadcasting.connections.reverb.options.port', +'broadcasting.connections.reverb.options.scheme','broadcasting.connections.reverb.options.useTLS','broadcasting.connections.reverb.client_options','broadcasting.connections.pusher.driver','broadcasting.connections.pusher.key', +'broadcasting.connections.pusher.secret','broadcasting.connections.pusher.app_id','broadcasting.connections.pusher.options.cluster','broadcasting.connections.pusher.options.useTLS','broadcasting.connections.ably.driver', +'broadcasting.connections.ably.key','broadcasting.connections.log.driver','broadcasting.connections.null.driver','broadcasting.connections.redis.driver','broadcasting.connections.redis.connection', +'cache.default','cache.stores.array.driver','cache.stores.database.driver','cache.stores.database.table','cache.stores.database.connection', +'cache.stores.file.driver','cache.stores.file.path','cache.stores.memcached.driver','cache.stores.memcached.persistent_id','cache.stores.memcached.sasl', +'cache.stores.memcached.options','cache.stores.memcached.servers.0.host','cache.stores.memcached.servers.0.port','cache.stores.memcached.servers.0.weight','cache.stores.redis.driver', +'cache.stores.redis.connection','cache.stores.dynamodb.driver','cache.stores.dynamodb.key','cache.stores.dynamodb.secret','cache.stores.dynamodb.region', +'cache.stores.dynamodb.table','cache.stores.dynamodb.endpoint','cache.stores.octane.driver','cache.stores.apc.driver','cache.prefix', +'cart.tax','cart.database.connection','cart.database.table','cart.destroy_on_logout','cart.format.decimals', +'cart.format.decimal_point','cart.format.thousand_seperator','cart.discountOnFees','cors.paths','cors.allowed_methods', +'cors.allowed_origins','cors.allowed_origins_patterns','cors.allowed_headers','cors.exposed_headers','cors.max_age', +'cors.supports_credentials','database.default','database.connections.sqlite.driver','database.connections.sqlite.url','database.connections.sqlite.database', +'database.connections.sqlite.prefix','database.connections.sqlite.foreign_key_constraints','database.connections.mysql.driver','database.connections.mysql.url','database.connections.mysql.host', +'database.connections.mysql.port','database.connections.mysql.database','database.connections.mysql.username','database.connections.mysql.password','database.connections.mysql.unix_socket', +'database.connections.mysql.charset','database.connections.mysql.collation','database.connections.mysql.prefix','database.connections.mysql.prefix_indexes','database.connections.mysql.strict', +'database.connections.mysql.engine','database.connections.mysql.options','database.connections.mariadb.driver','database.connections.mariadb.url','database.connections.mariadb.host', +'database.connections.mariadb.port','database.connections.mariadb.database','database.connections.mariadb.username','database.connections.mariadb.password','database.connections.mariadb.unix_socket', +'database.connections.mariadb.charset','database.connections.mariadb.collation','database.connections.mariadb.prefix','database.connections.mariadb.prefix_indexes','database.connections.mariadb.strict', +'database.connections.mariadb.engine','database.connections.mariadb.options','database.connections.pgsql.driver','database.connections.pgsql.url','database.connections.pgsql.host', +'database.connections.pgsql.port','database.connections.pgsql.database','database.connections.pgsql.username','database.connections.pgsql.password','database.connections.pgsql.charset', +'database.connections.pgsql.prefix','database.connections.pgsql.prefix_indexes','database.connections.pgsql.schema','database.connections.pgsql.sslmode','database.connections.sqlsrv.driver', +'database.connections.sqlsrv.url','database.connections.sqlsrv.host','database.connections.sqlsrv.port','database.connections.sqlsrv.database','database.connections.sqlsrv.username', +'database.connections.sqlsrv.password','database.connections.sqlsrv.charset','database.connections.sqlsrv.prefix','database.connections.sqlsrv.prefix_indexes','database.migrations', +'database.redis.client','database.redis.options.cluster','database.redis.options.prefix','database.redis.default.url','database.redis.default.host', +'database.redis.default.password','database.redis.default.port','database.redis.default.database','database.redis.cache.url','database.redis.cache.host', +'database.redis.cache.password','database.redis.cache.port','database.redis.cache.database','debugbar.enabled','debugbar.hide_empty_tabs', +'debugbar.except','debugbar.storage.enabled','debugbar.storage.driver','debugbar.storage.path','debugbar.storage.connection', +'debugbar.storage.provider','debugbar.editor','debugbar.remote_sites_path','debugbar.local_sites_path','debugbar.include_vendors', +'debugbar.capture_ajax','debugbar.add_ajax_timing','debugbar.ajax_handler_auto_show','debugbar.ajax_handler_enable_tab','debugbar.defer_datasets', +'debugbar.error_handler','debugbar.error_level','debugbar.clockwork','debugbar.collectors.phpinfo','debugbar.collectors.messages', +'debugbar.collectors.time','debugbar.collectors.memory','debugbar.collectors.exceptions','debugbar.collectors.log','debugbar.collectors.db', +'debugbar.collectors.views','debugbar.collectors.route','debugbar.collectors.auth','debugbar.collectors.gate','debugbar.collectors.session', +'debugbar.collectors.symfony_request','debugbar.collectors.mail','debugbar.collectors.laravel','debugbar.collectors.events','debugbar.collectors.default_request', +'debugbar.collectors.logs','debugbar.collectors.files','debugbar.collectors.config','debugbar.collectors.cache','debugbar.collectors.models', +'debugbar.collectors.livewire','debugbar.options.auth.show_name','debugbar.options.db.with_params','debugbar.options.db.backtrace','debugbar.options.db.backtrace_exclude_paths', +'debugbar.options.db.timeline','debugbar.options.db.explain.enabled','debugbar.options.db.explain.types','debugbar.options.db.hints','debugbar.options.db.show_copy', +'debugbar.options.mail.full_log','debugbar.options.views.data','debugbar.options.route.label','debugbar.options.logs.file','debugbar.options.cache.values', +'debugbar.inject','debugbar.route_prefix','debugbar.route_middleware','debugbar.route_domain','debugbar.theme', +'debugbar.debug_backtrace_limit','dompdf.show_warnings','dompdf.public_path','dompdf.convert_entities','dompdf.options.font_dir', +'dompdf.options.font_cache','dompdf.options.temp_dir','dompdf.options.chroot','dompdf.options.allowed_protocols.file://.rules','dompdf.options.allowed_protocols.http://.rules', +'dompdf.options.allowed_protocols.https://.rules','dompdf.options.log_output_file','dompdf.options.enable_font_subsetting','dompdf.options.pdf_backend','dompdf.options.default_media_type', +'dompdf.options.default_paper_size','dompdf.options.default_paper_orientation','dompdf.options.default_font','dompdf.options.dpi','dompdf.options.enable_php', +'dompdf.options.enable_javascript','dompdf.options.enable_remote','dompdf.options.font_height_ratio','dompdf.options.enable_html5_parser','dompdf.orientation', +'dompdf.defines.font_dir','dompdf.defines.font_cache','dompdf.defines.temp_dir','dompdf.defines.chroot','dompdf.defines.enable_font_subsetting', +'dompdf.defines.pdf_backend','dompdf.defines.default_media_type','dompdf.defines.default_paper_size','dompdf.defines.default_font','dompdf.defines.dpi', +'dompdf.defines.enable_php','dompdf.defines.enable_javascript','dompdf.defines.enable_remote','dompdf.defines.font_height_ratio','dompdf.defines.enable_html5_parser', +'filesystems.default','filesystems.disks.local.driver','filesystems.disks.local.root','filesystems.disks.public.driver','filesystems.disks.public.root', +'filesystems.disks.public.url','filesystems.disks.public.visibility','filesystems.disks.s3.driver','filesystems.disks.s3.key','filesystems.disks.s3.secret', +'filesystems.disks.s3.region','filesystems.disks.s3.bucket','filesystems.disks.s3.url','filesystems.disks.user.driver','filesystems.disks.user.root', +'filesystems.disks.user.url','filesystems.disks.user.visibility','filesystems.disks.import.driver','filesystems.disks.import.root','filesystems.disks.import.url', +'filesystems.links./var/www/html/public/storage','filesystems.cloud','hashing.driver','hashing.bcrypt.rounds','hashing.argon.memory', +'hashing.argon.threads','hashing.argon.time','hashing.rehash_on_login','ide-helper.filename','ide-helper.models_filename', +'ide-helper.meta_filename','ide-helper.include_fluent','ide-helper.include_factory_builders','ide-helper.write_model_magic_where','ide-helper.write_model_external_builder_methods', +'ide-helper.write_model_relation_count_properties','ide-helper.write_model_relation_exists_properties','ide-helper.write_eloquent_model_mixins','ide-helper.include_helpers','ide-helper.helper_files', +'ide-helper.model_locations','ide-helper.ignored_models','ide-helper.model_hooks','ide-helper.extra.Eloquent','ide-helper.extra.Session', +'ide-helper.magic','ide-helper.interfaces','ide-helper.model_camel_case_properties','ide-helper.type_overrides.integer','ide-helper.type_overrides.boolean', +'ide-helper.include_class_docblocks','ide-helper.force_fqn','ide-helper.use_generics_annotations','ide-helper.macro_default_return_types.Illuminate\\Http\\Client\\Factory','ide-helper.additional_relation_types', +'ide-helper.additional_relation_return_types','ide-helper.enforce_nullable_relationships','ide-helper.post_migrate','ide-helper.custom_db_types','localization.supportedLocales.de.name', +'localization.supportedLocales.de.script','localization.supportedLocales.de.native','localization.supportedLocales.de.regional','logging.default','logging.deprecations.channel', +'logging.deprecations.trace','logging.channels.stack.driver','logging.channels.stack.channels','logging.channels.stack.ignore_exceptions','logging.channels.single.driver', +'logging.channels.single.path','logging.channels.single.level','logging.channels.daily.driver','logging.channels.daily.path','logging.channels.daily.level', +'logging.channels.daily.days','logging.channels.slack.driver','logging.channels.slack.url','logging.channels.slack.username','logging.channels.slack.emoji', +'logging.channels.slack.level','logging.channels.papertrail.driver','logging.channels.papertrail.level','logging.channels.papertrail.handler','logging.channels.papertrail.handler_with.host', +'logging.channels.papertrail.handler_with.port','logging.channels.stderr.driver','logging.channels.stderr.handler','logging.channels.stderr.formatter','logging.channels.stderr.with.stream', +'logging.channels.syslog.driver','logging.channels.syslog.level','logging.channels.errorlog.driver','logging.channels.errorlog.level','logging.channels.null.driver', +'logging.channels.null.handler','logging.channels.emergency.path','logging.channels.browser.driver','logging.channels.browser.path','logging.channels.browser.level', +'logging.channels.browser.days','logging.channels.deprecations.driver','logging.channels.deprecations.handler','mail.default','mail.mailers.smtp.transport', 'mail.mailers.smtp.host','mail.mailers.smtp.port','mail.mailers.smtp.encryption','mail.mailers.smtp.username','mail.mailers.smtp.password', 'mail.mailers.ses.transport','mail.mailers.postmark.transport','mail.mailers.resend.transport','mail.mailers.sendmail.transport','mail.mailers.sendmail.path', 'mail.mailers.log.transport','mail.mailers.log.channel','mail.mailers.array.transport','mail.mailers.failover.transport','mail.mailers.failover.mailers', @@ -3174,7 +3216,7 @@ namespace PHPSTORM_META { 'profanity.strReplace.j','profanity.strReplace.k','profanity.strReplace.l','profanity.strReplace.m','profanity.strReplace.n', 'profanity.strReplace.o','profanity.strReplace.p','profanity.strReplace.q','profanity.strReplace.r','profanity.strReplace.s', 'profanity.strReplace.t','profanity.strReplace.u','profanity.strReplace.v','profanity.strReplace.w','profanity.strReplace.x', -'profanity.strReplace.y','profanity.strReplace.z','profanity.defaults','queue.default','queue.connections.sync.driver', +'profanity.strReplace.y','profanity.strReplace.z','profanity.full_word_check','queue.default','queue.connections.sync.driver', 'queue.connections.database.driver','queue.connections.database.table','queue.connections.database.queue','queue.connections.database.retry_after','queue.connections.beanstalkd.driver', 'queue.connections.beanstalkd.host','queue.connections.beanstalkd.queue','queue.connections.beanstalkd.retry_after','queue.connections.beanstalkd.block_for','queue.connections.sqs.driver', 'queue.connections.sqs.key','queue.connections.sqs.secret','queue.connections.sqs.prefix','queue.connections.sqs.queue','queue.connections.sqs.region', @@ -3188,29 +3230,30 @@ namespace PHPSTORM_META { 'session.http_only','session.same_site','session.partitioned','sluggable.source','sluggable.maxLength', 'sluggable.maxLengthKeepWords','sluggable.method','sluggable.separator','sluggable.unique','sluggable.uniqueSuffix', 'sluggable.firstUniqueSuffix','sluggable.includeTrashed','sluggable.reserved','sluggable.onUpdate','sluggable.slugEngineOptions', -'view.paths','view.compiled','view.expires','concurrency.default','translation.driver', -'translation.route_group_config.middleware','translation.translation_methods','translation.scan_paths','translation.ui_url','translation.database.connection', -'translation.database.languages_table','translation.database.translations_table','passport.guard','passport.private_key','passport.public_key', -'passport.connection','passport.client_uuids','passport.personal_access_client.id','passport.personal_access_client.secret','excel.exports.chunk_size', -'excel.exports.pre_calculate_formulas','excel.exports.strict_null_comparison','excel.exports.csv.delimiter','excel.exports.csv.enclosure','excel.exports.csv.line_ending', -'excel.exports.csv.use_bom','excel.exports.csv.include_separator_line','excel.exports.csv.excel_compatibility','excel.exports.csv.output_encoding','excel.exports.csv.test_auto_detect', -'excel.exports.properties.creator','excel.exports.properties.lastModifiedBy','excel.exports.properties.title','excel.exports.properties.description','excel.exports.properties.subject', -'excel.exports.properties.keywords','excel.exports.properties.category','excel.exports.properties.manager','excel.exports.properties.company','excel.imports.read_only', -'excel.imports.ignore_empty','excel.imports.heading_row.formatter','excel.imports.csv.delimiter','excel.imports.csv.enclosure','excel.imports.csv.escape_character', -'excel.imports.csv.contiguous','excel.imports.csv.input_encoding','excel.imports.properties.creator','excel.imports.properties.lastModifiedBy','excel.imports.properties.title', -'excel.imports.properties.description','excel.imports.properties.subject','excel.imports.properties.keywords','excel.imports.properties.category','excel.imports.properties.manager', -'excel.imports.properties.company','excel.imports.cells.middleware','excel.extension_detector.xlsx','excel.extension_detector.xlsm','excel.extension_detector.xltx', -'excel.extension_detector.xltm','excel.extension_detector.xls','excel.extension_detector.xlt','excel.extension_detector.ods','excel.extension_detector.ots', -'excel.extension_detector.slk','excel.extension_detector.xml','excel.extension_detector.gnumeric','excel.extension_detector.htm','excel.extension_detector.html', -'excel.extension_detector.csv','excel.extension_detector.tsv','excel.extension_detector.pdf','excel.value_binder.default','excel.cache.driver', -'excel.cache.batch.memory_limit','excel.cache.illuminate.store','excel.cache.default_ttl','excel.transactions.handler','excel.transactions.db.connection', -'excel.temporary_files.local_path','excel.temporary_files.local_permissions','excel.temporary_files.remote_disk','excel.temporary_files.remote_prefix','excel.temporary_files.force_resync_remote', -'flare.key','flare.flare_middleware','flare.flare_middleware.Spatie\\LaravelIgnition\\FlareMiddleware\\AddLogs.maximum_number_of_collected_logs','flare.flare_middleware.Spatie\\LaravelIgnition\\FlareMiddleware\\AddQueries.maximum_number_of_collected_queries','flare.flare_middleware.Spatie\\LaravelIgnition\\FlareMiddleware\\AddQueries.report_query_bindings', -'flare.flare_middleware.Spatie\\LaravelIgnition\\FlareMiddleware\\AddJobs.max_chained_job_reporting_depth','flare.flare_middleware.Spatie\\FlareClient\\FlareMiddleware\\CensorRequestBodyFields.censor_fields','flare.flare_middleware.Spatie\\FlareClient\\FlareMiddleware\\CensorRequestHeaders.headers','flare.send_logs_as_events','ignition.editor', -'ignition.theme','ignition.enable_share_button','ignition.register_commands','ignition.solution_providers','ignition.ignored_solution_providers', -'ignition.enable_runnable_solutions','ignition.remote_sites_path','ignition.local_sites_path','ignition.housekeeping_endpoint_prefix','ignition.settings_file_path', -'ignition.recorders','ignition.open_ai_key','ignition.with_stack_frame_arguments','ignition.argument_reducers','tinker.commands', -'tinker.alias','tinker.dont_alias',); +'view.paths','view.compiled','view.expires','translation.driver','translation.route_group_config.middleware', +'translation.translation_methods','translation.scan_paths','translation.ui_url','translation.database.connection','translation.database.languages_table', +'translation.database.translations_table','boost.enabled','boost.browser_logs_watcher','boost.executable_paths.php','boost.executable_paths.composer', +'boost.executable_paths.npm','boost.executable_paths.vendor_bin','mcp.redirect_domains','passport.guard','passport.private_key', +'passport.public_key','passport.connection','passport.client_uuids','passport.personal_access_client.id','passport.personal_access_client.secret', +'excel.exports.chunk_size','excel.exports.pre_calculate_formulas','excel.exports.strict_null_comparison','excel.exports.csv.delimiter','excel.exports.csv.enclosure', +'excel.exports.csv.line_ending','excel.exports.csv.use_bom','excel.exports.csv.include_separator_line','excel.exports.csv.excel_compatibility','excel.exports.csv.output_encoding', +'excel.exports.csv.test_auto_detect','excel.exports.properties.creator','excel.exports.properties.lastModifiedBy','excel.exports.properties.title','excel.exports.properties.description', +'excel.exports.properties.subject','excel.exports.properties.keywords','excel.exports.properties.category','excel.exports.properties.manager','excel.exports.properties.company', +'excel.imports.read_only','excel.imports.ignore_empty','excel.imports.heading_row.formatter','excel.imports.csv.delimiter','excel.imports.csv.enclosure', +'excel.imports.csv.escape_character','excel.imports.csv.contiguous','excel.imports.csv.input_encoding','excel.imports.properties.creator','excel.imports.properties.lastModifiedBy', +'excel.imports.properties.title','excel.imports.properties.description','excel.imports.properties.subject','excel.imports.properties.keywords','excel.imports.properties.category', +'excel.imports.properties.manager','excel.imports.properties.company','excel.imports.cells.middleware','excel.extension_detector.xlsx','excel.extension_detector.xlsm', +'excel.extension_detector.xltx','excel.extension_detector.xltm','excel.extension_detector.xls','excel.extension_detector.xlt','excel.extension_detector.ods', +'excel.extension_detector.ots','excel.extension_detector.slk','excel.extension_detector.xml','excel.extension_detector.gnumeric','excel.extension_detector.htm', +'excel.extension_detector.html','excel.extension_detector.csv','excel.extension_detector.tsv','excel.extension_detector.pdf','excel.value_binder.default', +'excel.cache.driver','excel.cache.batch.memory_limit','excel.cache.illuminate.store','excel.cache.default_ttl','excel.transactions.handler', +'excel.transactions.db.connection','excel.temporary_files.local_path','excel.temporary_files.local_permissions','excel.temporary_files.remote_disk','excel.temporary_files.remote_prefix', +'excel.temporary_files.force_resync_remote','flare.key','flare.flare_middleware','flare.flare_middleware.Spatie\\LaravelIgnition\\FlareMiddleware\\AddLogs.maximum_number_of_collected_logs','flare.flare_middleware.Spatie\\LaravelIgnition\\FlareMiddleware\\AddQueries.maximum_number_of_collected_queries', +'flare.flare_middleware.Spatie\\LaravelIgnition\\FlareMiddleware\\AddQueries.report_query_bindings','flare.flare_middleware.Spatie\\LaravelIgnition\\FlareMiddleware\\AddJobs.max_chained_job_reporting_depth','flare.flare_middleware.Spatie\\FlareClient\\FlareMiddleware\\CensorRequestBodyFields.censor_fields','flare.flare_middleware.Spatie\\FlareClient\\FlareMiddleware\\CensorRequestHeaders.headers','flare.send_logs_as_events', +'ignition.editor','ignition.theme','ignition.enable_share_button','ignition.register_commands','ignition.solution_providers', +'ignition.ignored_solution_providers','ignition.enable_runnable_solutions','ignition.remote_sites_path','ignition.local_sites_path','ignition.housekeeping_endpoint_prefix', +'ignition.settings_file_path','ignition.recorders','ignition.open_ai_key','ignition.with_stack_frame_arguments','ignition.argument_reducers', +'tinker.commands','tinker.alias','tinker.dont_alias','tinker.trust_project',); registerArgumentsSet('middleware', 'web','api','auth','auth.basic','copyreader', 'admin','superadmin','sysadmin','bindings','active.account', @@ -3219,56 +3262,57 @@ namespace PHPSTORM_META { registerArgumentsSet('routes', 'debugbar.openhandler','debugbar.clockwork','debugbar.assets.css','debugbar.assets.js','debugbar.cache.delete', 'debugbar.queries.explain','languages.index','languages.create','languages.store','languages.translations.index', -'languages.translations.update','languages.translations.create','languages.translations.store','passport.token','passport.authorizations.authorize', -'passport.token.refresh','passport.authorizations.approve','passport.authorizations.deny','passport.tokens.index','passport.tokens.destroy', -'passport.clients.index','passport.clients.store','passport.clients.update','passport.clients.destroy','passport.scopes.index', -'passport.personal.tokens.index','passport.personal.tokens.store','passport.personal.tokens.destroy','ignition.healthCheck','ignition.executeSolution', -'ignition.updateConfig','product_image','response_file', -'iq_image','locale','login','logout', -'register.form','password.request','password.email','password.reset', -'password.update','password.confirm','logout','user_register', -'user_register_again','register.consent','register.consent.accept','user_register_finish','register_verify', -'register_user_member','status_register','status_verify','status_error','not_found', -'loading_modal','user_check_mail','home','cron_jobs_action','user_update_email_confirm', -'user_blocked','wizard_create','wizard_register','wizard_store_create','wizard_store_register', -'wizard_payment','wizard_store_payment','wizard_delete_file','storage_file','storage', -'home','modal_load','user_edit','user_edit','user_data_store', -'user_profile','user_profile','user_profile_image_upload','user_profile_image_delete','user_update_password', -'user_update_password','user_update_password_first','user_update_password_first','user_update_email','user_update_email', -'user_delete_account','user_delete_account','user_data_accepted_form','user_data_free','user_data_free_form', -'user_sales','user_sales_detail','user_sales_datatable','user_team_members','user_customers', -'user_customer_detail','user_customer_edit','user_customer_add','user_customer_edit','user_customer_datatable', -'user_myorders','user_myorder_datatable','user_myorder_detail','user_order_my_delivery','user_order_my_delivery', -'user_order_my_list','user_order_my_list','user_order_my_payment','user_order_my_datatable','user_order_my_perform_request', -'user_membership','user_membership_store','user_shop','user_shop_store','user_shop_load', -'user_shop_translate','user_shop_tanslate_store','user_payment_paycredit','user_payment_paycredit_datatable','user_payment_credit', -'user_payment_credit_datatable','user_payment_revenue','user_payment_revenue','user_checkout','user_checkout_store', -'user_checkout_final','user_promotion','user_promotion_detail','user_promotion_detail','user_promotion_load', -'user_promotion_delete','admin_product_show','admin_product_store','admin_product_edit','admin_product_copy', -'admin_product_delete','admin_product_image_upload','admin_product_image_delete','admin_product_image_attribute','admin_product_categories', -'admin_product_category_edit','admin_product_category_store','admin_product_category_delete','admin_product_ingredients','admin_product_ingredient_edit', -'admin_product_ingredient_store','admin_product_ingredient_delete','admin_product_category_image_upload','admin_product_category_image_delete','admin_product_category_image_attribute', -'admin_product_attributes','admin_product_attribute_store','admin_product_attribute_delete','admin_translate_all','admin_translate_all_edit', -'admin_translate_all_update','admin_translate_file','admin_translate_file_edit','admin_translate_file_update','admin_sites', -'admin_sites_store','admin_sites_image_upload','admin_sites_image_delete','admin_sites_image_attribute','admin_stats_sales_volumes', -'admin_stats_sales_volumes_download','admin_stats_sales_volumes_datatable','admin_leads','admin_lead_edit','admin_lead_edit', -'admin_customers','admin_customer_detail','admin_customer_edit','admin_customer_edit','admin_customer_datatable', -'admin_lead_change_mail','admin_lead_change_mail','admin_lead_new_mail_verified','admin_lead_released','admin_lead_released', -'admin_lead_delete_file','admin_lead_store','admin_leads_datatable','admin_lead_download','admin_lead_update', -'admin_lead_remove','admin_sales_users','admin_sales_users_detail','admin_sales_users_detail','admin_sales_users_datatable', -'admin_sales_customers','admin_sales_customers_detail','admin_sales_customers_detail','admin_sales_customers_datatable','admin_sales_store', -'admin_sales_invoice','admin_payments_credit','admin_payments_credit','admin_payments_credit_datatable','admin_payments_credit_create', -'admin_payments_credit_delete','admin_payments_paycredit','admin_payments_paycredit','admin_payments_paycredit_datatable','admin_payments_paycredit_delete', -'admin_payments_invoice','admin_payments_invoice','admin_payments_invoice_datatable','admin_promotions','admin_promotion_detail', -'admin_promotion_detail','admin_promotion_delete','admin_promotion_show','admin_promotion_datatable','admin_users', -'admin_user_edit','admin_user_store','admin_user_delete','admin_user_login_as','admin_shippings', -'admin_shipping_edit','admin_shipping_store','admin_shipping_delete','admin_shipping_price_delete','admin_shipping_country_delete', -'data_table','data_table_users','admin_payment_methods','admin_payment_method_store','admin_lead_types', -'admin_lead_types_store','admin_countries','admin_country_edit','admin_country_store','admin_levels', -'admin_level_edit','admin_level_store','admin_level_delete','admin_settings','admin_setting_store', -'sysadmin_tools','sysadmin_tools','web_promotion_modal_load','web_promotion_store', -'web_promotion_goto','success.paypal_payment','cancel.paypal_payment', -'web_shop_modal_load','web_shop_store','web_shop_goto','success.paypal_payment','cancel.paypal_payment',); +'languages.translations.update','languages.translations.create','languages.translations.store','boost.browser-logs','passport.token', +'passport.authorizations.authorize','passport.token.refresh','passport.authorizations.approve','passport.authorizations.deny','passport.tokens.index', +'passport.tokens.destroy','passport.clients.index','passport.clients.store','passport.clients.update','passport.clients.destroy', +'passport.scopes.index','passport.personal.tokens.index','passport.personal.tokens.store','passport.personal.tokens.destroy','ignition.healthCheck', +'ignition.executeSolution','ignition.updateConfig','product_image', +'response_file','iq_image','locale','login', +'logout','register.form','password.request','password.email', +'password.reset','password.update','password.confirm','logout', +'user_register','user_register_again','register.consent','register.consent.accept','user_register_finish', +'register_verify','register_user_member','status_register','status_verify','status_error', +'not_found','loading_modal','user_check_mail','home','cron_jobs_action', +'user_update_email_confirm','user_blocked','wizard_create','wizard_register','wizard_store_create', +'wizard_store_register','wizard_payment','wizard_store_payment','wizard_delete_file','storage_file', +'storage','home','modal_load','user_edit','user_edit', +'user_data_store','user_profile','user_profile','user_profile_image_upload','user_profile_image_delete', +'user_update_password','user_update_password','user_update_password_first','user_update_password_first','user_update_email', +'user_update_email','user_delete_account','user_delete_account','user_data_accepted_form','user_data_free', +'user_data_free_form','user_sales','user_sales_detail','user_sales_datatable','user_team_members', +'user_customers','user_customer_detail','user_customer_edit','user_customer_add','user_customer_edit', +'user_customer_datatable','user_myorders','user_myorder_datatable','user_myorder_detail','user_order_my_delivery', +'user_order_my_delivery','user_order_my_list','user_order_my_list','user_order_my_payment','user_order_my_datatable', +'user_order_my_perform_request','user_membership','user_membership_store','user_shop','user_shop_store', +'user_shop_load','user_shop_translate','user_shop_tanslate_store','user_payment_paycredit','user_payment_paycredit_datatable', +'user_payment_credit','user_payment_credit_datatable','user_payment_revenue','user_payment_revenue','user_checkout', +'user_checkout_store','user_checkout_final','user_promotion','user_promotion_detail','user_promotion_detail', +'user_promotion_load','user_promotion_delete','admin_product_show','admin_product_store','admin_product_edit', +'admin_product_copy','admin_product_delete','admin_product_image_upload','admin_product_image_delete','admin_product_image_attribute', +'admin_product_categories','admin_product_category_edit','admin_product_category_store','admin_product_category_delete','admin_product_ingredients', +'admin_product_ingredient_edit','admin_product_ingredient_store','admin_product_ingredient_delete','admin_product_category_image_upload','admin_product_category_image_delete', +'admin_product_category_image_attribute','admin_product_attributes','admin_product_attribute_store','admin_product_attribute_delete','admin_translate_all', +'admin_translate_all_edit','admin_translate_all_update','admin_translate_file','admin_translate_file_edit','admin_translate_file_update', +'admin_sites','admin_sites_store','admin_sites_image_upload','admin_sites_image_delete','admin_sites_image_attribute', +'admin_stats_sales_volumes','admin_stats_sales_volumes_download','admin_stats_sales_volumes_datatable','admin_leads','admin_lead_edit', +'admin_lead_edit','admin_customers','admin_customer_detail','admin_customer_edit','admin_customer_edit', +'admin_customer_datatable','admin_lead_change_mail','admin_lead_change_mail','admin_lead_new_mail_verified','admin_lead_released', +'admin_lead_released','admin_lead_delete_file','admin_lead_store','admin_leads_datatable','admin_lead_download', +'admin_lead_update','admin_lead_remove','admin_sales','admin_sales_detail','admin_sales_detail', +'admin_sales_datatable','admin_sales_send_logistic_mail','admin_sales_store','admin_sales_invoice','admin_sales_invoice_cancellation', +'admin_payments_credit','admin_payments_credit','admin_payments_credit_datatable','admin_payments_credit_create','admin_payments_credit_delete', +'admin_payments_paycredit','admin_payments_paycredit','admin_payments_paycredit_datatable','admin_payments_paycredit_delete','admin_payments_invoice', +'admin_payments_invoice','admin_payments_invoice_datatable','admin_payments_reminder','admin_payments_reminder_create','admin_payments_reminder_edit', +'admin_payments_reminder_store','admin_payments_reminder_action','admin_payments_reminder_logs','admin_payments_reminder_delete','admin_promotions', +'admin_promotion_detail','admin_promotion_detail','admin_promotion_delete','admin_promotion_show','admin_promotion_datatable', +'admin_users','admin_user_edit','admin_user_store','admin_user_delete','admin_user_login_as', +'admin_shippings','admin_shipping_edit','admin_shipping_store','admin_shipping_delete','admin_shipping_price_delete', +'admin_shipping_country_delete','data_table','data_table_users','admin_payment_methods','admin_payment_method_store', +'admin_lead_types','admin_lead_types_store','admin_countries','admin_country_edit','admin_country_store', +'admin_levels','admin_level_edit','admin_level_store','admin_level_delete','admin_settings', +'admin_setting_store','sysadmin_tools','sysadmin_tools','web_promotion_modal_load', +'web_promotion_store','web_promotion_goto','success.paypal_payment','cancel.paypal_payment','web_shop_modal_load','web_shop_store','web_shop_goto','success.paypal_payment', +'cancel.paypal_payment',); registerArgumentsSet('views', '_bak.home','_bak.layouts.app','_bak.layouts.application','_bak.layouts.auth','_bak.layouts.includes.layout-footer', '_bak.layouts.includes.layout-navbar','_bak.layouts.includes.layout-navbar-without','_bak.layouts.includes.layout-sidenav','_bak.layouts.layout-1','_bak.layouts.layout-1-flex', @@ -3284,164 +3328,165 @@ namespace PHPSTORM_META { 'admin.category.edit','admin.category.form','admin.category.images','admin.category.index','admin.category.products', 'admin.change_email','admin.country.edit','admin.country.form','admin.country.index','admin.customer._customer_detail', 'admin.customer._detail','admin.customer._edit','admin.customer.detail','admin.customer.edit','admin.customer.index', -'admin.evaluation.salesvolume','admin.index','admin.ingredient.edit','admin.ingredient.form','admin.ingredient.index', -'admin.lead.edit','admin.lead.index','admin.lead.m_data_form','admin.lead.m_data_form_edit','admin.lead.m_register_data', -'admin.lead.m_white_label','admin.lead.types','admin.level.edit','admin.level.index','admin.modal.add_credit', -'admin.modal.add_pay_credit','admin.modal.is_like_member','admin.modal.member','admin.modal.promotion-product','admin.modal.promotion-products', -'admin.modal.show_product','admin.modal.show_user_customers','admin.modal.user-credit-status','admin.modal.user_level_margin','admin.modal.user_pay_credits', -'admin.payment.credit.credits-entry','admin.payment.credit.index','admin.payment.credit.index_bak','admin.payment.invoice.index','admin.payment.pay_credit.index', -'admin.payment_method.index','admin.product.edit','admin.product.form','admin.product.images','admin.product.index', -'admin.product.upload_whitelabel','admin.promotion.detail','admin.promotion.form','admin.promotion.index','admin.promotion.show', -'admin.sales._detail','admin.sales._detail_homparty','admin.sales._detail_homparty_total','admin.sales.customer_detail','admin.sales.customers', -'admin.sales.user_detail','admin.sales.users','admin.settings.index','admin.shipping.edit','admin.shipping.index', -'admin.site.edit','admin.site.form','admin.site.images','admin.stats.salesvolume','admin.user.edit', -'admin.user.index','auth.existing','auth.finish','auth.login','auth.passwords.confirm', -'auth.passwords.email','auth.passwords.reset','auth.recaptcha-consent','auth.register','auth.verify', -'dashboard','emails._auth','emails._checkout_product_list','emails.auth','emails.blank', -'emails.checkout','emails.checkout_status','emails.contact','emails.custom','emails.info', -'emails.sys','errors.402','errors.404','flash::message','flash::modal', -'layouts.app','layouts.application','layouts.auth','layouts.includes.layout-footer','layouts.includes.layout-navbar', -'layouts.includes.layout-sidenav','layouts.layout-1','layouts.layout-1-flex','layouts.layout-2','layouts.layout-2-flex', -'layouts.layout-blank','layouts.layout-horizontal-sidenav','layouts.layout-without-navbar','layouts.layout-without-navbar-flex','layouts.layout-without-sidenav', -'legal._agb','legal._data_protected','legal._imprint','legal.agb','legal.agb_de', -'legal.data_protect_de','legal.data_protected','legal.imprint','legal.imprint_de','legal.shop_term_of_use', -'legal.shop_term_of_use_de','notifications::email','pagination::bootstrap-4','pagination::default','pagination::semantic-ui', -'pagination::simple-bootstrap-4','pagination::simple-default','pdf.credit','pdf.delivery','pdf.invoice', -'status.not_found','status.status_error','status.status_register','status.status_verify','status.user_blocked', -'status.verify','sys.admin.cronjobs','sys.admin.customers','sys.admin.domain-ssl','sys.admin.export_vp', -'sys.admin.import','sys.admin.import-show','sys.admin.index','sys.admin.shopping-orders','sys.settings.index', -'translation._index','translation.eloquent_index','translation.index','translation.index_file','translation.translation_row', -'user._user_form','user.checkout.checkout','user.checkout.final','user.components.user_shop_edit','user.components.user_shop_image', -'user.components.user_shop_on_site','user.components.user_shop_register','user.customer.add','user.customer.detail','user.customer.edit', -'user.customer.index','user.data_confirm','user.data_verify','user.delete_account','user.edit', -'user.form','user.homeparty._address','user.homeparty._edit','user.homeparty.detail','user.homeparty.guest_detail', -'user.homeparty.guests','user.homeparty.index','user.homeparty.modal_show_products','user.homeparty.order','user.homeparty.self_guest_detail', -'user.homeparty.show_bonus','user.homeparty.show_calc_bonus_host','user.homeparty.show_products_order','user.homeparty.show_total_order','user.membership._abo_options', -'user.membership._change','user.membership._change_level','user.membership._payment','user.membership._payment_order','user.membership._upgrade', -'user.membership.index','user.order._bak_shipping_me','user.order._bak_shipping_ot','user.order.comp_product','user.order.delivery', -'user.order.detail','user.order.index','user.order.list','user.order.list_form','user.order.shipping_credit', -'user.order.shipping_me','user.order.shipping_ot','user.order.yard_view_form','user.payment.credit','user.payment.paycredit', -'user.payment.revenue','user.profile','user.promotion.cart','user.promotion.detail','user.promotion.form', -'user.promotion.index','user.revenue.index','user.sales.detail','user.sales.index','user.shop', -'user.shop.detail','user.shop.form','user.shop.sales.order_detail','user.shop.sales.orders','user.team.members', +'admin.index','admin.ingredient.edit','admin.ingredient.form','admin.ingredient.index','admin.lead.edit', +'admin.lead.index','admin.lead.m_data_form','admin.lead.m_data_form_edit','admin.lead.m_register_data','admin.lead.m_white_label', +'admin.lead.types','admin.level.edit','admin.level.index','admin.modal.add_credit','admin.modal.add_pay_credit', +'admin.modal.is_like_member','admin.modal.member','admin.modal.promotion-product','admin.modal.show_product','admin.modal.show_user_customers', +'admin.modal.user-credit-status','admin.modal.user_level_margin','admin.modal.user_pay_credits','admin.payment.credit.credits-entry','admin.payment.credit.index', +'admin.payment.credit.index_bak','admin.payment.invoice.index','admin.payment.pay_credit.index','admin.payment.reminder.edit','admin.payment.reminder.index', +'admin.payment.reminder.logs','admin.payment.reminder.overview','admin.payment_method.index','admin.product.edit','admin.product.form', +'admin.product.images','admin.product.index','admin.product.upload_whitelabel','admin.promotion.detail','admin.promotion.form', +'admin.promotion.index','admin.promotion.show','admin.sales._detail','admin.sales._detail_homparty','admin.sales._detail_homparty_total', +'admin.sales.customer_detail','admin.sales.customers','admin.sales.detail','admin.sales.index','admin.sales.user_detail', +'admin.sales.users','admin.settings.index','admin.shipping.edit','admin.shipping.index','admin.site.edit', +'admin.site.form','admin.site.images','admin.stats.salesvolume','admin.user.edit','admin.user.index', +'auth.existing','auth.finish','auth.login','auth.passwords.confirm','auth.passwords.email', +'auth.passwords.reset','auth.recaptcha-consent','auth.register','auth.verify','dashboard', +'emails._auth','emails._checkout_product_list','emails.auth','emails.blank','emails.checkout', +'emails.checkout_status','emails.contact','emails.custom','emails.exception','emails.info', +'emails.logistic','emails.payment_reminder','emails.sys','errors.401','errors.402', +'errors.403','errors.404','errors.419','errors.429','errors.500', +'errors.503','errors.illustrated-layout','errors.layout','errors.minimal','flash::message', +'flash::modal','layouts.app','layouts.application','layouts.auth','layouts.includes.layout-footer', +'layouts.includes.layout-navbar','layouts.includes.layout-sidenav','layouts.layout-1','layouts.layout-1-flex','layouts.layout-2', +'layouts.layout-2-flex','layouts.layout-blank','layouts.layout-horizontal-sidenav','layouts.layout-without-navbar','layouts.layout-without-navbar-flex', +'layouts.layout-without-sidenav','legal._agb','legal._data_protected','legal._imprint','legal.agb', +'legal.agb_de','legal.data_protect_de','legal.data_protected','legal.imprint','legal.imprint_de', +'legal.shop_term_of_use','legal.shop_term_of_use_de','notifications::email','pagination::bootstrap-4','pagination::default', +'pagination::semantic-ui','pagination::simple-bootstrap-4','pagination::simple-default','pdf.cancellation_invoice','pdf.credit', +'pdf.delivery','pdf.invoice','status.not_found','status.status_error','status.status_register', +'status.status_verify','status.user_blocked','status.verify','sys.admin.cronjobs','sys.admin.customers', +'sys.admin.domain-ssl','sys.admin.export_vp','sys.admin.import','sys.admin.import-show','sys.admin.index', +'sys.admin.shopping-orders','sys.settings.index','translation._index','translation.eloquent_index','translation.index', +'translation.index_file','translation.translation_row','user._user_form','user.checkout.checkout','user.checkout.final', +'user.components.user_shop_edit','user.components.user_shop_image','user.components.user_shop_on_site','user.components.user_shop_register','user.customer.add', +'user.customer.detail','user.customer.edit','user.customer.index','user.data_confirm','user.data_verify', +'user.delete_account','user.edit','user.form','user.homeparty._address','user.homeparty._edit', +'user.homeparty.detail','user.homeparty.guest_detail','user.homeparty.guests','user.homeparty.index','user.homeparty.modal_show_products', +'user.homeparty.order','user.homeparty.self_guest_detail','user.homeparty.show_bonus','user.homeparty.show_calc_bonus_host','user.homeparty.show_products_order', +'user.homeparty.show_total_order','user.membership._abo_options','user.membership._change','user.membership._change_level','user.membership._payment', +'user.membership._payment_order','user.membership._upgrade','user.membership.index','user.order._bak_shipping_me','user.order._bak_shipping_ot', +'user.order.comp_product','user.order.delivery','user.order.detail','user.order.index','user.order.list', +'user.order.list_form','user.order.shipping_credit','user.order.shipping_me','user.order.shipping_ot','user.order.yard_view_form', +'user.payment.credit','user.payment.index','user.payment.paycredit','user.payment.revenue','user.profile', +'user.promotion.cart','user.promotion.detail','user.promotion.form','user.promotion.index','user.sales.detail', +'user.sales.index','user.shop','user.shop.detail','user.shop.form','user.team.members', 'user.update_email','user.update_password','user.update_password_first','user.update_password_first_form','user.user_form', -'user.user_form_image','user.user_new_form','user.wizard._change','user.wizard._payment','user.wizard.create', -'user.wizard.create_release','user.wizard.register','user.wizard.register_payment','user.wizard.register_release','vendor.flash.message', -'vendor.flash.modal','vendor.mail.html.button','vendor.mail.html.footer','vendor.mail.html.header','vendor.mail.html.layout', -'vendor.mail.html.message','vendor.mail.html.panel','vendor.mail.html.promotion','vendor.mail.html.promotion.button','vendor.mail.html.subcopy', -'vendor.mail.html.table','vendor.mail.markdown.button','vendor.mail.markdown.footer','vendor.mail.markdown.header','vendor.mail.markdown.layout', -'vendor.mail.markdown.message','vendor.mail.markdown.panel','vendor.mail.markdown.promotion','vendor.mail.markdown.promotion.button','vendor.mail.markdown.subcopy', -'vendor.mail.markdown.table','vendor.notifications.email','vendor.pagination.bootstrap-4','vendor.pagination.default','vendor.pagination.semantic-ui', -'vendor.pagination.simple-bootstrap-4','vendor.pagination.simple-default','web.components._checkout','web.components._invoice_details','web.components._invoice_details_quick', -'web.components._margin_cart','web.index','web.layouts.application','web.layouts.includes._layout-header','web.layouts.includes.layout-footer', -'web.layouts.includes.layout-header','web.layouts.layout','web.legal.datenschutzerklaerung','web.legal.impressum','web.legal.versandarten', -'web.legal.widerrufsbelehrung','web.promotion._checkout','web.promotion._fairplay','web.promotion._free_product','web.promotion._intro', -'web.promotion._intro_thanks','web.promotion._invoice_details','web.promotion._invoice_details_quick','web.promotion._promotion_cart','web.promotion._reminder_service', -'web.promotion._shipping','web.promotion._shop_products','web.promotion._shop_products_inner','web.promotion._show_around','web.promotion.datenschutzerklaerung', -'web.promotion.impressum','web.promotion.index','web.promotion.outofstock','web.promotion.show_product','web.promotion.thanksorder', -'web.promotion.thanksreminder','web.promotion.widerrufsbelehrung','web.shop._checkout','web.shop._intro','web.shop._invoice_details', -'web.shop._invoice_details_quick','web.shop._margin_cart','web.shop._shipping','web.shop._shop_cart','web.shop._shop_products', -'web.shop._shop_products_inner','web.shop.index','web.shop.show_product','web.shop.thanksorder','web.shop.thanksreminder', -'flash::message','flash::modal','laravel-exceptions-renderer::components.card','laravel-exceptions-renderer::components.context','laravel-exceptions-renderer::components.editor', -'laravel-exceptions-renderer::components.header','laravel-exceptions-renderer::components.icons.chevron-down','laravel-exceptions-renderer::components.icons.chevron-up','laravel-exceptions-renderer::components.icons.computer-desktop','laravel-exceptions-renderer::components.icons.moon', -'laravel-exceptions-renderer::components.icons.sun','laravel-exceptions-renderer::components.layout','laravel-exceptions-renderer::components.navigation','laravel-exceptions-renderer::components.theme-switcher','laravel-exceptions-renderer::components.trace', -'laravel-exceptions-renderer::components.trace-and-editor','laravel-exceptions-renderer::show','laravel-exceptions::401','laravel-exceptions::402','laravel-exceptions::403', -'laravel-exceptions::404','laravel-exceptions::419','laravel-exceptions::429','laravel-exceptions::500','laravel-exceptions::503', -'laravel-exceptions::layout','laravel-exceptions::minimal','notifications::email','pagination::bootstrap-4','pagination::bootstrap-5', -'pagination::default','pagination::semantic-ui','pagination::simple-bootstrap-4','pagination::simple-bootstrap-5','pagination::simple-default', -'pagination::simple-tailwind','pagination::tailwind','passport::authorize','translation::forms.search','translation::forms.select', -'translation::forms.text','translation::icons.globe','translation::icons.translate','translation::languages.create','translation::languages.index', -'translation::languages.translations.create','translation::languages.translations.index','translation::layout','translation::nav','translation::notifications',); +'user.user_new_form','user.wizard._change','user.wizard._payment','user.wizard.create','user.wizard.create_release', +'user.wizard.register','user.wizard.register_payment','user.wizard.register_release','vendor.flash.message','vendor.flash.modal', +'vendor.mail.html.button','vendor.mail.html.footer','vendor.mail.html.header','vendor.mail.html.layout','vendor.mail.html.message', +'vendor.mail.html.panel','vendor.mail.html.promotion','vendor.mail.html.promotion.button','vendor.mail.html.subcopy','vendor.mail.html.table', +'vendor.mail.markdown.button','vendor.mail.markdown.footer','vendor.mail.markdown.header','vendor.mail.markdown.layout','vendor.mail.markdown.message', +'vendor.mail.markdown.panel','vendor.mail.markdown.promotion','vendor.mail.markdown.promotion.button','vendor.mail.markdown.subcopy','vendor.mail.markdown.table', +'vendor.notifications.email','vendor.pagination.bootstrap-4','vendor.pagination.default','vendor.pagination.semantic-ui','vendor.pagination.simple-bootstrap-4', +'vendor.pagination.simple-default','web.components._checkout','web.components._invoice_details','web.components._invoice_details_quick','web.components._margin_cart', +'web.index','web.layouts.application','web.layouts.includes._layout-header','web.layouts.includes.layout-footer','web.layouts.includes.layout-header', +'web.layouts.layout','web.legal.datenschutzerklaerung','web.legal.impressum','web.legal.versandarten','web.legal.widerrufsbelehrung', +'web.promotion._fairplay','web.promotion._free_product','web.promotion._intro','web.promotion._promotion_cart','web.promotion._reminder_service', +'web.promotion._shipping','web.promotion._shop_products','web.promotion._shop_products_inner','web.promotion._show_around','web.promotion.index', +'web.promotion.outofstock','web.promotion.show_product','web.promotion.thanksorder','web.promotion.thanksreminder','web.shop._checkout', +'web.shop._intro','web.shop._shipping','web.shop._shop_cart','web.shop._shop_products','web.shop._shop_products_inner', +'web.shop.index','web.shop.show_product','web.shop.thanksorder','web.shop.thanksreminder','flash::message', +'flash::modal','laravel-exceptions-renderer::components.card','laravel-exceptions-renderer::components.context','laravel-exceptions-renderer::components.editor','laravel-exceptions-renderer::components.header', +'laravel-exceptions-renderer::components.icons.chevron-down','laravel-exceptions-renderer::components.icons.chevron-up','laravel-exceptions-renderer::components.icons.computer-desktop','laravel-exceptions-renderer::components.icons.moon','laravel-exceptions-renderer::components.icons.sun', +'laravel-exceptions-renderer::components.layout','laravel-exceptions-renderer::components.navigation','laravel-exceptions-renderer::components.theme-switcher','laravel-exceptions-renderer::components.trace','laravel-exceptions-renderer::components.trace-and-editor', +'laravel-exceptions-renderer::show','laravel-exceptions::401','laravel-exceptions::402','laravel-exceptions::403','laravel-exceptions::404', +'laravel-exceptions::419','laravel-exceptions::429','laravel-exceptions::500','laravel-exceptions::503','laravel-exceptions::layout', +'laravel-exceptions::minimal','notifications::email','pagination::bootstrap-4','pagination::bootstrap-5','pagination::default', +'pagination::semantic-ui','pagination::simple-bootstrap-4','pagination::simple-bootstrap-5','pagination::simple-default','pagination::simple-tailwind', +'pagination::tailwind','passport::authorize','translation::forms.search','translation::forms.select','translation::forms.text', +'translation::icons.globe','translation::icons.translate','translation::languages.create','translation::languages.index','translation::languages.translations.create', +'translation::languages.translations.index','translation::layout','translation::nav','translation::notifications',); registerArgumentsSet('translations', 'auth.failed','auth.password','auth.throttle','pagination.previous','pagination.next', 'passwords.reset','passwords.sent','passwords.throttled','passwords.token','passwords.user', -'passwords.password','validation.accepted','validation.accepted_if','validation.active_url','validation.after', -'validation.after_or_equal','validation.alpha','validation.alpha_dash','validation.alpha_num','validation.array', -'validation.ascii','validation.before','validation.before_or_equal','validation.between.array','validation.between.file', -'validation.between.numeric','validation.between.string','validation.boolean','validation.can','validation.confirmed', -'validation.contains','validation.current_password','validation.date','validation.date_equals','validation.date_format', -'validation.decimal','validation.declined','validation.declined_if','validation.different','validation.digits', -'validation.digits_between','validation.dimensions','validation.distinct','validation.doesnt_end_with','validation.doesnt_start_with', -'validation.email','validation.ends_with','validation.enum','validation.exists','validation.extensions', -'validation.file','validation.filled','validation.gt.array','validation.gt.file','validation.gt.numeric', -'validation.gt.string','validation.gte.array','validation.gte.file','validation.gte.numeric','validation.gte.string', -'validation.hex_color','validation.image','validation.in','validation.in_array','validation.integer', -'validation.ip','validation.ipv4','validation.ipv6','validation.json','validation.list', -'validation.lowercase','validation.lt.array','validation.lt.file','validation.lt.numeric','validation.lt.string', -'validation.lte.array','validation.lte.file','validation.lte.numeric','validation.lte.string','validation.mac_address', -'validation.max.array','validation.max.file','validation.max.numeric','validation.max.string','validation.max_digits', -'validation.mimes','validation.mimetypes','validation.min.array','validation.min.file','validation.min.numeric', -'validation.min.string','validation.min_digits','validation.missing','validation.missing_if','validation.missing_unless', -'validation.missing_with','validation.missing_with_all','validation.multiple_of','validation.not_in','validation.not_regex', -'validation.numeric','validation.password.letters','validation.password.mixed','validation.password.numbers','validation.password.symbols', -'validation.password.uncompromised','validation.present','validation.present_if','validation.present_unless','validation.present_with', -'validation.present_with_all','validation.prohibited','validation.prohibited_if','validation.prohibited_if_accepted','validation.prohibited_if_declined', -'validation.prohibited_unless','validation.prohibits','validation.regex','validation.required','validation.required_array_keys', -'validation.required_if','validation.required_if_accepted','validation.required_if_declined','validation.required_unless','validation.required_with', -'validation.required_with_all','validation.required_without','validation.required_without_all','validation.same','validation.size.array', -'validation.size.file','validation.size.numeric','validation.size.string','validation.starts_with','validation.string', -'validation.timezone','validation.unique','validation.uploaded','validation.uppercase','validation.url', -'validation.ulid','validation.uuid','validation.custom.attribute-name.rule-name','de.0','account.', -'account.BIC','account.IBAN','account.VAT_ID_number','account.VAT_copy_1','account.VAT_liability', -'account.account_holder','account.bank_data','account.delivery_address','account.firstname_lastname','account.invoice_address', -'account.my_credit','account.vat_data','account.info_vat_numbers','account.new_vat_validate','account.btn_vat_validate', -'account.phone_need_error','account.phone_need_note','account.required_for_commission_payments','account.reverse_charge_action_1','account.reverse_charge_action_2', -'account.reverse_charge_copy_1','account.reverse_charge_note_1','account.reverse_charge_procedure','account.tax_number','account.taxable_sales_1', -'account.taxable_sales_2','account.validator_creditcard','account.validator_date','account.validator_digits','account.validator_email', -'account.validator_equalTo','account.validator_max','account.validator_maxlength','account.validator_min','account.validator_minlength', -'account.validator_number','account.validator_range','account.validator_rangelength','account.validator_required','account.validator_url', -'cal.months.April','cal.months.August','cal.months.December','cal.months.February','cal.months.January', -'cal.months.July','cal.months.June','cal.months.March','cal.months.May','cal.months.November', -'cal.months.October','cal.months.September','cal.months.full_year','cal.months_short.Apr','cal.months_short.Aug', -'cal.months_short.Dec','cal.months_short.Feb','cal.months_short.Jan','cal.months_short.Jul','cal.months_short.Jun', -'cal.months_short.Mar','cal.months_short.May','cal.months_short.Nov','cal.months_short.Oct','cal.months_short.Sep', -'cal.weekdays.Friday','cal.weekdays.Monday','cal.weekdays.Saturday','cal.weekdays.Sunday','cal.weekdays.Thursday', -'cal.weekdays.Tuesday','cal.weekdays.Wednesday','cal.weekdays_min.Fr','cal.weekdays_min.Mo','cal.weekdays_min.Sa', -'cal.weekdays_min.Su','cal.weekdays_min.Th','cal.weekdays_min.Tu','cal.weekdays_min.We','cal.weekdays_short.Fri', -'cal.weekdays_short.Mon','cal.weekdays_short.Sat','cal.weekdays_short.Sun','cal.weekdays_short.Thu','cal.weekdays_short.Tue', -'cal.weekdays_short.Wed','email.reset_passwort','email.mail_confirm','email.subject_activate','email.account_active', -'email.subject_reset','email.dear_mrs','email.dear_sir','email.hello','email.greetings', -'email.sender','email.request_from','email.your_request_from','email.checkout_subject','email.checkout_subject_paid', -'email.checkout_subject_non_paid','email.checkout_subject_extern','email.change_e_mail','email.salutation','email.first_name', -'email.last_name','email.email','email.phone','email.subject','email.message', -'email.sales_partnership','email.sales_partnership_message','email.button_account','email.active_copy1line','email.copy2line', -'email.copy3line','email.email_verify','email.email_subject','email.email_incomplete','email.account_incomplete_copy1line', -'email.verify_e_mail','email.verify_copy1line','email.email_verify_copy1line','email.copy_to_browser','email.activate_copy', -'email.account_active_copy1line','email.reset_pass_copy1line','email.checkout_copy1line','email.checkout_copy3line','email.checkout_copy3line_extern', -'email.status_copy1line','email.invoice_title','email.credit_title','email.invoice_copy1line','email.credit_copy1line', -'email.footer_copy1','email.footer_copy2','email.footer_copy3','email.checkout_mail_hl1','email.checkout_mail_shipping', -'email.checkout_mail_status_info','email.checkout_mail_subtotal_ws','email.checkout_mail_tax','email.checkout_mail_tax_19','email.checkout_mail_tax_7', -'email.checkout_mail_total','email.checkout_mail_tax_info','email.checkout_mail_pay_info','email.checkout_mail_pay_success','email.checkout_mail_pay_with', -'email.checkout_mail_pay_ref','email.checkout_mail_your_mail','email.checkout_mail_invoice_addess','email.checkout_mail_deliver_addess','email.checkout_mail_pickup_addess', -'email.checkout_mail_deliver_customer','email.checkout_mail_order_for_me','email.checkout_mail_order_for_ot','email.checkout_mail_order_for_extern','email.checkout_mail_order_for_wizard', -'email.checkout_mail_order_for_membership','email.checkout_mail_same_address','email.checkout_mail_pay_error','email.checkout_mail_pay_non','email.checkout_mail_pay_pre', -'email.checkout_mail_pay_pre_c1','email.checkout_mail_pay_pre_c2','email.checkout_mail_bank_holder','email.checkout_mail_bank_iban','email.checkout_mail_bank_bic', -'email.checkout_mail_bank_name','email.checkout_mail_bank_total','email.checkout_mail_bank_code','email.checkout_mail_pay_approved','email.checkout_mail_pay_invoice_open', -'email.checkout_mail_system_status','lead.Mr','lead.MS ','lead.please select','lead.further countries', -'lead.no','lead.Company data','lead.Company name','lead.Street','lead.House number', -'lead.Place','lead.Postcode','lead.Country','lead.Phone','lead.Homepage', -'lead.Industry','lead.Your Data','lead.Function','lead.Salutation','lead.Title', -'lead.First name','lead.Last Name','lead.Name','lead.Consent & Privacy','lead.Confirm Password', -'lead.E-Mail Address','lead.Forgot Your Password?','lead.Login','lead.Logout','lead.Password', -'lead.Register','lead.Remember Me','lead.Reset Password','lead.Send Password Reset Link','membership.home_hl', -'membership.home_copy_alert_31','membership.home_copy_last_31','membership.home_copy_SEPA_32','membership.home_copy_last_33','membership.home_copy_SEPA_33', -'membership.home_copy_last_34','membership.home_copy_alert_35','membership.home_copy_last_35','membership.home_copy_alert_36_today','membership.home_copy_alert_36', -'membership.home_copy_last_36','membership.home_copy_SEPA_36','msg.shipping_country_was_not_found','msg.shipping_country_was_not_correctly','msg.shopping_cart_was_shipping_free', -'msg.shipping_cost_cannot_be_0','msg.shipping_costs_were_not_calculated_correctly','msg.compensation_products_cannot_be_0','msg.link_for_homeparty_not_found','msg.contact_delete', -'msg.error_occurred_with_order','msg.abo_deaktivert','msg.error_checkbox_not_confirm','msg.no_change_made','msg.booked_package_has_been_changed', -'msg.cancel_membership_is_requested','msg.file_uploaded','msg.file_empty','msg.file_deleted','msg.file_not_found', -'msg.country_account_has_been_changed__cost_has_been_reset','msg.your_shopping_cart_is_empty_please_add_products_first.','msg.homeparty_guest_delete','msg.homeparty_delete','msg.VATID_could_not_be_validated', -'msg.VATID_successfully_entered','msg.reverse_charge_procedure_and_VATID_deleted','msg.no_id_card_deposited_please_upload_first','msg.no_trade_licence_deposited_please_upload_first','msg.please_enter_reason_why_you_not_need_trade_licence', -'msg.please_select_compensation_product','msg.please_select_count_compensation_products','msg.user_not_found','msg.shopping_cart_was_not_user_shop','msg.shopping_instance_not_found', -'msg.shopping_user_not_found','navigation.home','navigation.my_account','navigation.my_data','navigation.edit', -'navigation.my_shop','navigation.settings','navigation.my_team','navigation.my_clients','navigation.my_orders', -'navigation.my_homeparty','navigation.member_register','navigation.member','navigation.membership','navigation.my_membership', -'navigation.orders','navigation.trigger','navigation.do_order','navigation.clients','navigation.products', -'navigation.overview','navigation.categories','navigation.ingredients','navigation.attribute','navigation.contents', -'navigation.start_site','navigation.translate','navigation.add','navigation.general','navigation.modules', -'navigation.user_roles','navigation.manage','navigation.shipping_costs','navigation.payment_methods','navigation.career_level', -'navigation.user_level','navigation.countries','navigation.logout','navigation.system_settings','navigation.new_register', -'navigation.payments','navigation.credit','navigation.invoice','navigation.revenue','navigation.paycredit', +'validation.accepted','validation.accepted_if','validation.active_url','validation.after','validation.after_or_equal', +'validation.alpha','validation.alpha_dash','validation.alpha_num','validation.array','validation.ascii', +'validation.before','validation.before_or_equal','validation.between.array','validation.between.file','validation.between.numeric', +'validation.between.string','validation.boolean','validation.can','validation.confirmed','validation.contains', +'validation.current_password','validation.date','validation.date_equals','validation.date_format','validation.decimal', +'validation.declined','validation.declined_if','validation.different','validation.digits','validation.digits_between', +'validation.dimensions','validation.distinct','validation.doesnt_end_with','validation.doesnt_start_with','validation.email', +'validation.ends_with','validation.enum','validation.exists','validation.extensions','validation.file', +'validation.filled','validation.gt.array','validation.gt.file','validation.gt.numeric','validation.gt.string', +'validation.gte.array','validation.gte.file','validation.gte.numeric','validation.gte.string','validation.hex_color', +'validation.image','validation.in','validation.in_array','validation.integer','validation.ip', +'validation.ipv4','validation.ipv6','validation.json','validation.list','validation.lowercase', +'validation.lt.array','validation.lt.file','validation.lt.numeric','validation.lt.string','validation.lte.array', +'validation.lte.file','validation.lte.numeric','validation.lte.string','validation.mac_address','validation.max.array', +'validation.max.file','validation.max.numeric','validation.max.string','validation.max_digits','validation.mimes', +'validation.mimetypes','validation.min.array','validation.min.file','validation.min.numeric','validation.min.string', +'validation.min_digits','validation.missing','validation.missing_if','validation.missing_unless','validation.missing_with', +'validation.missing_with_all','validation.multiple_of','validation.not_in','validation.not_regex','validation.numeric', +'validation.password.letters','validation.password.mixed','validation.password.numbers','validation.password.symbols','validation.password.uncompromised', +'validation.present','validation.present_if','validation.present_unless','validation.present_with','validation.present_with_all', +'validation.prohibited','validation.prohibited_if','validation.prohibited_if_accepted','validation.prohibited_if_declined','validation.prohibited_unless', +'validation.prohibits','validation.regex','validation.required','validation.required_array_keys','validation.required_if', +'validation.required_if_accepted','validation.required_if_declined','validation.required_unless','validation.required_with','validation.required_with_all', +'validation.required_without','validation.required_without_all','validation.same','validation.size.array','validation.size.file', +'validation.size.numeric','validation.size.string','validation.starts_with','validation.string','validation.timezone', +'validation.unique','validation.uploaded','validation.uppercase','validation.url','validation.ulid', +'validation.uuid','validation.custom.attribute-name.rule-name','account.','account.BIC','account.IBAN', +'account.VAT_ID_number','account.VAT_copy_1','account.VAT_liability','account.account_holder','account.bank_data', +'account.delivery_address','account.firstname_lastname','account.invoice_address','account.my_credit','account.vat_data', +'account.info_vat_numbers','account.new_vat_validate','account.btn_vat_validate','account.phone_need_error','account.phone_need_note', +'account.required_for_commission_payments','account.reverse_charge_action_1','account.reverse_charge_action_2','account.reverse_charge_copy_1','account.reverse_charge_note_1', +'account.reverse_charge_procedure','account.tax_number','account.taxable_sales_1','account.taxable_sales_2','account.validator_creditcard', +'account.validator_date','account.validator_digits','account.validator_email','account.validator_equalTo','account.validator_max', +'account.validator_maxlength','account.validator_min','account.validator_minlength','account.validator_number','account.validator_range', +'account.validator_rangelength','account.validator_required','account.validator_url','cal.months.April','cal.months.August', +'cal.months.December','cal.months.February','cal.months.January','cal.months.July','cal.months.June', +'cal.months.March','cal.months.May','cal.months.November','cal.months.October','cal.months.September', +'cal.months.full_year','cal.months_short.Apr','cal.months_short.Aug','cal.months_short.Dec','cal.months_short.Feb', +'cal.months_short.Jan','cal.months_short.Jul','cal.months_short.Jun','cal.months_short.Mar','cal.months_short.May', +'cal.months_short.Nov','cal.months_short.Oct','cal.months_short.Sep','cal.weekdays.Friday','cal.weekdays.Monday', +'cal.weekdays.Saturday','cal.weekdays.Sunday','cal.weekdays.Thursday','cal.weekdays.Tuesday','cal.weekdays.Wednesday', +'cal.weekdays_min.Fr','cal.weekdays_min.Mo','cal.weekdays_min.Sa','cal.weekdays_min.Su','cal.weekdays_min.Th', +'cal.weekdays_min.Tu','cal.weekdays_min.We','cal.weekdays_short.Fri','cal.weekdays_short.Mon','cal.weekdays_short.Sat', +'cal.weekdays_short.Sun','cal.weekdays_short.Thu','cal.weekdays_short.Tue','cal.weekdays_short.Wed','email.reset_passwort', +'email.mail_confirm','email.subject_activate','email.account_active','email.subject_reset','email.dear_mrs', +'email.dear_sir','email.hello','email.greetings','email.sender','email.request_from', +'email.your_request_from','email.checkout_subject','email.checkout_subject_paid','email.checkout_subject_non_paid','email.checkout_subject_extern', +'email.change_e_mail','email.salutation','email.first_name','email.last_name','email.email', +'email.phone','email.subject','email.message','email.sales_partnership','email.sales_partnership_message', +'email.button_account','email.active_copy1line','email.copy2line','email.copy3line','email.email_verify', +'email.email_subject','email.email_incomplete','email.account_incomplete_copy1line','email.verify_e_mail','email.verify_copy1line', +'email.email_verify_copy1line','email.copy_to_browser','email.activate_copy','email.account_active_copy1line','email.reset_pass_copy1line', +'email.checkout_copy1line','email.checkout_copy3line','email.checkout_copy3line_extern','email.status_copy1line','email.invoice_title', +'email.credit_title','email.invoice_copy1line','email.credit_copy1line','email.footer_copy1','email.footer_copy2', +'email.footer_copy3','email.checkout_mail_hl1','email.checkout_mail_shipping','email.checkout_mail_status_info','email.checkout_mail_subtotal_ws', +'email.checkout_mail_tax','email.checkout_mail_tax_19','email.checkout_mail_tax_7','email.checkout_mail_total','email.checkout_mail_tax_info', +'email.checkout_mail_pay_info','email.checkout_mail_pay_success','email.checkout_mail_pay_with','email.checkout_mail_pay_ref','email.checkout_mail_your_mail', +'email.checkout_mail_invoice_addess','email.checkout_mail_deliver_addess','email.checkout_mail_pickup_addess','email.checkout_mail_deliver_customer','email.checkout_mail_order_for_me', +'email.checkout_mail_order_for_ot','email.checkout_mail_order_for_extern','email.checkout_mail_order_for_wizard','email.checkout_mail_order_for_membership','email.checkout_mail_same_address', +'email.checkout_mail_pay_error','email.checkout_mail_pay_non','email.checkout_mail_pay_pre','email.checkout_mail_pay_pre_c1','email.checkout_mail_pay_pre_c2', +'email.checkout_mail_bank_holder','email.checkout_mail_bank_iban','email.checkout_mail_bank_bic','email.checkout_mail_bank_name','email.checkout_mail_bank_total', +'email.checkout_mail_bank_code','email.checkout_mail_pay_approved','email.checkout_mail_pay_invoice_open','email.checkout_mail_system_status','email.my_orders', +'lead.Mr','lead.MS ','lead.please select','lead.further countries','lead.no', +'lead.Company data','lead.Company name','lead.Street','lead.House number','lead.Place', +'lead.Postcode','lead.Country','lead.Phone','lead.Homepage','lead.Industry', +'lead.Your Data','lead.Function','lead.Salutation','lead.Title','lead.First name', +'lead.Last Name','lead.Name','lead.Consent & Privacy','lead.Confirm Password','lead.E-Mail Address', +'lead.Forgot Your Password?','lead.Login','lead.Logout','lead.Password','lead.Register', +'lead.Remember Me','lead.Reset Password','lead.Send Password Reset Link','membership.home_hl','membership.home_copy_alert_31', +'membership.home_copy_last_31','membership.home_copy_SEPA_32','membership.home_copy_last_33','membership.home_copy_SEPA_33','membership.home_copy_last_34', +'membership.home_copy_alert_35','membership.home_copy_last_35','membership.home_copy_alert_36_today','membership.home_copy_alert_36','membership.home_copy_last_36', +'membership.home_copy_SEPA_36','msg.shipping_country_was_not_found','msg.shipping_country_was_not_correctly','msg.shopping_cart_was_shipping_free','msg.shipping_cost_cannot_be_0', +'msg.shipping_costs_were_not_calculated_correctly','msg.compensation_products_cannot_be_0','msg.link_for_homeparty_not_found','msg.contact_delete','msg.error_occurred_with_order', +'msg.abo_deaktivert','msg.error_checkbox_not_confirm','msg.no_change_made','msg.booked_package_has_been_changed','msg.cancel_membership_is_requested', +'msg.file_uploaded','msg.file_empty','msg.file_deleted','msg.file_not_found','msg.country_account_has_been_changed__cost_has_been_reset', +'msg.your_shopping_cart_is_empty_please_add_products_first.','msg.homeparty_guest_delete','msg.homeparty_delete','msg.VATID_could_not_be_validated','msg.VATID_successfully_entered', +'msg.reverse_charge_procedure_and_VATID_deleted','msg.no_id_card_deposited_please_upload_first','msg.no_trade_licence_deposited_please_upload_first','msg.please_enter_reason_why_you_not_need_trade_licence','msg.please_select_compensation_product', +'msg.please_select_count_compensation_products','msg.user_not_found','msg.shopping_cart_was_not_user_shop','msg.shopping_instance_not_found','msg.shopping_user_not_found', +'navigation.home','navigation.my_account','navigation.my_data','navigation.edit','navigation.my_shop', +'navigation.settings','navigation.my_team','navigation.my_clients','navigation.my_orders','navigation.my_homeparty', +'navigation.member_register','navigation.member','navigation.membership','navigation.my_membership','navigation.orders', +'navigation.trigger','navigation.do_order','navigation.clients','navigation.products','navigation.overview', +'navigation.categories','navigation.ingredients','navigation.attribute','navigation.contents','navigation.start_site', +'navigation.translate','navigation.add','navigation.general','navigation.modules','navigation.user_roles', +'navigation.manage','navigation.shipping_costs','navigation.payment_methods','navigation.career_level','navigation.user_level', +'navigation.countries','navigation.logout','navigation.system_settings','navigation.new_register','navigation.payments', +'navigation.credit','navigation.invoice','navigation.reminder','navigation.revenue','navigation.paycredit', 'navigation.commissions','navigation.promotion','navigation.my_promotions','navigation.my_profile','navigation.recharge_credit', 'navigation.clients_orders','navigation.my','navigation.sales_volumes','navigation.evaluation','order.add_customer', 'order.advertising_material','order.adviser_collective_invoice','order.adviser_order_for_membership','order.adviser_order_for_registration','order.art_no', @@ -3465,107 +3510,150 @@ namespace PHPSTORM_META { 'order.total_sum','order.total_sums','order.total_without_VAT','order.turnover','order.unit_price', 'order.weight','order.you_has_article_in_shopping_cart','order.excl','order.ipay','order.cpay', 'order.ipay_text','order.cpay_text','order.sum_net','order.confirm_and_send_order','order.confirm_send_order_info', -'order.order_was_placed_successfully','order.payment_link_for_your_customer','payment.','payment.BIC','payment.IBAN', -'payment.Mastercard','payment.VAT','payment.VISA','payment.accepted_data_checkbox_customer','payment.accepted_data_checkbox_user', -'payment.account_holder','payment.agree_SEPA_complete_purchase','payment.auto_renewal_hl','payment.auto_renewal_line_1','payment.auto_renewal_line_2', -'payment.automatic_SEPA_mandate_type_was_selected','payment.back_to_shop','payment.back_to_shop_shopping_cart','payment.bank','payment.billing_address', -'payment.billing_address_can_only_changed_in_salescentre','payment.buy_now','payment.buy_now_copy','payment.c_policy','payment.checkout_ssl_server', -'payment.country_of_delivery','payment.credit_card','payment.credit_card_number','payment.delivery_country_can_only_changed_in_salescentre','payment.delivery_country_cannot_change', -'payment.excl','payment.firstname_lastname','payment.gtc','payment.month','payment.months', -'payment.ordering_country','payment.owner','payment.p_policy','payment.payment_by_SEPA','payment.payment_by_SEPA_info', -'payment.payment_by_credit_card','payment.payment_by_credit_card_info','payment.payment_by_invoice','payment.payment_by_invoice_info','payment.payment_in_advance', -'payment.payment_method','payment.payment_method_not_enabled_please_contact','payment.paypal','payment.please_check_form_and_complete','payment.please_transfer_amount_following_account', -'payment.prepayment','payment.purchase_on_account','payment.reason_for_payment','payment.remaining_time','payment.reverse_charge_procedure', -'payment.select_and_proceed_to_checkout','payment.select_and_save','payment.sepa_direct_debit','payment.sofort_bank_transfer','payment.status.store_payment', -'payment.status.checkout_payment','payment.status.payment_error','payment.status.payment_redirect','payment.status.payment_approved','payment.status.txaction_failed', -'payment.status.txaction_appointed','payment.status.txaction_paid','payment.status.success_payment','payment.status.success','payment.status.payment_not_found', -'payment.status.checkout_cancel','payment.status.checkout_error','payment.status.auto_renewal_hl','payment.status.auto_renewal_line_1','payment.status.auto_renewal_line_2', -'payment.thank_you_very_much','payment.total_amount','payment.valid until','payment.verification_no','payment.we_have_received_your_order_get_email', -'payment.your_mivita_team','payment.your_order_number_is','payment.open','payment.paid','payment.check', -'payment.cancelled','payment.failed','payment.no_payment','payment.paymend_paid','payment.paymend_open', -'payment.paymend_failed','payment.extern_open','payment.extern_paid','payment.invoice_open','payment.invoice_paid', -'payment.invoice_no_payment','payment.to_sales_tax_de','payment.not_to_sales_tax_de','payment.not_to_sales_tax_foreign','payment.ordered', -'payment.removed','payment.registration','payment.not_assigned','payment.advisor_order','payment.credit', -'payment.shoporder','payment.shoporder_pending','payment.membership','payment.order','payment.customer_order', -'payment.homeparty','payment.shop','payment.external','payment.collective_invoice','payment.in_process', -'payment.shipped','payment.completed','payment.trade_fair','payment.commission_shop','payment.commission_payline', -'payment.commission_growth_bonus','payment.commission_team','payment.credit_added','payment.commission','payment.payment_for_account', -'payment.user_order_deduction','payment.user_order_return','payment.promotion_order_deduction','payment.promotion_order_return','payment.charging_credits_add', -'payment.charging_credits_remove','pdf.address_top','pdf.adviser_id','pdf.date','pdf.credit_no', -'pdf.tax_no','pdf.vat_no','pdf.credit_note','pdf.credit_note_from','pdf.amount', -'pdf.vat_text','pdf.amount_paid_out_gross','pdf.net_amount','pdf.as_a_small_entrepreneur_info','pdf.reverse_charge_procedure_info', -'pdf.delivery_note_no','pdf.order_no','pdf.delivery_note','pdf.we_are_always_there_for_questions','pdf.your_advisor', -'pdf.eprice','pdf.off','pdf.net','pdf.total_incl_VAT','pdf.ek', -'pdf.invoice_nr','pdf.points','pdf.points_order','pdf.points_shop','pdf.invoice', -'pdf.payment_type','pdf.status_of_invoice','pdf.delivery_date_is_invoice_date','pdf.prices_net','pdf.vat_id_of_the_recipient_of_the_service', -'pdf.vat_of_the_recipient_of_the_service','pdf.invoice_does_not_include_vat','pdf.vat_is_declared_and_paid_by_recipient','pdf.tax_free_export_delivery_noteu','pdf.tax_free_export_delivery_eu', -'pdf.intended_use','pdf.invoice_footer_info','register.declaration-of-consent','register.accept-contract','register.reg_hl', -'register.reg_line_1','register.reg_checked','register.reg_finisch_hl','register.reg_finisch_line_1','register.reg_finisch_line_2', -'register.wizard_verification_hl','register.wizard_verification_line_1','register.wizard_business_license_hl','register.wizard_business_license_line_1','register.wizard_finish_hl', -'register.wizard_finish_line_1','register.wizard_create_release_hl','register.wizard_create_release_line_1','register.wizard_reg_release_hl','register.wizard_reg_release_line_1', -'register.sender','register.required_fields','register.business_license_now','register.business_license_later','register.business_license_non', -'register.business_license_non_text','register.reg_verify_info','register.verify_exists-info1','register.verify_exists-info2','register.verify_exists-info3', -'register.verify_email','register.verify_email_again','reminder.subject','reminder.button_31','reminder.copy_first_31', -'reminder.copy_last_31','reminder.button_32','reminder.copy_first_32','reminder.copy_last_32','reminder.button_33', -'reminder.copy_first_33','reminder.copy_last_33','reminder.button_34','reminder.copy_first_34','reminder.copy_last_34', -'reminder.button_35','reminder.copy_first_35','reminder.copy_last_35','reminder.button_36','reminder.copy_first_36', -'reminder.copy_last_36','reminder.button_37','reminder.copy_first_37','reminder.copy_last_37','shop.default_description', -'shop.default_user_open','shop.headline','shop.description','shop.greetings','shop.personal_infos', -'shop.incl_VAT_plus_shipping','tables.','tables.VAT','tables.account','tables.account_to', -'tables.activ','tables.addition','tables.address','tables.adviser_no','tables.amount', -'tables.art','tables.article_no','tables.assigned_advisor','tables.birthday','tables.c_no', -'tables.city','tables.commission','tables.contents','tables.country','tables.created', -'tables.credit_note','tables.customer','tables.date','tables.detail','tables.earnings', -'tables.ek_price','tables.email','tables.firstname','tables.from_credit_balance','tables.gross', -'tables.image','tables.in_no','tables.info','tables.invoice','tables.label', -'tables.lastname','tables.level','tables.line','tables.margin','tables.mobil', -'tables.my_price_gross','tables.my_price_net','tables.net','tables.net_price','tables.net_sales', -'tables.net_sum','tables.newsletter','tables.note','tables.number','tables.order', -'tables.payline_qualification','tables.payment','tables.payment_type','tables.phone','tables.points', -'tables.postcode','tables.price','tables.product','tables.products','tables.purchased_in_the_shop', -'tables.purchases','tables.qualification','tables.quantity','tables.reference_number','tables.rf_no', -'tables.shipping','tables.shop','tables.shop_commission','tables.sponsor','tables.status', -'tables.subject','tables.sum','tables.total','tables.type','tables.ve', -'tables.vk_price','validation.old_password','validation.users_update_email','validation.profanity','validation.recaptcha', -'validation.full_word_check','validation.custom.no_email','validation.custom.unique_email_client','validation.custom.unique_email_member','validation.custom.match_found', -'validation.custom.shipping_not_found','validation.attributes.salutation','validation.attributes.name','validation.attributes.place','validation.attributes.username', -'validation.attributes.email','validation.attributes.email-confirm','validation.attributes.first_name','validation.attributes.last_name','validation.attributes.password', -'validation.attributes.password_confirmation','validation.attributes.password-confirm','validation.attributes.city','validation.attributes.country','validation.attributes.address', -'validation.attributes.phone','validation.attributes.mobile','validation.attributes.mobil','validation.attributes.age','validation.attributes.sex', -'validation.attributes.gender','validation.attributes.message','validation.attributes.day','validation.attributes.month','validation.attributes.year', -'validation.attributes.hour','validation.attributes.minute','validation.attributes.second','validation.attributes.title','validation.attributes.content', -'validation.attributes.description','validation.attributes.excerpt','validation.attributes.date','validation.attributes.time','validation.attributes.available', -'validation.attributes.size','validation.attributes.user_shop_name','validation.attributes.birthday','validation.attributes.user_shop_active','validation.attributes.g-recaptcha-response', -'validation.attributes.accepted_data_protection','validation.attributes.billing_salutation','validation.attributes.billing_firstname','validation.attributes.billing_lastname','validation.attributes.billing_email', -'validation.attributes.billing_address','validation.attributes.billing_zipcode','validation.attributes.billing_city','validation.attributes.accepted_data_checkbox','validation.attributes.shipping_salutation', -'validation.attributes.shipping_firstname','validation.attributes.shipping_lastname','validation.attributes.shipping_address','validation.attributes.shipping_zipcode','validation.attributes.shipping_city', -'validation.attributes.m_account','validation.attributes.has_customer_buyed','validation.attributes.billing_country_code','validation.attributes.sales_partnership','validation.attributes.sales_partnership_message', -'validation.attributes.tax_number','validation.attributes.tax_identification_number','validation.attributes.user_promotion_url','validation.attributes.user_shop_url','en.0', -'fr.0','it.0','nl.0','validation.attributes.subject','uk.0', -'profanity.0','translation::errors.language_exists','translation::errors.key_exists','translation::translation.languages','translation::translation.language', -'translation::translation.type','translation::translation.file','translation::translation.key','translation::translation.prompt_language','translation::translation.language_added', -'translation::translation.prompt_language_for_key','translation::translation.prompt_type','translation::translation.prompt_file','translation::translation.prompt_key','translation::translation.prompt_value', -'translation::translation.type_error','translation::translation.language_key_added','translation::translation.no_missing_keys','translation::translation.keys_synced','translation::translation.search', -'translation::translation.translations','translation::translation.language_name','translation::translation.locale','translation::translation.add','translation::translation.add_language', -'translation::translation.save','translation::translation.language_exists','translation::translation.uh_oh','translation::translation.group_single','translation::translation.Gruppe', -'translation::translation.single','translation::translation.value','translation::translation.namespace','translation::translation.synchronisieren','translation::translation.synced', -'translation::translation.add_translation','translation::translation.translation_added','translation::translation.namespace_label','translation::translation.group_label','translation::translation.key_label', -'translation::translation.value_label','translation::translation.namespace_placeholder','translation::translation.group_placeholder','translation::translation.key_placeholder','translation::translation.value_placeholder', -'translation::translation.advanced_options','paypal::error.paypal_transaction_declined','paypal::error.paypal_transaction_not_verified','paypal::error.paypal_connection_error',); +'order.order_was_placed_successfully','order.payment_link_for_your_customer','passwords.password','payment.','payment.BIC', +'payment.IBAN','payment.Mastercard','payment.VAT','payment.VISA','payment.accepted_data_checkbox_customer', +'payment.accepted_data_checkbox_user','payment.account_holder','payment.agree_SEPA_complete_purchase','payment.auto_renewal_hl','payment.auto_renewal_line_1', +'payment.auto_renewal_line_2','payment.automatic_SEPA_mandate_type_was_selected','payment.back_to_shop','payment.back_to_shop_shopping_cart','payment.bank', +'payment.billing_address','payment.billing_address_can_only_changed_in_salescentre','payment.buy_now','payment.buy_now_copy','payment.c_policy', +'payment.checkout_ssl_server','payment.country_of_delivery','payment.credit_card','payment.credit_card_number','payment.delivery_country_can_only_changed_in_salescentre', +'payment.delivery_country_cannot_change','payment.excl','payment.firstname_lastname','payment.gtc','payment.month', +'payment.months','payment.ordering_country','payment.owner','payment.p_policy','payment.payment_by_SEPA', +'payment.payment_by_SEPA_info','payment.payment_by_credit_card','payment.payment_by_credit_card_info','payment.payment_by_invoice','payment.payment_by_invoice_info', +'payment.payment_in_advance','payment.payment_method','payment.payment_method_not_enabled_please_contact','payment.paypal','payment.please_check_form_and_complete', +'payment.please_transfer_amount_following_account','payment.prepayment','payment.purchase_on_account','payment.reason_for_payment','payment.remaining_time', +'payment.reverse_charge_procedure','payment.select_and_proceed_to_checkout','payment.select_and_save','payment.sepa_direct_debit','payment.sofort_bank_transfer', +'payment.status.store_payment','payment.status.checkout_payment','payment.status.payment_error','payment.status.payment_redirect','payment.status.payment_approved', +'payment.status.txaction_failed','payment.status.txaction_appointed','payment.status.txaction_paid','payment.status.success_payment','payment.status.success', +'payment.status.payment_not_found','payment.status.checkout_cancel','payment.status.checkout_error','payment.status.auto_renewal_hl','payment.status.auto_renewal_line_1', +'payment.status.auto_renewal_line_2','payment.thank_you_very_much','payment.total_amount','payment.valid until','payment.verification_no', +'payment.we_have_received_your_order_get_email','payment.your_mivita_team','payment.your_order_number_is','payment.open','payment.paid', +'payment.check','payment.cancelled','payment.failed','payment.no_payment','payment.paymend_paid', +'payment.paymend_open','payment.paymend_failed','payment.extern_open','payment.extern_paid','payment.invoice_open', +'payment.invoice_paid','payment.invoice_no_payment','payment.to_sales_tax_de','payment.not_to_sales_tax_de','payment.not_to_sales_tax_foreign', +'payment.ordered','payment.removed','payment.registration','payment.not_assigned','payment.advisor_order', +'payment.credit','payment.shoporder','payment.shoporder_pending','payment.membership','payment.order', +'payment.customer_order','payment.homeparty','payment.shop','payment.external','payment.collective_invoice', +'payment.in_process','payment.shipped','payment.completed','payment.trade_fair','payment.commission_shop', +'payment.commission_payline','payment.commission_growth_bonus','payment.commission_team','payment.credit_added','payment.commission', +'payment.payment_for_account','payment.user_order_deduction','payment.user_order_return','payment.promotion_order_deduction','payment.promotion_order_return', +'payment.charging_credits_add','payment.charging_credits_remove','pdf.address_top','pdf.adviser_id','pdf.date', +'pdf.credit_no','pdf.tax_no','pdf.vat_no','pdf.credit_note','pdf.credit_note_from', +'pdf.amount','pdf.vat_text','pdf.amount_paid_out_gross','pdf.net_amount','pdf.as_a_small_entrepreneur_info', +'pdf.reverse_charge_procedure_info','pdf.delivery_note_no','pdf.order_no','pdf.delivery_note','pdf.we_are_always_there_for_questions', +'pdf.your_advisor','pdf.eprice','pdf.off','pdf.net','pdf.total_incl_VAT', +'pdf.ek','pdf.invoice_nr','pdf.points','pdf.points_order','pdf.points_shop', +'pdf.invoice','pdf.payment_type','pdf.status_of_invoice','pdf.delivery_date_is_invoice_date','pdf.prices_net', +'pdf.vat_id_of_the_recipient_of_the_service','pdf.vat_of_the_recipient_of_the_service','pdf.invoice_does_not_include_vat','pdf.vat_is_declared_and_paid_by_recipient','pdf.tax_free_export_delivery_noteu', +'pdf.tax_free_export_delivery_eu','pdf.intended_use','pdf.invoice_footer_info','register.declaration-of-consent','register.accept-contract', +'register.reg_hl','register.reg_line_1','register.reg_checked','register.reg_finisch_hl','register.reg_finisch_line_1', +'register.reg_finisch_line_2','register.wizard_verification_hl','register.wizard_verification_line_1','register.wizard_business_license_hl','register.wizard_business_license_line_1', +'register.wizard_finish_hl','register.wizard_finish_line_1','register.wizard_create_release_hl','register.wizard_create_release_line_1','register.wizard_reg_release_hl', +'register.wizard_reg_release_line_1','register.sender','register.required_fields','register.business_license_now','register.business_license_later', +'register.business_license_non','register.business_license_non_text','register.reg_verify_info','register.verify_exists-info1','register.verify_exists-info2', +'register.verify_exists-info3','register.verify_email','register.verify_email_again','reminder.subject','reminder.button_31', +'reminder.copy_first_31','reminder.copy_last_31','reminder.button_32','reminder.copy_first_32','reminder.copy_last_32', +'reminder.button_33','reminder.copy_first_33','reminder.copy_last_33','reminder.button_34','reminder.copy_first_34', +'reminder.copy_last_34','reminder.button_35','reminder.copy_first_35','reminder.copy_last_35','reminder.button_36', +'reminder.copy_first_36','reminder.copy_last_36','reminder.button_37','reminder.copy_first_37','reminder.copy_last_37', +'shop.default_description','shop.default_user_open','shop.headline','shop.description','shop.greetings', +'shop.personal_infos','shop.incl_VAT_plus_shipping','tables.','tables.VAT','tables.account', +'tables.account_to','tables.activ','tables.addition','tables.address','tables.adviser_no', +'tables.amount','tables.art','tables.article_no','tables.assigned_advisor','tables.birthday', +'tables.c_no','tables.city','tables.commission','tables.contents','tables.country', +'tables.created','tables.credit_note','tables.customer','tables.date','tables.detail', +'tables.earnings','tables.ek_price','tables.email','tables.firstname','tables.from_credit_balance', +'tables.gross','tables.image','tables.in_no','tables.info','tables.invoice', +'tables.label','tables.lastname','tables.level','tables.line','tables.margin', +'tables.mobil','tables.my_price_gross','tables.my_price_net','tables.net','tables.net_price', +'tables.net_sales','tables.net_sum','tables.newsletter','tables.note','tables.number', +'tables.order','tables.payline_qualification','tables.payment','tables.payment_type','tables.phone', +'tables.points','tables.postcode','tables.price','tables.product','tables.products', +'tables.purchased_in_the_shop','tables.purchases','tables.qualification','tables.quantity','tables.reference_number', +'tables.rf_no','tables.shipping','tables.shop','tables.shop_commission','tables.sponsor', +'tables.status','tables.subject','tables.sum','tables.total','tables.type', +'tables.ve','tables.vk_price','validation.old_password','validation.users_update_email','validation.profanity', +'validation.recaptcha','validation.full_word_check','validation.custom.no_email','validation.custom.unique_email_client','validation.custom.unique_email_member', +'validation.custom.match_found','validation.custom.shipping_not_found','validation.attributes.salutation','validation.attributes.name','validation.attributes.place', +'validation.attributes.username','validation.attributes.email','validation.attributes.email-confirm','validation.attributes.first_name','validation.attributes.last_name', +'validation.attributes.password','validation.attributes.password_confirmation','validation.attributes.password-confirm','validation.attributes.city','validation.attributes.country', +'validation.attributes.address','validation.attributes.phone','validation.attributes.mobile','validation.attributes.mobil','validation.attributes.age', +'validation.attributes.sex','validation.attributes.gender','validation.attributes.message','validation.attributes.day','validation.attributes.month', +'validation.attributes.year','validation.attributes.hour','validation.attributes.minute','validation.attributes.second','validation.attributes.title', +'validation.attributes.content','validation.attributes.description','validation.attributes.excerpt','validation.attributes.date','validation.attributes.time', +'validation.attributes.available','validation.attributes.size','validation.attributes.user_shop_name','validation.attributes.birthday','validation.attributes.user_shop_active', +'validation.attributes.g-recaptcha-response','validation.attributes.accepted_data_protection','validation.attributes.billing_salutation','validation.attributes.billing_firstname','validation.attributes.billing_lastname', +'validation.attributes.billing_email','validation.attributes.billing_address','validation.attributes.billing_zipcode','validation.attributes.billing_city','validation.attributes.accepted_data_checkbox', +'validation.attributes.shipping_salutation','validation.attributes.shipping_firstname','validation.attributes.shipping_lastname','validation.attributes.shipping_address','validation.attributes.shipping_zipcode', +'validation.attributes.shipping_city','validation.attributes.m_account','validation.attributes.has_customer_buyed','validation.attributes.billing_country_code','validation.attributes.sales_partnership', +'validation.attributes.sales_partnership_message','validation.attributes.tax_number','validation.attributes.tax_identification_number','validation.attributes.user_promotion_url','validation.attributes.user_shop_url', +'validation.attributes.subject','profanity.en.profanity.0','profanity.en.profanity.1','profanity.en.profanity.2','profanity.en.profanity.3', +'profanity.en.profanity.4','profanity.en.profanity.5','profanity.en.profanity.6','profanity.en.profanity.7','profanity.en.profanity.8', +'profanity.en.profanity.9','profanity.en.profanity.10','profanity.en.profanity.11','profanity.en.profanity.12','profanity.en.profanity.13', +'profanity.en.profanity.14','profanity.en.profanity.15','profanity.en.profanity.16','profanity.en.profanity.17','profanity.en.profanity.18', +'profanity.en.profanity.19','profanity.en.profanity.20','profanity.en.profanity.21','profanity.en.profanity.22','profanity.en.profanity.23', +'profanity.en.profanity.24','profanity.en.profanity.25','profanity.en.profanity.26','profanity.en.profanity.27','profanity.en.profanity.28', +'profanity.en.profanity.29','profanity.en.profanity.30','profanity.en.profanity.31','profanity.en.profanity.32','profanity.en.profanity.33', +'profanity.en.profanity.34','profanity.en.profanity.35','profanity.en.profanity.36','profanity.en.profanity.37','profanity.en.profanity.38', +'profanity.en.profanity.39','profanity.en.profanity.40','profanity.en.profanity.41','profanity.en.profanity.42','profanity.en.profanity.43', +'profanity.en.profanity.44','profanity.en.profanity.45','profanity.en.profanity.46','profanity.en.profanity.47','profanity.en.profanity.48', +'profanity.en.profanity.49','profanity.en.profanity.50','profanity.en.profanity.51','profanity.en.profanity.52','profanity.en.profanity.53', +'profanity.en.profanity.54','profanity.en.profanity.55','profanity.en.profanity.56','profanity.en.profanity.57','profanity.en.profanity.58', +'profanity.en.profanity.59','profanity.en.profanity.60','profanity.en.profanity.61','profanity.en.profanity.62','profanity.en.profanity.63', +'profanity.en.profanity.64','profanity.en.profanity.65','profanity.en.profanity.66','profanity.en.profanity.67','profanity.es.profanity.0', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.errors.language_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.errors.key_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.languages','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.type', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.file','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.prompt_language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.language_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.prompt_language_for_key', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.prompt_type','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.prompt_file','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.prompt_key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.prompt_value','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.type_error', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.language_key_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.no_missing_keys','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.keys_synced','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.search','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.translations', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.language_name','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.locale','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.add','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.add_language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.save', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.language_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.uh_oh','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.group_single','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.Gruppe','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.single', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.value','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.namespace','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.synchronisieren','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.synced','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.add_translation', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.translation_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.namespace_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.group_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.key_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.value_label', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.namespace_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.group_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.key_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.value_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.de.translation.advanced_options', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.errors.language_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.errors.key_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.languages','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.type', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.file','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.prompt_language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.language_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.prompt_language_for_key', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.prompt_type','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.prompt_file','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.prompt_key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.prompt_value','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.type_error', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.language_key_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.no_missing_keys','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.keys_synced','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.search','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.translations', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.language_name','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.locale','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.add','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.add_language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.save', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.language_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.uh_oh','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.group_single','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.group','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.single', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.value','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.namespace','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.add_translation','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.translation_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.namespace_label', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.group_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.key_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.value_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.namespace_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.group_placeholder', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.key_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.value_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.en.translation.advanced_options','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.errors.key_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.errors.language_exists', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.add','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.add_language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.add_translation','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.advanced_options','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.file', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.group','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.group_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.group_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.group_single','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.key', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.key_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.key_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.keys_synced','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.language_added', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.language_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.language_key_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.language_name','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.languages','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.locale', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.namespace','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.namespace_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.namespace_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.no_missing_keys','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.prompt_file', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.prompt_key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.prompt_language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.prompt_language_for_key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.prompt_type','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.prompt_value', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.save','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.search','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.single','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.translation_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.translations', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.type','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.type_error','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.uh_oh','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.value','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.value_label', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.fr.translation.value_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.errors.language_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.errors.key_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.languages','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.language', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.type','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.file','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.prompt_language','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.language_added', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.prompt_language_for_key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.prompt_type','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.prompt_file','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.prompt_key','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.prompt_value', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.type_error','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.language_key_added','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.no_missing_keys','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.keys_synced','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.search', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.translations','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.language_name','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.locale','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.add','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.add_language', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.save','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.language_exists','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.uh_oh','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.group_single','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.group', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.single','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.value','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.namespace','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.add_translation','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.translation_added', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.namespace_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.group_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.key_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.value_label','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.namespace_placeholder', +'translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.group_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.key_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.value_placeholder','translation::.var.www.html.vendor.joedixon.laravel-translation.resources.lang.nl.translation.advanced_options','paypal::.var.www.html.vendor.srmklive.paypal.lang.ar.error.paypal_transaction_declined', +'paypal::.var.www.html.vendor.srmklive.paypal.lang.ar.error.paypal_transaction_not_verified','paypal::.var.www.html.vendor.srmklive.paypal.lang.ar.error.paypal_connection_error','paypal::.var.www.html.vendor.srmklive.paypal.lang.cn.error.paypal_transaction_declined','paypal::.var.www.html.vendor.srmklive.paypal.lang.cn.error.paypal_transaction_not_verified','paypal::.var.www.html.vendor.srmklive.paypal.lang.cn.error.paypal_connection_error', +'paypal::.var.www.html.vendor.srmklive.paypal.lang.de.error.paypal_transaction_declined','paypal::.var.www.html.vendor.srmklive.paypal.lang.de.error.paypal_transaction_not_verified','paypal::.var.www.html.vendor.srmklive.paypal.lang.de.error.paypal_connection_error','paypal::.var.www.html.vendor.srmklive.paypal.lang.en.error.paypal_transaction_declined','paypal::.var.www.html.vendor.srmklive.paypal.lang.en.error.paypal_transaction_not_verified', +'paypal::.var.www.html.vendor.srmklive.paypal.lang.en.error.paypal_connection_error','paypal::.var.www.html.vendor.srmklive.paypal.lang.es.error.paypal_transaction_declined','paypal::.var.www.html.vendor.srmklive.paypal.lang.es.error.paypal_transaction_not_verified','paypal::.var.www.html.vendor.srmklive.paypal.lang.es.error.paypal_connection_error','paypal::.var.www.html.vendor.srmklive.paypal.lang.fr.error.paypal_transaction_declined', +'paypal::.var.www.html.vendor.srmklive.paypal.lang.fr.error.paypal_transaction_not_verified','paypal::.var.www.html.vendor.srmklive.paypal.lang.fr.error.paypal_connection_error','paypal::.var.www.html.vendor.srmklive.paypal.lang.hy.error.paypal_transaction_declined','paypal::.var.www.html.vendor.srmklive.paypal.lang.hy.error.paypal_transaction_not_verified','paypal::.var.www.html.vendor.srmklive.paypal.lang.hy.error.paypal_connection_error', +'paypal::.var.www.html.vendor.srmklive.paypal.lang.it.error.paypal_transaction_declined','paypal::.var.www.html.vendor.srmklive.paypal.lang.it.error.paypal_transaction_not_verified','paypal::.var.www.html.vendor.srmklive.paypal.lang.it.error.paypal_connection_error','paypal::.var.www.html.vendor.srmklive.paypal.lang.ja.error.paypal_transaction_declined','paypal::.var.www.html.vendor.srmklive.paypal.lang.ja.error.paypal_transaction_not_verified', +'paypal::.var.www.html.vendor.srmklive.paypal.lang.ja.error.paypal_connection_error',); registerArgumentsSet('env', 'APP_NAME','APP_ENV','APP_KEY','APP_DEBUG','APP_URL', 'APP_API_DOMAIN','APP_DOMAIN','APP_PROMO_URL','APP_PROMO_DOMAIN','APP_SHOP_URL', 'APP_SHOP_DOMAIN','APP_CHECKOUT_MAIL','APP_CHECKOUT_TEST_MAIL','APP_INFO_MAIL','APP_INFO_TEST_MAIL', -'EXCEPTION_MAIL','APP_MAIN_TAX','APP_MAIN_TAX_RATE','APP_MAIN_USER_ID','LOG_CHANNEL', -'LOG_LEVEL','DB_CONNECTION','DB_HOST','DB_PORT','DB_DATABASE', -'DB_USERNAME','DB_PASSWORD','BROADCAST_DRIVER','CACHE_DRIVER','QUEUE_CONNECTION', -'SESSION_DRIVER','SESSION_LIFETIME','MEMCACHED_HOST','REDIS_HOST','REDIS_PASSWORD', -'REDIS_PORT','MAIL_DRIVER','MAIL_HOST','MAIL_PORT','MAIL_USERNAME', -'MAIL_PASSWORD','MAIL_ENCRYPTION','MAIL_FROM_ADDRESS','MAIL_FROM_NAME','RECAPTCHA_SITE_KEY', -'RECAPTCHA_SECRET_KEY','PAYPAL_MODE','PAYPAL_SANDBOX_CLIENT_ID','PAYPAL_SANDBOX_CLIENT_SECRET','PAYPAL_LIVE_CLIENT_ID', -'PAYPAL_LIVE_CLIENT_SECRET','AWS_ACCESS_KEY_ID','AWS_SECRET_ACCESS_KEY','AWS_DEFAULT_REGION','AWS_BUCKET', -'PUSHER_APP_ID','PUSHER_APP_KEY','PUSHER_APP_SECRET','PUSHER_APP_CLUSTER','MIX_PUSHER_APP_KEY', -'MIX_PUSHER_APP_CLUSTER',); +'EXCEPTION_MAIL','LOGISTIC_MAIL','APP_MAIN_TAX','APP_MAIN_TAX_RATE','APP_MAIN_USER_ID', +'LOG_CHANNEL','LOG_LEVEL','DB_CONNECTION','DB_HOST','DB_PORT', +'DB_DATABASE','DB_USERNAME','DB_PASSWORD','BROADCAST_DRIVER','CACHE_DRIVER', +'QUEUE_CONNECTION','SESSION_DRIVER','SESSION_LIFETIME','MEMCACHED_HOST','REDIS_HOST', +'REDIS_PASSWORD','REDIS_PORT','MAIL_DRIVER','MAIL_HOST','MAIL_PORT', +'RECAPTCHA_SITE_KEY','RECAPTCHA_SECRET_KEY','PAYPAL_MODE','PAYPAL_SANDBOX_CLIENT_ID','PAYPAL_SANDBOX_CLIENT_SECRET', +'PAYPAL_LIVE_CLIENT_ID','PAYPAL_LIVE_CLIENT_SECRET','AWS_ACCESS_KEY_ID','AWS_SECRET_ACCESS_KEY','AWS_DEFAULT_REGION', +'AWS_BUCKET','PUSHER_APP_ID','PUSHER_APP_KEY','PUSHER_APP_SECRET','PUSHER_APP_CLUSTER', +'MIX_PUSHER_APP_KEY','MIX_PUSHER_APP_CLUSTER',); expectedArguments(\Illuminate\Support\Facades\Gate::has(), 0, argumentsSet('auth')); expectedArguments(\Illuminate\Support\Facades\Gate::allows(), 0, argumentsSet('auth')); diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..6746b50 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,85 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +German-language MLM/direct-sales e-commerce platform for organic/natural products ("Gruene Seele" / Green Soul). Partners/distributors get personal whitelabel shops, earn commissions through a multi-level hierarchy, and manage orders, invoices, and promotions. + +**Stack:** PHP 8.4, Laravel 11 (using Laravel 10 directory structure), Bootstrap 4, jQuery, Laravel Mix (webpack), MySQL, Laravel Passport (API auth). + +## Common Commands + +```bash +# Tests (Pest v2, uses SQLite in-memory) +php artisan test # run all tests +php artisan test tests/Feature/ExampleTest.php # run single file +php artisan test --filter=testName # filter by name + +# Code formatting (Laravel Pint) +vendor/bin/pint --dirty # format changed files only +vendor/bin/pint # format all files +composer format # alias for pint + +# Frontend (Laravel Mix, NOT Vite) +npm run dev # development build +npm run prod # production build +npm run watch # watch mode + +# Artisan - always pass --no-interaction +php artisan make:model Name --no-interaction +php artisan make:test --pest Name --no-interaction +``` + +## Architecture + +### Multi-Domain Routing (`routes/web.php`) +Three separate domain groups, each with distinct middleware: +- **Main domain** (`config('app.domain')`) - admin panel + user dashboard +- **Promo domain** (`config('app.promo_domain')`) - public promotion/microsite pages +- **Shop domain** (`config('app.shop_domain')`) - public whitelabel shop + +### Admin Access Levels (middleware in `app/Http/Middleware/`) +- `CopyReader` - admin >= 1 (product/content management) +- `Admin` - admin >= 7 (sales, customers, promotions) +- `SuperAdmin` - admin >= 8 (users, shipping, settings) +- `SysAdmin` - admin >= 9 (system tools, imports) + +### Key Service Layer +- **`app/Services/Yard.php`** + `app/Services/Yard/` - Custom shopping cart (extends forked Gloudemans Cart in `packages/digital-bird/shoppingcart/`). Handles shipping, tax, margins, commissions. +- **`app/Services/Invoice.php`** - Invoice and cancellation invoice PDF generation (uses DomPDF) +- **`app/Services/PaymentReminderService.php`** - Payment reminder logic with status progression +- **`app/Services/Credit.php`** - User credit/balance management +- **`app/Services/Stats/`** - Sales statistics + +### Repository Pattern +Business logic uses repositories in `app/Repositories/` (e.g., `CheckoutRepository`, `InvoiceRepository`, `CustomerRepository`). Controllers delegate to repositories and services. + +### Local Packages +`packages/digital-bird/shoppingcart/` - Forked `gloudemans/shoppingcart`, autoloaded via composer PSR-4 as `Gloudemans\Shoppingcart\`. + +### Cron Jobs (`app/Console/Kernel.php`) +- `payments:accounts` - Checks user account expiry, sends reminders (statuses 31/33/34/35), deactivates expired accounts +- `payments:reminders` - Sends payment reminders for open invoices + +### API (`routes/api.php`) +No versioning. Passport-authenticated endpoints for WordPress integration (`/api/wp/*`) and auth (`/api/auth/*`). + +### Global Helpers +`app/helpers.php` (autoloaded) - URL helpers, formatting delegates to `App\Services\Util`. + +### PDF Generation +- `app/Libraries/InvoicePDF.php`, `ContractPDF.php` - FPDF/FPDI based +- `app/Services/Invoice.php` - DomPDF based (Blade templates in `resources/views/pdf/`) + +## Important Conventions + +- This project uses **Laravel 10 directory structure** on Laravel 11. Do NOT migrate to Laravel 11 structure. + - Middleware registration: `app/Http/Kernel.php` + - Exception handling: `app/Exceptions/Handler.php` + - Schedule: `app/Console/Kernel.php` +- Default auth guard is `user` (not `web`), configured in `config/auth.php` +- User model is `App\User` (not `App\Models\User`) +- Views are Blade templates with Bootstrap 4 + jQuery DataTables +- Always run `vendor/bin/pint --dirty` before finalizing changes +- Countries supported: DE, FR, CH, NL (with reverse charge VAT handling) diff --git a/_ide_helper.php b/_ide_helper.php index c8adbbb..34ddcac 100644 --- a/_ide_helper.php +++ b/_ide_helper.php @@ -5,7 +5,7 @@ /** * A helper file for Laravel, to provide autocomplete information to your IDE - * Generated for Laravel 11.44.7. + * Generated for Laravel 11.48.0. * * This file should not be included in your code, only analyzed by your IDE! * @@ -14,8 +14,6 @@ */ namespace Illuminate\Support\Facades { /** - * - * * @see \Illuminate\Foundation\Application */ class App { @@ -23,8 +21,8 @@ namespace Illuminate\Support\Facades { * Begin configuring a new Laravel application instance. * * @param string|null $basePath - * @return \Illuminate\Foundation\Configuration\ApplicationBuilder - * @static + * @return \Illuminate\Foundation\Configuration\ApplicationBuilder + * @static */ public static function configure($basePath = null) { @@ -34,8 +32,8 @@ namespace Illuminate\Support\Facades { /** * Infer the application's base directory from the environment. * - * @return string - * @static + * @return string + * @static */ public static function inferBasePath() { @@ -45,8 +43,8 @@ namespace Illuminate\Support\Facades { /** * Get the version number of the application. * - * @return string - * @static + * @return string + * @static */ public static function version() { @@ -58,8 +56,8 @@ namespace Illuminate\Support\Facades { * Run the given array of bootstrap classes. * * @param string[] $bootstrappers - * @return void - * @static + * @return void + * @static */ public static function bootstrapWith($bootstrappers) { @@ -71,8 +69,8 @@ namespace Illuminate\Support\Facades { * Register a callback to run after loading the environment. * * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function afterLoadingEnvironment($callback) { @@ -85,8 +83,8 @@ namespace Illuminate\Support\Facades { * * @param string $bootstrapper * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function beforeBootstrapping($bootstrapper, $callback) { @@ -99,8 +97,8 @@ namespace Illuminate\Support\Facades { * * @param string $bootstrapper * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function afterBootstrapping($bootstrapper, $callback) { @@ -111,8 +109,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application has been bootstrapped before. * - * @return bool - * @static + * @return bool + * @static */ public static function hasBeenBootstrapped() { @@ -124,8 +122,8 @@ namespace Illuminate\Support\Facades { * Set the base path for the application. * * @param string $basePath - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function setBasePath($basePath) { @@ -137,8 +135,8 @@ namespace Illuminate\Support\Facades { * Get the path to the application "app" directory. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function path($path = '') { @@ -150,8 +148,8 @@ namespace Illuminate\Support\Facades { * Set the application directory. * * @param string $path - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function useAppPath($path) { @@ -163,8 +161,8 @@ namespace Illuminate\Support\Facades { * Get the base path of the Laravel installation. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function basePath($path = '') { @@ -176,8 +174,8 @@ namespace Illuminate\Support\Facades { * Get the path to the bootstrap directory. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function bootstrapPath($path = '') { @@ -188,8 +186,8 @@ namespace Illuminate\Support\Facades { /** * Get the path to the service provider list in the bootstrap directory. * - * @return string - * @static + * @return string + * @static */ public static function getBootstrapProvidersPath() { @@ -201,8 +199,8 @@ namespace Illuminate\Support\Facades { * Set the bootstrap file directory. * * @param string $path - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function useBootstrapPath($path) { @@ -214,8 +212,8 @@ namespace Illuminate\Support\Facades { * Get the path to the application configuration files. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function configPath($path = '') { @@ -227,8 +225,8 @@ namespace Illuminate\Support\Facades { * Set the configuration directory. * * @param string $path - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function useConfigPath($path) { @@ -240,8 +238,8 @@ namespace Illuminate\Support\Facades { * Get the path to the database directory. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function databasePath($path = '') { @@ -253,8 +251,8 @@ namespace Illuminate\Support\Facades { * Set the database directory. * * @param string $path - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function useDatabasePath($path) { @@ -266,8 +264,8 @@ namespace Illuminate\Support\Facades { * Get the path to the language files. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function langPath($path = '') { @@ -279,8 +277,8 @@ namespace Illuminate\Support\Facades { * Set the language file directory. * * @param string $path - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function useLangPath($path) { @@ -292,8 +290,8 @@ namespace Illuminate\Support\Facades { * Get the path to the public / web directory. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function publicPath($path = '') { @@ -305,8 +303,8 @@ namespace Illuminate\Support\Facades { * Set the public / web directory. * * @param string $path - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function usePublicPath($path) { @@ -318,8 +316,8 @@ namespace Illuminate\Support\Facades { * Get the path to the storage directory. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function storagePath($path = '') { @@ -331,8 +329,8 @@ namespace Illuminate\Support\Facades { * Set the storage directory. * * @param string $path - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function useStoragePath($path) { @@ -344,8 +342,8 @@ namespace Illuminate\Support\Facades { * Get the path to the resources directory. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function resourcePath($path = '') { @@ -355,12 +353,12 @@ namespace Illuminate\Support\Facades { /** * Get the path to the views directory. - * + * * This method returns the first configured path in the array of view paths. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function viewPath($path = '') { @@ -373,8 +371,8 @@ namespace Illuminate\Support\Facades { * * @param string $basePath * @param string $path - * @return string - * @static + * @return string + * @static */ public static function joinPaths($basePath, $path = '') { @@ -385,8 +383,8 @@ namespace Illuminate\Support\Facades { /** * Get the path to the environment file directory. * - * @return string - * @static + * @return string + * @static */ public static function environmentPath() { @@ -398,8 +396,8 @@ namespace Illuminate\Support\Facades { * Set the directory for the environment file. * * @param string $path - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function useEnvironmentPath($path) { @@ -411,8 +409,8 @@ namespace Illuminate\Support\Facades { * Set the environment file to be loaded during bootstrapping. * * @param string $file - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function loadEnvironmentFrom($file) { @@ -423,8 +421,8 @@ namespace Illuminate\Support\Facades { /** * Get the environment file the application is using. * - * @return string - * @static + * @return string + * @static */ public static function environmentFile() { @@ -435,8 +433,8 @@ namespace Illuminate\Support\Facades { /** * Get the fully qualified path to the environment file. * - * @return string - * @static + * @return string + * @static */ public static function environmentFilePath() { @@ -448,8 +446,8 @@ namespace Illuminate\Support\Facades { * Get or check the current application environment. * * @param string|array $environments - * @return string|bool - * @static + * @return string|bool + * @static */ public static function environment(...$environments) { @@ -460,8 +458,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application is in the local environment. * - * @return bool - * @static + * @return bool + * @static */ public static function isLocal() { @@ -472,8 +470,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application is in the production environment. * - * @return bool - * @static + * @return bool + * @static */ public static function isProduction() { @@ -485,8 +483,8 @@ namespace Illuminate\Support\Facades { * Detect the application's current environment. * * @param \Closure $callback - * @return string - * @static + * @return string + * @static */ public static function detectEnvironment($callback) { @@ -497,8 +495,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application is running in the console. * - * @return bool - * @static + * @return bool + * @static */ public static function runningInConsole() { @@ -510,8 +508,8 @@ namespace Illuminate\Support\Facades { * Determine if the application is running any of the given console commands. * * @param string|array $commands - * @return bool - * @static + * @return bool + * @static */ public static function runningConsoleCommand(...$commands) { @@ -522,8 +520,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application is running unit tests. * - * @return bool - * @static + * @return bool + * @static */ public static function runningUnitTests() { @@ -534,8 +532,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application is running with debug mode enabled. * - * @return bool - * @static + * @return bool + * @static */ public static function hasDebugModeEnabled() { @@ -547,8 +545,8 @@ namespace Illuminate\Support\Facades { * Register a new registered listener. * * @param callable $callback - * @return void - * @static + * @return void + * @static */ public static function registered($callback) { @@ -559,8 +557,8 @@ namespace Illuminate\Support\Facades { /** * Register all of the configured providers. * - * @return void - * @static + * @return void + * @static */ public static function registerConfiguredProviders() { @@ -573,8 +571,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Support\ServiceProvider|string $provider * @param bool $force - * @return \Illuminate\Support\ServiceProvider - * @static + * @return \Illuminate\Support\ServiceProvider + * @static */ public static function register($provider, $force = false) { @@ -586,8 +584,8 @@ namespace Illuminate\Support\Facades { * Get the registered service provider instance if it exists. * * @param \Illuminate\Support\ServiceProvider|string $provider - * @return \Illuminate\Support\ServiceProvider|null - * @static + * @return \Illuminate\Support\ServiceProvider|null + * @static */ public static function getProvider($provider) { @@ -599,8 +597,8 @@ namespace Illuminate\Support\Facades { * Get the registered service provider instances if any exist. * * @param \Illuminate\Support\ServiceProvider|string $provider - * @return array - * @static + * @return array + * @static */ public static function getProviders($provider) { @@ -612,8 +610,8 @@ namespace Illuminate\Support\Facades { * Resolve a service provider instance from the class name. * * @param string $provider - * @return \Illuminate\Support\ServiceProvider - * @static + * @return \Illuminate\Support\ServiceProvider + * @static */ public static function resolveProvider($provider) { @@ -624,8 +622,8 @@ namespace Illuminate\Support\Facades { /** * Load and boot all of the remaining deferred providers. * - * @return void - * @static + * @return void + * @static */ public static function loadDeferredProviders() { @@ -637,8 +635,8 @@ namespace Illuminate\Support\Facades { * Load the provider for a deferred service. * * @param string $service - * @return void - * @static + * @return void + * @static */ public static function loadDeferredProvider($service) { @@ -651,8 +649,8 @@ namespace Illuminate\Support\Facades { * * @param string $provider * @param string|null $service - * @return void - * @static + * @return void + * @static */ public static function registerDeferredProvider($provider, $service = null) { @@ -668,7 +666,7 @@ namespace Illuminate\Support\Facades { * @param array $parameters * @return ($abstract is class-string ? TClass : mixed) * @throws \Illuminate\Contracts\Container\BindingResolutionException - * @static + * @static */ public static function make($abstract, $parameters = []) { @@ -680,8 +678,8 @@ namespace Illuminate\Support\Facades { * Determine if the given abstract type has been bound. * * @param string $abstract - * @return bool - * @static + * @return bool + * @static */ public static function bound($abstract) { @@ -692,8 +690,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application has booted. * - * @return bool - * @static + * @return bool + * @static */ public static function isBooted() { @@ -704,8 +702,8 @@ namespace Illuminate\Support\Facades { /** * Boot the application's service providers. * - * @return void - * @static + * @return void + * @static */ public static function boot() { @@ -717,8 +715,8 @@ namespace Illuminate\Support\Facades { * Register a new boot listener. * * @param callable $callback - * @return void - * @static + * @return void + * @static */ public static function booting($callback) { @@ -730,8 +728,8 @@ namespace Illuminate\Support\Facades { * Register a new "booted" listener. * * @param callable $callback - * @return void - * @static + * @return void + * @static */ public static function booted($callback) { @@ -742,8 +740,8 @@ namespace Illuminate\Support\Facades { /** * {@inheritdoc} * - * @return \Symfony\Component\HttpFoundation\Response - * @static + * @return \Symfony\Component\HttpFoundation\Response + * @static */ public static function handle($request, $type = 1, $catch = true) { @@ -755,8 +753,8 @@ namespace Illuminate\Support\Facades { * Handle the incoming HTTP request and send the response to the browser. * * @param \Illuminate\Http\Request $request - * @return void - * @static + * @return void + * @static */ public static function handleRequest($request) { @@ -768,8 +766,8 @@ namespace Illuminate\Support\Facades { * Handle the incoming Artisan command. * * @param \Symfony\Component\Console\Input\InputInterface $input - * @return int - * @static + * @return int + * @static */ public static function handleCommand($input) { @@ -780,8 +778,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the framework's base configuration should be merged. * - * @return bool - * @static + * @return bool + * @static */ public static function shouldMergeFrameworkConfiguration() { @@ -792,8 +790,8 @@ namespace Illuminate\Support\Facades { /** * Indicate that the framework's base configuration should not be merged. * - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function dontMergeFrameworkConfiguration() { @@ -804,8 +802,8 @@ namespace Illuminate\Support\Facades { /** * Determine if middleware has been disabled for the application. * - * @return bool - * @static + * @return bool + * @static */ public static function shouldSkipMiddleware() { @@ -816,8 +814,8 @@ namespace Illuminate\Support\Facades { /** * Get the path to the cached services.php file. * - * @return string - * @static + * @return string + * @static */ public static function getCachedServicesPath() { @@ -828,8 +826,8 @@ namespace Illuminate\Support\Facades { /** * Get the path to the cached packages.php file. * - * @return string - * @static + * @return string + * @static */ public static function getCachedPackagesPath() { @@ -840,8 +838,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application configuration is cached. * - * @return bool - * @static + * @return bool + * @static */ public static function configurationIsCached() { @@ -852,8 +850,8 @@ namespace Illuminate\Support\Facades { /** * Get the path to the configuration cache file. * - * @return string - * @static + * @return string + * @static */ public static function getCachedConfigPath() { @@ -864,8 +862,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application routes are cached. * - * @return bool - * @static + * @return bool + * @static */ public static function routesAreCached() { @@ -876,8 +874,8 @@ namespace Illuminate\Support\Facades { /** * Get the path to the routes cache file. * - * @return string - * @static + * @return string + * @static */ public static function getCachedRoutesPath() { @@ -888,8 +886,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application events are cached. * - * @return bool - * @static + * @return bool + * @static */ public static function eventsAreCached() { @@ -900,8 +898,8 @@ namespace Illuminate\Support\Facades { /** * Get the path to the events cache file. * - * @return string - * @static + * @return string + * @static */ public static function getCachedEventsPath() { @@ -913,8 +911,8 @@ namespace Illuminate\Support\Facades { * Add new prefix to list of absolute path prefixes. * * @param string $prefix - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function addAbsoluteCachePathPrefix($prefix) { @@ -925,8 +923,8 @@ namespace Illuminate\Support\Facades { /** * Get an instance of the maintenance mode manager implementation. * - * @return \Illuminate\Contracts\Foundation\MaintenanceMode - * @static + * @return \Illuminate\Contracts\Foundation\MaintenanceMode + * @static */ public static function maintenanceMode() { @@ -937,8 +935,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the application is currently down for maintenance. * - * @return bool - * @static + * @return bool + * @static */ public static function isDownForMaintenance() { @@ -952,10 +950,10 @@ namespace Illuminate\Support\Facades { * @param int $code * @param string $message * @param array $headers - * @return never + * @return never * @throws \Symfony\Component\HttpKernel\Exception\HttpException * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException - * @static + * @static */ public static function abort($code, $message = '', $headers = []) { @@ -967,8 +965,8 @@ namespace Illuminate\Support\Facades { * Register a terminating callback with the application. * * @param callable|string $callback - * @return \Illuminate\Foundation\Application - * @static + * @return \Illuminate\Foundation\Application + * @static */ public static function terminating($callback) { @@ -979,8 +977,8 @@ namespace Illuminate\Support\Facades { /** * Terminate the application. * - * @return void - * @static + * @return void + * @static */ public static function terminate() { @@ -991,8 +989,8 @@ namespace Illuminate\Support\Facades { /** * Get the service providers that have been loaded. * - * @return array - * @static + * @return array + * @static */ public static function getLoadedProviders() { @@ -1004,8 +1002,8 @@ namespace Illuminate\Support\Facades { * Determine if the given service provider is loaded. * * @param string $provider - * @return bool - * @static + * @return bool + * @static */ public static function providerIsLoaded($provider) { @@ -1016,8 +1014,8 @@ namespace Illuminate\Support\Facades { /** * Get the application's deferred services. * - * @return array - * @static + * @return array + * @static */ public static function getDeferredServices() { @@ -1029,8 +1027,8 @@ namespace Illuminate\Support\Facades { * Set the application's deferred services. * * @param array $services - * @return void - * @static + * @return void + * @static */ public static function setDeferredServices($services) { @@ -1042,8 +1040,8 @@ namespace Illuminate\Support\Facades { * Determine if the given service is a deferred service. * * @param string $service - * @return bool - * @static + * @return bool + * @static */ public static function isDeferredService($service) { @@ -1055,8 +1053,8 @@ namespace Illuminate\Support\Facades { * Add an array of services to the application's deferred services. * * @param array $services - * @return void - * @static + * @return void + * @static */ public static function addDeferredServices($services) { @@ -1068,8 +1066,8 @@ namespace Illuminate\Support\Facades { * Remove an array of services from the application's deferred services. * * @param array $services - * @return void - * @static + * @return void + * @static */ public static function removeDeferredServices($services) { @@ -1081,8 +1079,8 @@ namespace Illuminate\Support\Facades { * Configure the real-time facade namespace. * * @param string $namespace - * @return void - * @static + * @return void + * @static */ public static function provideFacades($namespace) { @@ -1093,8 +1091,8 @@ namespace Illuminate\Support\Facades { /** * Get the current application locale. * - * @return string - * @static + * @return string + * @static */ public static function getLocale() { @@ -1105,8 +1103,8 @@ namespace Illuminate\Support\Facades { /** * Get the current application locale. * - * @return string - * @static + * @return string + * @static */ public static function currentLocale() { @@ -1117,8 +1115,8 @@ namespace Illuminate\Support\Facades { /** * Get the current application fallback locale. * - * @return string - * @static + * @return string + * @static */ public static function getFallbackLocale() { @@ -1130,8 +1128,8 @@ namespace Illuminate\Support\Facades { * Set the current application locale. * * @param string $locale - * @return void - * @static + * @return void + * @static */ public static function setLocale($locale) { @@ -1143,8 +1141,8 @@ namespace Illuminate\Support\Facades { * Set the current application fallback locale. * * @param string $fallbackLocale - * @return void - * @static + * @return void + * @static */ public static function setFallbackLocale($fallbackLocale) { @@ -1156,8 +1154,8 @@ namespace Illuminate\Support\Facades { * Determine if the application locale is the given locale. * * @param string $locale - * @return bool - * @static + * @return bool + * @static */ public static function isLocale($locale) { @@ -1168,8 +1166,8 @@ namespace Illuminate\Support\Facades { /** * Register the core class aliases in the container. * - * @return void - * @static + * @return void + * @static */ public static function registerCoreContainerAliases() { @@ -1180,8 +1178,8 @@ namespace Illuminate\Support\Facades { /** * Flush the container of all bindings and resolved instances. * - * @return void - * @static + * @return void + * @static */ public static function flush() { @@ -1192,9 +1190,9 @@ namespace Illuminate\Support\Facades { /** * Get the application namespace. * - * @return string + * @return string * @throws \RuntimeException - * @static + * @static */ public static function getNamespace() { @@ -1206,8 +1204,8 @@ namespace Illuminate\Support\Facades { * Define a contextual binding. * * @param array|string $concrete - * @return \Illuminate\Contracts\Container\ContextualBindingBuilder - * @static + * @return \Illuminate\Contracts\Container\ContextualBindingBuilder + * @static */ public static function when($concrete) { @@ -1221,8 +1219,8 @@ namespace Illuminate\Support\Facades { * * @param string $attribute * @param \Closure $handler - * @return void - * @static + * @return void + * @static */ public static function whenHasAttribute($attribute, $handler) { @@ -1233,16 +1231,16 @@ namespace Illuminate\Support\Facades { /** * Returns true if the container can return an entry for the given identifier. - * + * * Returns false otherwise. - * + * * `has($id)` returning true does not mean that `get($id)` will not throw an exception. * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`. * - * @return bool + * @return bool * @param string $id Identifier of the entry to look for. - * @return bool - * @static + * @return bool + * @static */ public static function has($id) { @@ -1255,8 +1253,8 @@ namespace Illuminate\Support\Facades { * Determine if the given abstract type has been resolved. * * @param string $abstract - * @return bool - * @static + * @return bool + * @static */ public static function resolved($abstract) { @@ -1269,8 +1267,8 @@ namespace Illuminate\Support\Facades { * Determine if a given type is shared. * * @param string $abstract - * @return bool - * @static + * @return bool + * @static */ public static function isShared($abstract) { @@ -1283,8 +1281,8 @@ namespace Illuminate\Support\Facades { * Determine if a given string is an alias. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function isAlias($name) { @@ -1299,9 +1297,9 @@ namespace Illuminate\Support\Facades { * @param string $abstract * @param \Closure|string|null $concrete * @param bool $shared - * @return void + * @return void * @throws \TypeError - * @static + * @static */ public static function bind($abstract, $concrete = null, $shared = false) { @@ -1314,8 +1312,8 @@ namespace Illuminate\Support\Facades { * Determine if the container has a method binding. * * @param string $method - * @return bool - * @static + * @return bool + * @static */ public static function hasMethodBinding($method) { @@ -1329,8 +1327,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $method * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function bindMethod($method, $callback) { @@ -1344,8 +1342,8 @@ namespace Illuminate\Support\Facades { * * @param string $method * @param mixed $instance - * @return mixed - * @static + * @return mixed + * @static */ public static function callMethodBinding($method, $instance) { @@ -1360,8 +1358,8 @@ namespace Illuminate\Support\Facades { * @param string $concrete * @param string $abstract * @param \Closure|string $implementation - * @return void - * @static + * @return void + * @static */ public static function addContextualBinding($concrete, $abstract, $implementation) { @@ -1376,8 +1374,8 @@ namespace Illuminate\Support\Facades { * @param string $abstract * @param \Closure|string|null $concrete * @param bool $shared - * @return void - * @static + * @return void + * @static */ public static function bindIf($abstract, $concrete = null, $shared = false) { @@ -1391,8 +1389,8 @@ namespace Illuminate\Support\Facades { * * @param string $abstract * @param \Closure|string|null $concrete - * @return void - * @static + * @return void + * @static */ public static function singleton($abstract, $concrete = null) { @@ -1406,8 +1404,8 @@ namespace Illuminate\Support\Facades { * * @param string $abstract * @param \Closure|string|null $concrete - * @return void - * @static + * @return void + * @static */ public static function singletonIf($abstract, $concrete = null) { @@ -1421,8 +1419,8 @@ namespace Illuminate\Support\Facades { * * @param string $abstract * @param \Closure|string|null $concrete - * @return void - * @static + * @return void + * @static */ public static function scoped($abstract, $concrete = null) { @@ -1436,8 +1434,8 @@ namespace Illuminate\Support\Facades { * * @param string $abstract * @param \Closure|string|null $concrete - * @return void - * @static + * @return void + * @static */ public static function scopedIf($abstract, $concrete = null) { @@ -1451,9 +1449,9 @@ namespace Illuminate\Support\Facades { * * @param string $abstract * @param \Closure $closure - * @return void + * @return void * @throws \InvalidArgumentException - * @static + * @static */ public static function extend($abstract, $closure) { @@ -1468,8 +1466,8 @@ namespace Illuminate\Support\Facades { * @template TInstance of mixed * @param string $abstract * @param TInstance $instance - * @return TInstance - * @static + * @return TInstance + * @static */ public static function instance($abstract, $instance) { @@ -1483,8 +1481,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $abstracts * @param array|mixed $tags - * @return void - * @static + * @return void + * @static */ public static function tag($abstracts, $tags) { @@ -1497,8 +1495,8 @@ namespace Illuminate\Support\Facades { * Resolve all of the bindings for a given tag. * * @param string $tag - * @return iterable - * @static + * @return iterable + * @static */ public static function tagged($tag) { @@ -1512,9 +1510,9 @@ namespace Illuminate\Support\Facades { * * @param string $abstract * @param string $alias - * @return void + * @return void * @throws \LogicException - * @static + * @static */ public static function alias($abstract, $alias) { @@ -1528,8 +1526,8 @@ namespace Illuminate\Support\Facades { * * @param string $abstract * @param \Closure $callback - * @return mixed - * @static + * @return mixed + * @static */ public static function rebinding($abstract, $callback) { @@ -1544,8 +1542,8 @@ namespace Illuminate\Support\Facades { * @param string $abstract * @param mixed $target * @param string $method - * @return mixed - * @static + * @return mixed + * @static */ public static function refresh($abstract, $target, $method) { @@ -1559,8 +1557,8 @@ namespace Illuminate\Support\Facades { * * @param \Closure $callback * @param array $parameters - * @return \Closure - * @static + * @return \Closure + * @static */ public static function wrap($callback, $parameters = []) { @@ -1575,9 +1573,9 @@ namespace Illuminate\Support\Facades { * @param callable|string $callback * @param array $parameters * @param string|null $defaultMethod - * @return mixed + * @return mixed * @throws \InvalidArgumentException - * @static + * @static */ public static function call($callback, $parameters = [], $defaultMethod = null) { @@ -1592,7 +1590,7 @@ namespace Illuminate\Support\Facades { * @template TClass of object * @param string|class-string $abstract * @return ($abstract is class-string ? \Closure(): TClass : \Closure(): mixed) - * @static + * @static */ public static function factory($abstract) { @@ -1609,7 +1607,7 @@ namespace Illuminate\Support\Facades { * @param array $parameters * @return ($abstract is class-string ? TClass : mixed) * @throws \Illuminate\Contracts\Container\BindingResolutionException - * @static + * @static */ public static function makeWith($abstract, $parameters = []) { @@ -1619,16 +1617,12 @@ namespace Illuminate\Support\Facades { } /** - * Finds an entry of the container by its identifier and returns it. + * {@inheritdoc} * * @template TClass of object * @param string|class-string $id * @return ($id is class-string ? TClass : mixed) - * @param string $id Identifier of the entry to look for. - * @throws NotFoundExceptionInterface No entry was found for **this** identifier. - * @throws ContainerExceptionInterface Error while retrieving the entry. - * @return mixed Entry. - * @static + * @static */ public static function get($id) { @@ -1642,10 +1636,10 @@ namespace Illuminate\Support\Facades { * * @template TClass of object * @param \Closure(static, array): TClass|class-string $concrete - * @return TClass + * @return TClass * @throws \Illuminate\Contracts\Container\BindingResolutionException * @throws \Illuminate\Contracts\Container\CircularDependencyException - * @static + * @static */ public static function build($concrete) { @@ -1658,8 +1652,8 @@ namespace Illuminate\Support\Facades { * Resolve a dependency based on an attribute. * * @param \ReflectionAttribute $attribute - * @return mixed - * @static + * @return mixed + * @static */ public static function resolveFromAttribute($attribute) { @@ -1673,8 +1667,8 @@ namespace Illuminate\Support\Facades { * * @param \Closure|string $abstract * @param \Closure|null $callback - * @return void - * @static + * @return void + * @static */ public static function beforeResolving($abstract, $callback = null) { @@ -1688,8 +1682,8 @@ namespace Illuminate\Support\Facades { * * @param \Closure|string $abstract * @param \Closure|null $callback - * @return void - * @static + * @return void + * @static */ public static function resolving($abstract, $callback = null) { @@ -1703,8 +1697,8 @@ namespace Illuminate\Support\Facades { * * @param \Closure|string $abstract * @param \Closure|null $callback - * @return void - * @static + * @return void + * @static */ public static function afterResolving($abstract, $callback = null) { @@ -1718,8 +1712,8 @@ namespace Illuminate\Support\Facades { * * @param string $attribute * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function afterResolvingAttribute($attribute, $callback) { @@ -1733,8 +1727,8 @@ namespace Illuminate\Support\Facades { * * @param \ReflectionAttribute[] $attributes * @param mixed $object - * @return void - * @static + * @return void + * @static */ public static function fireAfterResolvingAttributeCallbacks($attributes, $object) { @@ -1746,8 +1740,8 @@ namespace Illuminate\Support\Facades { /** * Get the container's bindings. * - * @return array - * @static + * @return array + * @static */ public static function getBindings() { @@ -1760,8 +1754,8 @@ namespace Illuminate\Support\Facades { * Get the alias for an abstract if available. * * @param string $abstract - * @return string - * @static + * @return string + * @static */ public static function getAlias($abstract) { @@ -1774,8 +1768,8 @@ namespace Illuminate\Support\Facades { * Remove all of the extender callbacks for a given type. * * @param string $abstract - * @return void - * @static + * @return void + * @static */ public static function forgetExtenders($abstract) { @@ -1788,8 +1782,8 @@ namespace Illuminate\Support\Facades { * Remove a resolved instance from the instance cache. * * @param string $abstract - * @return void - * @static + * @return void + * @static */ public static function forgetInstance($abstract) { @@ -1801,8 +1795,8 @@ namespace Illuminate\Support\Facades { /** * Clear all of the instances from the container. * - * @return void - * @static + * @return void + * @static */ public static function forgetInstances() { @@ -1814,8 +1808,8 @@ namespace Illuminate\Support\Facades { /** * Clear all of the scoped instances from the container. * - * @return void - * @static + * @return void + * @static */ public static function forgetScopedInstances() { @@ -1827,8 +1821,8 @@ namespace Illuminate\Support\Facades { /** * Get the globally available instance of the container. * - * @return static - * @static + * @return static + * @static */ public static function getInstance() { @@ -1840,8 +1834,8 @@ namespace Illuminate\Support\Facades { * Set the shared instance of the container. * * @param \Illuminate\Contracts\Container\Container|null $container - * @return \Illuminate\Contracts\Container\Container|static - * @static + * @return \Illuminate\Contracts\Container\Container|static + * @static */ public static function setInstance($container = null) { @@ -1853,8 +1847,8 @@ namespace Illuminate\Support\Facades { * Determine if a given offset exists. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function offsetExists($key) { @@ -1867,8 +1861,8 @@ namespace Illuminate\Support\Facades { * Get the value at a given offset. * * @param string $key - * @return mixed - * @static + * @return mixed + * @static */ public static function offsetGet($key) { @@ -1882,8 +1876,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function offsetSet($key, $value) { @@ -1896,8 +1890,8 @@ namespace Illuminate\Support\Facades { * Unset the value at a given offset. * * @param string $key - * @return void - * @static + * @return void + * @static */ public static function offsetUnset($key) { @@ -1912,8 +1906,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -1925,9 +1919,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -1938,8 +1932,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -1949,8 +1943,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -1959,17 +1953,15 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Foundation\Console\Kernel */ class Artisan { /** * Re-route the Symfony command events to their Laravel counterparts. * - * @internal - * @return \App\Console\Kernel - * @static + * @internal + * @return \App\Console\Kernel + * @static */ public static function rerouteSymfonyCommandEvents() { @@ -1983,8 +1975,8 @@ namespace Illuminate\Support\Facades { * * @param \Symfony\Component\Console\Input\InputInterface $input * @param \Symfony\Component\Console\Output\OutputInterface|null $output - * @return int - * @static + * @return int + * @static */ public static function handle($input, $output = null) { @@ -1998,8 +1990,8 @@ namespace Illuminate\Support\Facades { * * @param \Symfony\Component\Console\Input\InputInterface $input * @param int $status - * @return void - * @static + * @return void + * @static */ public static function terminate($input, $status) { @@ -2013,8 +2005,8 @@ namespace Illuminate\Support\Facades { * * @param \DateTimeInterface|\Carbon\CarbonInterval|float|int $threshold * @param callable $handler - * @return void - * @static + * @return void + * @static */ public static function whenCommandLifecycleIsLongerThan($threshold, $handler) { @@ -2026,8 +2018,8 @@ namespace Illuminate\Support\Facades { /** * When the command being handled started. * - * @return \Illuminate\Support\Carbon|null - * @static + * @return \Illuminate\Support\Carbon|null + * @static */ public static function commandStartedAt() { @@ -2039,8 +2031,8 @@ namespace Illuminate\Support\Facades { /** * Resolve a console schedule instance. * - * @return \Illuminate\Console\Scheduling\Schedule - * @static + * @return \Illuminate\Console\Scheduling\Schedule + * @static */ public static function resolveConsoleSchedule() { @@ -2054,8 +2046,8 @@ namespace Illuminate\Support\Facades { * * @param string $signature * @param \Closure $callback - * @return \Illuminate\Foundation\Console\ClosureCommand - * @static + * @return \Illuminate\Foundation\Console\ClosureCommand + * @static */ public static function command($signature, $callback) { @@ -2068,8 +2060,8 @@ namespace Illuminate\Support\Facades { * Register the given command with the console application. * * @param \Symfony\Component\Console\Command\Command $command - * @return void - * @static + * @return void + * @static */ public static function registerCommand($command) { @@ -2084,9 +2076,9 @@ namespace Illuminate\Support\Facades { * @param string $command * @param array $parameters * @param \Symfony\Component\Console\Output\OutputInterface|null $outputBuffer - * @return int + * @return int * @throws \Symfony\Component\Console\Exception\CommandNotFoundException - * @static + * @static */ public static function call($command, $parameters = [], $outputBuffer = null) { @@ -2100,8 +2092,8 @@ namespace Illuminate\Support\Facades { * * @param string $command * @param array $parameters - * @return \Illuminate\Foundation\Bus\PendingDispatch - * @static + * @return \Illuminate\Foundation\Bus\PendingDispatch + * @static */ public static function queue($command, $parameters = []) { @@ -2113,8 +2105,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the commands registered with the console. * - * @return array - * @static + * @return array + * @static */ public static function all() { @@ -2126,8 +2118,8 @@ namespace Illuminate\Support\Facades { /** * Get the output for the last run command. * - * @return string - * @static + * @return string + * @static */ public static function output() { @@ -2139,8 +2131,8 @@ namespace Illuminate\Support\Facades { /** * Bootstrap the application for artisan commands. * - * @return void - * @static + * @return void + * @static */ public static function bootstrap() { @@ -2152,8 +2144,8 @@ namespace Illuminate\Support\Facades { /** * Bootstrap the application without booting service providers. * - * @return void - * @static + * @return void + * @static */ public static function bootstrapWithoutBootingProviders() { @@ -2166,8 +2158,8 @@ namespace Illuminate\Support\Facades { * Set the Artisan application instance. * * @param \Illuminate\Console\Application|null $artisan - * @return void - * @static + * @return void + * @static */ public static function setArtisan($artisan) { @@ -2180,8 +2172,8 @@ namespace Illuminate\Support\Facades { * Set the Artisan commands provided by the application. * * @param array $commands - * @return \App\Console\Kernel - * @static + * @return \App\Console\Kernel + * @static */ public static function addCommands($commands) { @@ -2194,8 +2186,8 @@ namespace Illuminate\Support\Facades { * Set the paths that should have their Artisan commands automatically discovered. * * @param array $paths - * @return \App\Console\Kernel - * @static + * @return \App\Console\Kernel + * @static */ public static function addCommandPaths($paths) { @@ -2208,8 +2200,8 @@ namespace Illuminate\Support\Facades { * Set the paths that should have their Artisan "routes" automatically discovered. * * @param array $paths - * @return \App\Console\Kernel - * @static + * @return \App\Console\Kernel + * @static */ public static function addCommandRoutePaths($paths) { @@ -2220,8 +2212,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Auth\AuthManager * @see \Illuminate\Auth\SessionGuard */ @@ -2230,8 +2220,8 @@ namespace Illuminate\Support\Facades { * Attempt to get the guard from the local cache. * * @param string|null $name - * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard - * @static + * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard + * @static */ public static function guard($name = null) { @@ -2244,8 +2234,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param array $config - * @return \Illuminate\Auth\SessionGuard - * @static + * @return \Illuminate\Auth\SessionGuard + * @static */ public static function createSessionDriver($name, $config) { @@ -2258,8 +2248,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param array $config - * @return \Illuminate\Auth\TokenGuard - * @static + * @return \Illuminate\Auth\TokenGuard + * @static */ public static function createTokenDriver($name, $config) { @@ -2270,8 +2260,8 @@ namespace Illuminate\Support\Facades { /** * Get the default authentication driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -2283,8 +2273,8 @@ namespace Illuminate\Support\Facades { * Set the default guard driver the factory should serve. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function shouldUse($name) { @@ -2296,8 +2286,8 @@ namespace Illuminate\Support\Facades { * Set the default authentication driver name. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultDriver($name) { @@ -2310,8 +2300,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param callable $callback - * @return \Illuminate\Auth\AuthManager - * @static + * @return \Illuminate\Auth\AuthManager + * @static */ public static function viaRequest($driver, $callback) { @@ -2322,8 +2312,8 @@ namespace Illuminate\Support\Facades { /** * Get the user resolver callback. * - * @return \Closure - * @static + * @return \Closure + * @static */ public static function userResolver() { @@ -2335,8 +2325,8 @@ namespace Illuminate\Support\Facades { * Set the callback to be used to resolve users. * * @param \Closure $userResolver - * @return \Illuminate\Auth\AuthManager - * @static + * @return \Illuminate\Auth\AuthManager + * @static */ public static function resolveUsersUsing($userResolver) { @@ -2349,8 +2339,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Auth\AuthManager - * @static + * @return \Illuminate\Auth\AuthManager + * @static */ public static function extend($driver, $callback) { @@ -2363,8 +2353,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param \Closure $callback - * @return \Illuminate\Auth\AuthManager - * @static + * @return \Illuminate\Auth\AuthManager + * @static */ public static function provider($name, $callback) { @@ -2375,8 +2365,8 @@ namespace Illuminate\Support\Facades { /** * Determines if any guards have already been resolved. * - * @return bool - * @static + * @return bool + * @static */ public static function hasResolvedGuards() { @@ -2387,8 +2377,8 @@ namespace Illuminate\Support\Facades { /** * Forget all of the resolved guard instances. * - * @return \Illuminate\Auth\AuthManager - * @static + * @return \Illuminate\Auth\AuthManager + * @static */ public static function forgetGuards() { @@ -2400,8 +2390,8 @@ namespace Illuminate\Support\Facades { * Set the application instance used by the manager. * * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Auth\AuthManager - * @static + * @return \Illuminate\Auth\AuthManager + * @static */ public static function setApplication($app) { @@ -2413,9 +2403,9 @@ namespace Illuminate\Support\Facades { * Create the user provider implementation for the driver. * * @param string|null $provider - * @return \Illuminate\Contracts\Auth\UserProvider|null + * @return \Illuminate\Contracts\Auth\UserProvider|null * @throws \InvalidArgumentException - * @static + * @static */ public static function createUserProvider($provider = null) { @@ -2426,8 +2416,8 @@ namespace Illuminate\Support\Facades { /** * Get the default user provider name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultUserProvider() { @@ -2438,8 +2428,8 @@ namespace Illuminate\Support\Facades { /** * Get the currently authenticated user. * - * @return \App\User|null - * @static + * @return \App\User|null + * @static */ public static function user() { @@ -2450,8 +2440,8 @@ namespace Illuminate\Support\Facades { /** * Get the ID for the currently authenticated user. * - * @return int|string|null - * @static + * @return int|string|null + * @static */ public static function id() { @@ -2463,8 +2453,8 @@ namespace Illuminate\Support\Facades { * Log a user into the application without sessions or cookies. * * @param array $credentials - * @return bool - * @static + * @return bool + * @static */ public static function once($credentials = []) { @@ -2476,8 +2466,8 @@ namespace Illuminate\Support\Facades { * Log the given user ID into the application without sessions or cookies. * * @param mixed $id - * @return \App\User|false - * @static + * @return \App\User|false + * @static */ public static function onceUsingId($id) { @@ -2489,8 +2479,8 @@ namespace Illuminate\Support\Facades { * Validate a user's credentials. * * @param array $credentials - * @return bool - * @static + * @return bool + * @static */ public static function validate($credentials = []) { @@ -2503,9 +2493,9 @@ namespace Illuminate\Support\Facades { * * @param string $field * @param array $extraConditions - * @return \Symfony\Component\HttpFoundation\Response|null + * @return \Symfony\Component\HttpFoundation\Response|null * @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException - * @static + * @static */ public static function basic($field = 'email', $extraConditions = []) { @@ -2518,9 +2508,9 @@ namespace Illuminate\Support\Facades { * * @param string $field * @param array $extraConditions - * @return \Symfony\Component\HttpFoundation\Response|null + * @return \Symfony\Component\HttpFoundation\Response|null * @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException - * @static + * @static */ public static function onceBasic($field = 'email', $extraConditions = []) { @@ -2533,8 +2523,8 @@ namespace Illuminate\Support\Facades { * * @param array $credentials * @param bool $remember - * @return bool - * @static + * @return bool + * @static */ public static function attempt($credentials = [], $remember = false) { @@ -2548,8 +2538,8 @@ namespace Illuminate\Support\Facades { * @param array $credentials * @param array|callable|null $callbacks * @param bool $remember - * @return bool - * @static + * @return bool + * @static */ public static function attemptWhen($credentials = [], $callbacks = null, $remember = false) { @@ -2562,8 +2552,8 @@ namespace Illuminate\Support\Facades { * * @param mixed $id * @param bool $remember - * @return \App\User|false - * @static + * @return \App\User|false + * @static */ public static function loginUsingId($id, $remember = false) { @@ -2576,8 +2566,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Contracts\Auth\Authenticatable $user * @param bool $remember - * @return void - * @static + * @return void + * @static */ public static function login($user, $remember = false) { @@ -2588,8 +2578,8 @@ namespace Illuminate\Support\Facades { /** * Log the user out of the application. * - * @return void - * @static + * @return void + * @static */ public static function logout() { @@ -2599,11 +2589,11 @@ namespace Illuminate\Support\Facades { /** * Log the user out of the application on their current device only. - * + * * This method does not cycle the "remember" token. * - * @return void - * @static + * @return void + * @static */ public static function logoutCurrentDevice() { @@ -2613,13 +2603,13 @@ namespace Illuminate\Support\Facades { /** * Invalidate other sessions for the current user. - * + * * The application must be using the AuthenticateSession middleware. * * @param string $password - * @return \App\User|null + * @return \App\User|null * @throws \Illuminate\Auth\AuthenticationException - * @static + * @static */ public static function logoutOtherDevices($password) { @@ -2631,8 +2621,8 @@ namespace Illuminate\Support\Facades { * Register an authentication attempt event listener. * * @param mixed $callback - * @return void - * @static + * @return void + * @static */ public static function attempting($callback) { @@ -2643,8 +2633,8 @@ namespace Illuminate\Support\Facades { /** * Get the last user we attempted to authenticate. * - * @return \App\User - * @static + * @return \App\User + * @static */ public static function getLastAttempted() { @@ -2655,8 +2645,8 @@ namespace Illuminate\Support\Facades { /** * Get a unique identifier for the auth session value. * - * @return string - * @static + * @return string + * @static */ public static function getName() { @@ -2667,8 +2657,8 @@ namespace Illuminate\Support\Facades { /** * Get the name of the cookie used to store the "recaller". * - * @return string - * @static + * @return string + * @static */ public static function getRecallerName() { @@ -2679,8 +2669,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the user was authenticated via "remember me" cookie. * - * @return bool - * @static + * @return bool + * @static */ public static function viaRemember() { @@ -2692,8 +2682,8 @@ namespace Illuminate\Support\Facades { * Set the number of minutes the remember me cookie should be valid for. * * @param int $minutes - * @return \Illuminate\Auth\SessionGuard - * @static + * @return \Illuminate\Auth\SessionGuard + * @static */ public static function setRememberDuration($minutes) { @@ -2704,9 +2694,9 @@ namespace Illuminate\Support\Facades { /** * Get the cookie creator instance used by the guard. * - * @return \Illuminate\Contracts\Cookie\QueueingFactory + * @return \Illuminate\Contracts\Cookie\QueueingFactory * @throws \RuntimeException - * @static + * @static */ public static function getCookieJar() { @@ -2718,8 +2708,8 @@ namespace Illuminate\Support\Facades { * Set the cookie creator instance used by the guard. * * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookie - * @return void - * @static + * @return void + * @static */ public static function setCookieJar($cookie) { @@ -2730,8 +2720,8 @@ namespace Illuminate\Support\Facades { /** * Get the event dispatcher instance. * - * @return \Illuminate\Contracts\Events\Dispatcher - * @static + * @return \Illuminate\Contracts\Events\Dispatcher + * @static */ public static function getDispatcher() { @@ -2743,8 +2733,8 @@ namespace Illuminate\Support\Facades { * Set the event dispatcher instance. * * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - * @static + * @return void + * @static */ public static function setDispatcher($events) { @@ -2755,8 +2745,8 @@ namespace Illuminate\Support\Facades { /** * Get the session store used by the guard. * - * @return \Illuminate\Contracts\Session\Session - * @static + * @return \Illuminate\Contracts\Session\Session + * @static */ public static function getSession() { @@ -2767,8 +2757,8 @@ namespace Illuminate\Support\Facades { /** * Return the currently cached user. * - * @return \App\User|null - * @static + * @return \App\User|null + * @static */ public static function getUser() { @@ -2780,8 +2770,8 @@ namespace Illuminate\Support\Facades { * Set the current user. * * @param \Illuminate\Contracts\Auth\Authenticatable $user - * @return \Illuminate\Auth\SessionGuard - * @static + * @return \Illuminate\Auth\SessionGuard + * @static */ public static function setUser($user) { @@ -2792,8 +2782,8 @@ namespace Illuminate\Support\Facades { /** * Get the current request instance. * - * @return \Symfony\Component\HttpFoundation\Request - * @static + * @return \Symfony\Component\HttpFoundation\Request + * @static */ public static function getRequest() { @@ -2805,8 +2795,8 @@ namespace Illuminate\Support\Facades { * Set the current request instance. * * @param \Symfony\Component\HttpFoundation\Request $request - * @return \Illuminate\Auth\SessionGuard - * @static + * @return \Illuminate\Auth\SessionGuard + * @static */ public static function setRequest($request) { @@ -2817,8 +2807,8 @@ namespace Illuminate\Support\Facades { /** * Get the timebox instance used by the guard. * - * @return \Illuminate\Support\Timebox - * @static + * @return \Illuminate\Support\Timebox + * @static */ public static function getTimebox() { @@ -2829,9 +2819,9 @@ namespace Illuminate\Support\Facades { /** * Determine if the current user is authenticated. If not, throw an exception. * - * @return \App\User + * @return \App\User * @throws \Illuminate\Auth\AuthenticationException - * @static + * @static */ public static function authenticate() { @@ -2842,8 +2832,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the guard has a user instance. * - * @return bool - * @static + * @return bool + * @static */ public static function hasUser() { @@ -2854,8 +2844,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the current user is authenticated. * - * @return bool - * @static + * @return bool + * @static */ public static function check() { @@ -2866,8 +2856,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the current user is a guest. * - * @return bool - * @static + * @return bool + * @static */ public static function guest() { @@ -2878,8 +2868,8 @@ namespace Illuminate\Support\Facades { /** * Forget the current user. * - * @return \Illuminate\Auth\SessionGuard - * @static + * @return \Illuminate\Auth\SessionGuard + * @static */ public static function forgetUser() { @@ -2890,8 +2880,8 @@ namespace Illuminate\Support\Facades { /** * Get the user provider used by the guard. * - * @return \Illuminate\Contracts\Auth\UserProvider - * @static + * @return \Illuminate\Contracts\Auth\UserProvider + * @static */ public static function getProvider() { @@ -2903,8 +2893,8 @@ namespace Illuminate\Support\Facades { * Set the user provider used by the guard. * * @param \Illuminate\Contracts\Auth\UserProvider $provider - * @return void - * @static + * @return void + * @static */ public static function setProvider($provider) { @@ -2918,8 +2908,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -2931,9 +2921,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -2944,8 +2934,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -2955,8 +2945,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -2965,8 +2955,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\View\Compilers\BladeCompiler */ class Blade { @@ -2974,8 +2962,8 @@ namespace Illuminate\Support\Facades { * Compile the view at the given path. * * @param string|null $path - * @return void - * @static + * @return void + * @static */ public static function compile($path = null) { @@ -2986,8 +2974,8 @@ namespace Illuminate\Support\Facades { /** * Get the path currently being compiled. * - * @return string - * @static + * @return string + * @static */ public static function getPath() { @@ -2999,8 +2987,8 @@ namespace Illuminate\Support\Facades { * Set the path currently being compiled. * * @param string $path - * @return void - * @static + * @return void + * @static */ public static function setPath($path) { @@ -3012,8 +3000,8 @@ namespace Illuminate\Support\Facades { * Compile the given Blade template contents. * * @param string $value - * @return string - * @static + * @return string + * @static */ public static function compileString($value) { @@ -3027,8 +3015,8 @@ namespace Illuminate\Support\Facades { * @param string $string * @param array $data * @param bool $deleteCachedView - * @return string - * @static + * @return string + * @static */ public static function render($string, $data = [], $deleteCachedView = false) { @@ -3039,8 +3027,8 @@ namespace Illuminate\Support\Facades { * Render a component instance to HTML. * * @param \Illuminate\View\Component $component - * @return string - * @static + * @return string + * @static */ public static function renderComponent($component) { @@ -3051,8 +3039,8 @@ namespace Illuminate\Support\Facades { * Strip the parentheses from the given expression. * * @param string $expression - * @return string - * @static + * @return string + * @static */ public static function stripParentheses($expression) { @@ -3064,8 +3052,8 @@ namespace Illuminate\Support\Facades { * Register a custom Blade compiler. * * @param callable $compiler - * @return void - * @static + * @return void + * @static */ public static function extend($compiler) { @@ -3076,8 +3064,8 @@ namespace Illuminate\Support\Facades { /** * Get the extensions used by the compiler. * - * @return array - * @static + * @return array + * @static */ public static function getExtensions() { @@ -3090,8 +3078,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param callable $callback - * @return void - * @static + * @return void + * @static */ public static function if($name, $callback) { @@ -3104,8 +3092,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param mixed $parameters - * @return bool - * @static + * @return bool + * @static */ public static function check($name, ...$parameters) { @@ -3119,8 +3107,8 @@ namespace Illuminate\Support\Facades { * @param string $class * @param string|null $alias * @param string $prefix - * @return void - * @static + * @return void + * @static */ public static function component($class, $alias = null, $prefix = '') { @@ -3133,8 +3121,8 @@ namespace Illuminate\Support\Facades { * * @param array $components * @param string $prefix - * @return void - * @static + * @return void + * @static */ public static function components($components, $prefix = '') { @@ -3145,8 +3133,8 @@ namespace Illuminate\Support\Facades { /** * Get the registered class component aliases. * - * @return array - * @static + * @return array + * @static */ public static function getClassComponentAliases() { @@ -3159,8 +3147,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string|null $prefix - * @return void - * @static + * @return void + * @static */ public static function anonymousComponentPath($path, $prefix = null) { @@ -3173,8 +3161,8 @@ namespace Illuminate\Support\Facades { * * @param string $directory * @param string|null $prefix - * @return void - * @static + * @return void + * @static */ public static function anonymousComponentNamespace($directory, $prefix = null) { @@ -3187,8 +3175,8 @@ namespace Illuminate\Support\Facades { * * @param string $namespace * @param string $prefix - * @return void - * @static + * @return void + * @static */ public static function componentNamespace($namespace, $prefix) { @@ -3199,8 +3187,8 @@ namespace Illuminate\Support\Facades { /** * Get the registered anonymous component paths. * - * @return array - * @static + * @return array + * @static */ public static function getAnonymousComponentPaths() { @@ -3211,8 +3199,8 @@ namespace Illuminate\Support\Facades { /** * Get the registered anonymous component namespaces. * - * @return array - * @static + * @return array + * @static */ public static function getAnonymousComponentNamespaces() { @@ -3223,8 +3211,8 @@ namespace Illuminate\Support\Facades { /** * Get the registered class component namespaces. * - * @return array - * @static + * @return array + * @static */ public static function getClassComponentNamespaces() { @@ -3237,8 +3225,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string|null $alias - * @return void - * @static + * @return void + * @static */ public static function aliasComponent($path, $alias = null) { @@ -3251,8 +3239,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string|null $alias - * @return void - * @static + * @return void + * @static */ public static function include($path, $alias = null) { @@ -3265,8 +3253,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string|null $alias - * @return void - * @static + * @return void + * @static */ public static function aliasInclude($path, $alias = null) { @@ -3279,9 +3267,9 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param callable $handler - * @return void + * @return void * @throws \InvalidArgumentException - * @static + * @static */ public static function bindDirective($name, $handler) { @@ -3295,9 +3283,9 @@ namespace Illuminate\Support\Facades { * @param string $name * @param callable $handler * @param bool $bind - * @return void + * @return void * @throws \InvalidArgumentException - * @static + * @static */ public static function directive($name, $handler, $bind = false) { @@ -3308,8 +3296,8 @@ namespace Illuminate\Support\Facades { /** * Get the list of custom directives. * - * @return array - * @static + * @return array + * @static */ public static function getCustomDirectives() { @@ -3321,8 +3309,8 @@ namespace Illuminate\Support\Facades { * Indicate that the following callable should be used to prepare strings for compilation. * * @param callable $callback - * @return \Illuminate\View\Compilers\BladeCompiler - * @static + * @return \Illuminate\View\Compilers\BladeCompiler + * @static */ public static function prepareStringsForCompilationUsing($callback) { @@ -3334,8 +3322,8 @@ namespace Illuminate\Support\Facades { * Register a new precompiler. * * @param callable $precompiler - * @return void - * @static + * @return void + * @static */ public static function precompiler($precompiler) { @@ -3348,8 +3336,8 @@ namespace Illuminate\Support\Facades { * * @param string $format * @param callable $callback - * @return string - * @static + * @return string + * @static */ public static function usingEchoFormat($format, $callback) { @@ -3361,8 +3349,8 @@ namespace Illuminate\Support\Facades { * Set the echo format to be used by the compiler. * * @param string $format - * @return void - * @static + * @return void + * @static */ public static function setEchoFormat($format) { @@ -3373,8 +3361,8 @@ namespace Illuminate\Support\Facades { /** * Set the "echo" format to double encode entities. * - * @return void - * @static + * @return void + * @static */ public static function withDoubleEncoding() { @@ -3385,8 +3373,8 @@ namespace Illuminate\Support\Facades { /** * Set the "echo" format to not double encode entities. * - * @return void - * @static + * @return void + * @static */ public static function withoutDoubleEncoding() { @@ -3397,8 +3385,8 @@ namespace Illuminate\Support\Facades { /** * Indicate that component tags should not be compiled. * - * @return void - * @static + * @return void + * @static */ public static function withoutComponentTags() { @@ -3410,8 +3398,8 @@ namespace Illuminate\Support\Facades { * Get the path to the compiled version of a view. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function getCompiledPath($path) { @@ -3424,9 +3412,9 @@ namespace Illuminate\Support\Facades { * Determine if the view at the given path is expired. * * @param string $path - * @return bool + * @return bool * @throws \ErrorException - * @static + * @static */ public static function isExpired($path) { @@ -3439,8 +3427,8 @@ namespace Illuminate\Support\Facades { * Get a new component hash for a component name. * * @param string $component - * @return string - * @static + * @return string + * @static */ public static function newComponentHash($component) { @@ -3454,8 +3442,8 @@ namespace Illuminate\Support\Facades { * @param string $alias * @param string $data * @param string $hash - * @return string - * @static + * @return string + * @static */ public static function compileClassComponentOpening($component, $alias, $data, $hash) { @@ -3465,8 +3453,8 @@ namespace Illuminate\Support\Facades { /** * Compile the end-component statements into valid PHP. * - * @return string - * @static + * @return string + * @static */ public static function compileEndComponentClass() { @@ -3478,8 +3466,8 @@ namespace Illuminate\Support\Facades { * Sanitize the given component attribute value. * * @param mixed $value - * @return mixed - * @static + * @return mixed + * @static */ public static function sanitizeComponentAttribute($value) { @@ -3489,8 +3477,8 @@ namespace Illuminate\Support\Facades { /** * Compile an end-once block into valid PHP. * - * @return string - * @static + * @return string + * @static */ public static function compileEndOnce() { @@ -3503,8 +3491,8 @@ namespace Illuminate\Support\Facades { * * @param string|callable $class * @param callable|null $handler - * @return void - * @static + * @return void + * @static */ public static function stringable($class, $handler = null) { @@ -3516,8 +3504,8 @@ namespace Illuminate\Support\Facades { * Compile Blade echos into valid PHP. * * @param string $value - * @return string - * @static + * @return string + * @static */ public static function compileEchos($value) { @@ -3529,8 +3517,8 @@ namespace Illuminate\Support\Facades { * Apply the echo handler for the value if it exists. * * @param string $value - * @return string - * @static + * @return string + * @static */ public static function applyEchoHandler($value) { @@ -3540,8 +3528,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @method static mixed auth(\Illuminate\Http\Request $request) * @method static mixed validAuthenticationResponse(\Illuminate\Http\Request $request, mixed $result) * @method static void broadcast(array $channels, string $event, array $payload = []) @@ -3557,8 +3543,8 @@ namespace Illuminate\Support\Facades { * Register the routes for handling broadcast channel authentication and sockets. * * @param array|null $attributes - * @return void - * @static + * @return void + * @static */ public static function routes($attributes = null) { @@ -3570,8 +3556,8 @@ namespace Illuminate\Support\Facades { * Register the routes for handling broadcast user authentication. * * @param array|null $attributes - * @return void - * @static + * @return void + * @static */ public static function userRoutes($attributes = null) { @@ -3581,12 +3567,12 @@ namespace Illuminate\Support\Facades { /** * Register the routes for handling broadcast authentication and sockets. - * + * * Alias of "routes" method. * * @param array|null $attributes - * @return void - * @static + * @return void + * @static */ public static function channelRoutes($attributes = null) { @@ -3598,8 +3584,8 @@ namespace Illuminate\Support\Facades { * Get the socket ID for the given request. * * @param \Illuminate\Http\Request|null $request - * @return string|null - * @static + * @return string|null + * @static */ public static function socket($request = null) { @@ -3610,7 +3596,7 @@ namespace Illuminate\Support\Facades { /** * Begin sending an anonymous broadcast to the given channels. * - * @static + * @static */ public static function on($channels) { @@ -3621,7 +3607,7 @@ namespace Illuminate\Support\Facades { /** * Begin sending an anonymous broadcast to the given private channels. * - * @static + * @static */ public static function private($channel) { @@ -3632,7 +3618,7 @@ namespace Illuminate\Support\Facades { /** * Begin sending an anonymous broadcast to the given presence channels. * - * @static + * @static */ public static function presence($channel) { @@ -3644,8 +3630,8 @@ namespace Illuminate\Support\Facades { * Begin broadcasting an event. * * @param mixed|null $event - * @return \Illuminate\Broadcasting\PendingBroadcast - * @static + * @return \Illuminate\Broadcasting\PendingBroadcast + * @static */ public static function event($event = null) { @@ -3657,8 +3643,8 @@ namespace Illuminate\Support\Facades { * Queue the given event for broadcast. * * @param mixed $event - * @return void - * @static + * @return void + * @static */ public static function queue($event) { @@ -3670,8 +3656,8 @@ namespace Illuminate\Support\Facades { * Get a driver instance. * * @param string|null $driver - * @return mixed - * @static + * @return mixed + * @static */ public static function connection($driver = null) { @@ -3683,8 +3669,8 @@ namespace Illuminate\Support\Facades { * Get a driver instance. * * @param string|null $name - * @return mixed - * @static + * @return mixed + * @static */ public static function driver($name = null) { @@ -3696,8 +3682,8 @@ namespace Illuminate\Support\Facades { * Get a Pusher instance for the given configuration. * * @param array $config - * @return \Pusher\Pusher - * @static + * @return \Pusher\Pusher + * @static */ public static function pusher($config) { @@ -3709,8 +3695,8 @@ namespace Illuminate\Support\Facades { * Get an Ably instance for the given configuration. * * @param array $config - * @return \Ably\AblyRest - * @static + * @return \Ably\AblyRest + * @static */ public static function ably($config) { @@ -3721,8 +3707,8 @@ namespace Illuminate\Support\Facades { /** * Get the default driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -3734,8 +3720,8 @@ namespace Illuminate\Support\Facades { * Set the default driver name. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultDriver($name) { @@ -3747,8 +3733,8 @@ namespace Illuminate\Support\Facades { * Disconnect the given disk and remove from local cache. * * @param string|null $name - * @return void - * @static + * @return void + * @static */ public static function purge($name = null) { @@ -3761,8 +3747,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Broadcasting\BroadcastManager - * @static + * @return \Illuminate\Broadcasting\BroadcastManager + * @static */ public static function extend($driver, $callback) { @@ -3773,8 +3759,8 @@ namespace Illuminate\Support\Facades { /** * Get the application instance used by the manager. * - * @return \Illuminate\Contracts\Foundation\Application - * @static + * @return \Illuminate\Contracts\Foundation\Application + * @static */ public static function getApplication() { @@ -3786,8 +3772,8 @@ namespace Illuminate\Support\Facades { * Set the application instance used by the manager. * * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Broadcasting\BroadcastManager - * @static + * @return \Illuminate\Broadcasting\BroadcastManager + * @static */ public static function setApplication($app) { @@ -3798,8 +3784,8 @@ namespace Illuminate\Support\Facades { /** * Forget all of the resolved driver instances. * - * @return \Illuminate\Broadcasting\BroadcastManager - * @static + * @return \Illuminate\Broadcasting\BroadcastManager + * @static */ public static function forgetDrivers() { @@ -3809,8 +3795,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Bus\Dispatcher * @see \Illuminate\Support\Testing\Fakes\BusFake */ @@ -3819,8 +3803,8 @@ namespace Illuminate\Support\Facades { * Dispatch a command to its appropriate handler. * * @param mixed $command - * @return mixed - * @static + * @return mixed + * @static */ public static function dispatch($command) { @@ -3830,13 +3814,13 @@ namespace Illuminate\Support\Facades { /** * Dispatch a command to its appropriate handler in the current process. - * + * * Queueable jobs will be dispatched to the "sync" queue. * * @param mixed $command * @param mixed $handler - * @return mixed - * @static + * @return mixed + * @static */ public static function dispatchSync($command, $handler = null) { @@ -3849,8 +3833,8 @@ namespace Illuminate\Support\Facades { * * @param mixed $command * @param mixed $handler - * @return mixed - * @static + * @return mixed + * @static */ public static function dispatchNow($command, $handler = null) { @@ -3862,8 +3846,8 @@ namespace Illuminate\Support\Facades { * Attempt to find the batch with the given ID. * * @param string $batchId - * @return \Illuminate\Bus\Batch|null - * @static + * @return \Illuminate\Bus\Batch|null + * @static */ public static function findBatch($batchId) { @@ -3875,8 +3859,8 @@ namespace Illuminate\Support\Facades { * Create a new batch of queueable jobs. * * @param \Illuminate\Support\Collection|array|mixed $jobs - * @return \Illuminate\Bus\PendingBatch - * @static + * @return \Illuminate\Bus\PendingBatch + * @static */ public static function batch($jobs) { @@ -3888,8 +3872,8 @@ namespace Illuminate\Support\Facades { * Create a new chain of queueable jobs. * * @param \Illuminate\Support\Collection|array $jobs - * @return \Illuminate\Foundation\Bus\PendingChain - * @static + * @return \Illuminate\Foundation\Bus\PendingChain + * @static */ public static function chain($jobs) { @@ -3901,8 +3885,8 @@ namespace Illuminate\Support\Facades { * Determine if the given command has a handler. * * @param mixed $command - * @return bool - * @static + * @return bool + * @static */ public static function hasCommandHandler($command) { @@ -3914,8 +3898,8 @@ namespace Illuminate\Support\Facades { * Retrieve the handler for a command. * * @param mixed $command - * @return bool|mixed - * @static + * @return bool|mixed + * @static */ public static function getCommandHandler($command) { @@ -3927,9 +3911,9 @@ namespace Illuminate\Support\Facades { * Dispatch a command to its appropriate handler behind a queue. * * @param mixed $command - * @return mixed + * @return mixed * @throws \RuntimeException - * @static + * @static */ public static function dispatchToQueue($command) { @@ -3942,8 +3926,8 @@ namespace Illuminate\Support\Facades { * * @param mixed $command * @param mixed $handler - * @return void - * @static + * @return void + * @static */ public static function dispatchAfterResponse($command, $handler = null) { @@ -3955,8 +3939,8 @@ namespace Illuminate\Support\Facades { * Set the pipes through which commands should be piped before dispatching. * * @param array $pipes - * @return \Illuminate\Bus\Dispatcher - * @static + * @return \Illuminate\Bus\Dispatcher + * @static */ public static function pipeThrough($pipes) { @@ -3968,8 +3952,8 @@ namespace Illuminate\Support\Facades { * Map a command to a handler. * * @param array $map - * @return \Illuminate\Bus\Dispatcher - * @static + * @return \Illuminate\Bus\Dispatcher + * @static */ public static function map($map) { @@ -3981,8 +3965,8 @@ namespace Illuminate\Support\Facades { * Specify the jobs that should be dispatched instead of faked. * * @param array|string $jobsToDispatch - * @return \Illuminate\Support\Testing\Fakes\BusFake - * @static + * @return \Illuminate\Support\Testing\Fakes\BusFake + * @static */ public static function except($jobsToDispatch) { @@ -3995,8 +3979,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param callable|int|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertDispatched($command, $callback = null) { @@ -4009,8 +3993,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param int $times - * @return void - * @static + * @return void + * @static */ public static function assertDispatchedTimes($command, $times = 1) { @@ -4023,8 +4007,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotDispatched($command, $callback = null) { @@ -4035,8 +4019,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no jobs were dispatched. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingDispatched() { @@ -4049,8 +4033,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param callable|int|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertDispatchedSync($command, $callback = null) { @@ -4063,8 +4047,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param int $times - * @return void - * @static + * @return void + * @static */ public static function assertDispatchedSyncTimes($command, $times = 1) { @@ -4077,8 +4061,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotDispatchedSync($command, $callback = null) { @@ -4091,8 +4075,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param callable|int|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertDispatchedAfterResponse($command, $callback = null) { @@ -4105,8 +4089,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param int $times - * @return void - * @static + * @return void + * @static */ public static function assertDispatchedAfterResponseTimes($command, $times = 1) { @@ -4119,8 +4103,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotDispatchedAfterResponse($command, $callback = null) { @@ -4132,8 +4116,8 @@ namespace Illuminate\Support\Facades { * Assert if a chain of jobs was dispatched. * * @param array $expectedChain - * @return void - * @static + * @return void + * @static */ public static function assertChained($expectedChain) { @@ -4144,8 +4128,8 @@ namespace Illuminate\Support\Facades { /** * Assert no chained jobs was dispatched. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingChained() { @@ -4158,8 +4142,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $command * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertDispatchedWithoutChain($command, $callback = null) { @@ -4171,8 +4155,8 @@ namespace Illuminate\Support\Facades { * Create a new assertion about a chained batch. * * @param \Closure $callback - * @return \Illuminate\Support\Testing\Fakes\ChainedBatchTruthTest - * @static + * @return \Illuminate\Support\Testing\Fakes\ChainedBatchTruthTest + * @static */ public static function chainedBatch($callback) { @@ -4184,8 +4168,8 @@ namespace Illuminate\Support\Facades { * Assert if a batch was dispatched based on a truth-test callback. * * @param callable $callback - * @return void - * @static + * @return void + * @static */ public static function assertBatched($callback) { @@ -4197,8 +4181,8 @@ namespace Illuminate\Support\Facades { * Assert the number of batches that have been dispatched. * * @param int $count - * @return void - * @static + * @return void + * @static */ public static function assertBatchCount($count) { @@ -4209,8 +4193,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no batched jobs were dispatched. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingBatched() { @@ -4221,8 +4205,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no jobs were dispatched, chained, or batched. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingPlaced() { @@ -4235,8 +4219,8 @@ namespace Illuminate\Support\Facades { * * @param string $command * @param callable|null $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function dispatched($command, $callback = null) { @@ -4249,8 +4233,8 @@ namespace Illuminate\Support\Facades { * * @param string $command * @param callable|null $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function dispatchedSync($command, $callback = null) { @@ -4263,8 +4247,8 @@ namespace Illuminate\Support\Facades { * * @param string $command * @param callable|null $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function dispatchedAfterResponse($command, $callback = null) { @@ -4276,8 +4260,8 @@ namespace Illuminate\Support\Facades { * Get all of the pending batches matching a truth-test callback. * * @param callable $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function batched($callback) { @@ -4289,8 +4273,8 @@ namespace Illuminate\Support\Facades { * Determine if there are any stored commands for a given class. * * @param string $command - * @return bool - * @static + * @return bool + * @static */ public static function hasDispatched($command) { @@ -4302,8 +4286,8 @@ namespace Illuminate\Support\Facades { * Determine if there are any stored commands for a given class. * * @param string $command - * @return bool - * @static + * @return bool + * @static */ public static function hasDispatchedSync($command) { @@ -4315,8 +4299,8 @@ namespace Illuminate\Support\Facades { * Determine if there are any stored commands for a given class. * * @param string $command - * @return bool - * @static + * @return bool + * @static */ public static function hasDispatchedAfterResponse($command) { @@ -4328,8 +4312,8 @@ namespace Illuminate\Support\Facades { * Dispatch an empty job batch for testing. * * @param string $name - * @return \Illuminate\Bus\Batch - * @static + * @return \Illuminate\Bus\Batch + * @static */ public static function dispatchFakeBatch($name = '') { @@ -4341,8 +4325,8 @@ namespace Illuminate\Support\Facades { * Record the fake pending batch dispatch. * * @param \Illuminate\Bus\PendingBatch $pendingBatch - * @return \Illuminate\Bus\Batch - * @static + * @return \Illuminate\Bus\Batch + * @static */ public static function recordPendingBatch($pendingBatch) { @@ -4354,8 +4338,8 @@ namespace Illuminate\Support\Facades { * Specify if commands should be serialized and restored when being batched. * * @param bool $serializeAndRestore - * @return \Illuminate\Support\Testing\Fakes\BusFake - * @static + * @return \Illuminate\Support\Testing\Fakes\BusFake + * @static */ public static function serializeAndRestore($serializeAndRestore = true) { @@ -4366,8 +4350,8 @@ namespace Illuminate\Support\Facades { /** * Get the batches that have been dispatched. * - * @return array - * @static + * @return array + * @static */ public static function dispatchedBatches() { @@ -4377,8 +4361,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Cache\CacheManager * @see \Illuminate\Cache\Repository */ @@ -4387,8 +4369,8 @@ namespace Illuminate\Support\Facades { * Get a cache store instance by name, wrapped in a repository. * * @param string|null $name - * @return \Illuminate\Contracts\Cache\Repository - * @static + * @return \Illuminate\Contracts\Cache\Repository + * @static */ public static function store($name = null) { @@ -4400,8 +4382,8 @@ namespace Illuminate\Support\Facades { * Get a cache driver instance. * * @param string|null $driver - * @return \Illuminate\Contracts\Cache\Repository - * @static + * @return \Illuminate\Contracts\Cache\Repository + * @static */ public static function driver($driver = null) { @@ -4413,9 +4395,9 @@ namespace Illuminate\Support\Facades { * Resolve the given store. * * @param string $name - * @return \Illuminate\Contracts\Cache\Repository + * @return \Illuminate\Contracts\Cache\Repository * @throws \InvalidArgumentException - * @static + * @static */ public static function resolve($name) { @@ -4427,8 +4409,8 @@ namespace Illuminate\Support\Facades { * Build a cache repository with the given configuration. * * @param array $config - * @return \Illuminate\Cache\Repository - * @static + * @return \Illuminate\Cache\Repository + * @static */ public static function build($config) { @@ -4441,8 +4423,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Contracts\Cache\Store $store * @param array $config - * @return \Illuminate\Cache\Repository - * @static + * @return \Illuminate\Cache\Repository + * @static */ public static function repository($store, $config = []) { @@ -4453,8 +4435,8 @@ namespace Illuminate\Support\Facades { /** * Re-set the event dispatcher on all resolved cache repositories. * - * @return void - * @static + * @return void + * @static */ public static function refreshEventDispatcher() { @@ -4465,8 +4447,8 @@ namespace Illuminate\Support\Facades { /** * Get the default cache driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -4478,8 +4460,8 @@ namespace Illuminate\Support\Facades { * Set the default cache driver name. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultDriver($name) { @@ -4491,8 +4473,8 @@ namespace Illuminate\Support\Facades { * Unset the given driver instances. * * @param array|string|null $name - * @return \Illuminate\Cache\CacheManager - * @static + * @return \Illuminate\Cache\CacheManager + * @static */ public static function forgetDriver($name = null) { @@ -4504,8 +4486,8 @@ namespace Illuminate\Support\Facades { * Disconnect the given driver and remove from local cache. * * @param string|null $name - * @return void - * @static + * @return void + * @static */ public static function purge($name = null) { @@ -4518,8 +4500,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Cache\CacheManager - * @static + * @return \Illuminate\Cache\CacheManager + * @static */ public static function extend($driver, $callback) { @@ -4531,8 +4513,8 @@ namespace Illuminate\Support\Facades { * Set the application instance used by the manager. * * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Cache\CacheManager - * @static + * @return \Illuminate\Cache\CacheManager + * @static */ public static function setApplication($app) { @@ -4544,8 +4526,8 @@ namespace Illuminate\Support\Facades { * Determine if an item exists in the cache. * * @param array|string $key - * @return bool - * @static + * @return bool + * @static */ public static function has($key) { @@ -4557,8 +4539,8 @@ namespace Illuminate\Support\Facades { * Determine if an item doesn't exist in the cache. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function missing($key) { @@ -4571,8 +4553,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function get($key, $default = null) { @@ -4582,12 +4564,12 @@ namespace Illuminate\Support\Facades { /** * Retrieve multiple items from the cache by key. - * + * * Items not found in the cache will have a null value. * * @param array $keys - * @return array - * @static + * @return array + * @static */ public static function many($keys) { @@ -4598,14 +4580,14 @@ namespace Illuminate\Support\Facades { /** * Obtains multiple cache items by their unique keys. * - * @return iterable + * @return iterable * @param iterable $keys A list of keys that can be obtained in a single operation. * @param mixed $default Default value to return for keys that do not exist. * @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value. * @throws \Psr\SimpleCache\InvalidArgumentException * MUST be thrown if $keys is neither an array nor a Traversable, * or if any of the $keys are not a legal value. - * @static + * @static */ public static function getMultiple($keys, $default = null) { @@ -4618,8 +4600,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function pull($key, $default = null) { @@ -4633,8 +4615,8 @@ namespace Illuminate\Support\Facades { * @param array|string $key * @param mixed $value * @param \DateTimeInterface|\DateInterval|int|null $ttl - * @return bool - * @static + * @return bool + * @static */ public static function put($key, $value, $ttl = null) { @@ -4645,7 +4627,7 @@ namespace Illuminate\Support\Facades { /** * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time. * - * @return bool + * @return bool * @param string $key The key of the item to store. * @param mixed $value The value of the item to store, must be serializable. * @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and @@ -4654,7 +4636,7 @@ namespace Illuminate\Support\Facades { * @return bool True on success and false on failure. * @throws \Psr\SimpleCache\InvalidArgumentException * MUST be thrown if the $key string is not a legal value. - * @static + * @static */ public static function set($key, $value, $ttl = null) { @@ -4667,8 +4649,8 @@ namespace Illuminate\Support\Facades { * * @param array $values * @param \DateTimeInterface|\DateInterval|int|null $ttl - * @return bool - * @static + * @return bool + * @static */ public static function putMany($values, $ttl = null) { @@ -4679,7 +4661,7 @@ namespace Illuminate\Support\Facades { /** * Persists a set of key => value pairs in the cache, with an optional TTL. * - * @return bool + * @return bool * @param iterable $values A list of key => value pairs for a multiple-set operation. * @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and * the driver supports TTL then the library may set a default value @@ -4688,7 +4670,7 @@ namespace Illuminate\Support\Facades { * @throws \Psr\SimpleCache\InvalidArgumentException * MUST be thrown if $values is neither an array nor a Traversable, * or if any of the $values are not a legal value. - * @static + * @static */ public static function setMultiple($values, $ttl = null) { @@ -4702,8 +4684,8 @@ namespace Illuminate\Support\Facades { * @param string $key * @param mixed $value * @param \DateTimeInterface|\DateInterval|int|null $ttl - * @return bool - * @static + * @return bool + * @static */ public static function add($key, $value, $ttl = null) { @@ -4716,8 +4698,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return int|bool - * @static + * @return int|bool + * @static */ public static function increment($key, $value = 1) { @@ -4730,8 +4712,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return int|bool - * @static + * @return int|bool + * @static */ public static function decrement($key, $value = 1) { @@ -4744,8 +4726,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return bool - * @static + * @return bool + * @static */ public static function forever($key, $value) { @@ -4760,8 +4742,8 @@ namespace Illuminate\Support\Facades { * @param string $key * @param \Closure|\DateTimeInterface|\DateInterval|int|null $ttl * @param \Closure(): TCacheValue $callback - * @return TCacheValue - * @static + * @return TCacheValue + * @static */ public static function remember($key, $ttl, $callback) { @@ -4775,8 +4757,8 @@ namespace Illuminate\Support\Facades { * @template TCacheValue * @param string $key * @param \Closure(): TCacheValue $callback - * @return TCacheValue - * @static + * @return TCacheValue + * @static */ public static function sear($key, $callback) { @@ -4790,8 +4772,8 @@ namespace Illuminate\Support\Facades { * @template TCacheValue * @param string $key * @param \Closure(): TCacheValue $callback - * @return TCacheValue - * @static + * @return TCacheValue + * @static */ public static function rememberForever($key, $callback) { @@ -4807,8 +4789,8 @@ namespace Illuminate\Support\Facades { * @param array{ 0: \DateTimeInterface|\DateInterval|int, 1: \DateTimeInterface|\DateInterval|int } $ttl * @param (callable(): TCacheValue) $callback * @param array{ seconds?: int, owner?: string }|null $lock - * @return TCacheValue - * @static + * @return TCacheValue + * @static */ public static function flexible($key, $ttl, $callback, $lock = null) { @@ -4820,8 +4802,8 @@ namespace Illuminate\Support\Facades { * Remove an item from the cache. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function forget($key) { @@ -4832,12 +4814,12 @@ namespace Illuminate\Support\Facades { /** * Delete an item from the cache by its unique key. * - * @return bool + * @return bool * @param string $key The unique cache key of the item to delete. * @return bool True if the item was successfully removed. False if there was an error. * @throws \Psr\SimpleCache\InvalidArgumentException * MUST be thrown if the $key string is not a legal value. - * @static + * @static */ public static function delete($key) { @@ -4848,13 +4830,13 @@ namespace Illuminate\Support\Facades { /** * Deletes multiple cache items in a single operation. * - * @return bool + * @return bool * @param iterable $keys A list of string-based keys to be deleted. * @return bool True if the items were successfully removed. False if there was an error. * @throws \Psr\SimpleCache\InvalidArgumentException * MUST be thrown if $keys is neither an array nor a Traversable, * or if any of the $keys are not a legal value. - * @static + * @static */ public static function deleteMultiple($keys) { @@ -4865,9 +4847,9 @@ namespace Illuminate\Support\Facades { /** * Wipes clean the entire cache's keys. * - * @return bool + * @return bool * @return bool True on success and false on failure. - * @static + * @static */ public static function clear() { @@ -4879,9 +4861,9 @@ namespace Illuminate\Support\Facades { * Begin executing a new tags operation if the store supports it. * * @param array|mixed $names - * @return \Illuminate\Cache\TaggedCache + * @return \Illuminate\Cache\TaggedCache * @throws \BadMethodCallException - * @static + * @static */ public static function tags($names) { @@ -4892,8 +4874,8 @@ namespace Illuminate\Support\Facades { /** * Get the name of the cache store. * - * @return string|null - * @static + * @return string|null + * @static */ public static function getName() { @@ -4904,8 +4886,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the current store supports tags. * - * @return bool - * @static + * @return bool + * @static */ public static function supportsTags() { @@ -4916,8 +4898,8 @@ namespace Illuminate\Support\Facades { /** * Get the default cache time. * - * @return int|null - * @static + * @return int|null + * @static */ public static function getDefaultCacheTime() { @@ -4929,8 +4911,8 @@ namespace Illuminate\Support\Facades { * Set the default cache time in seconds. * * @param int|null $seconds - * @return \Illuminate\Cache\Repository - * @static + * @return \Illuminate\Cache\Repository + * @static */ public static function setDefaultCacheTime($seconds) { @@ -4941,8 +4923,8 @@ namespace Illuminate\Support\Facades { /** * Get the cache store implementation. * - * @return \Illuminate\Contracts\Cache\Store - * @static + * @return \Illuminate\Contracts\Cache\Store + * @static */ public static function getStore() { @@ -4954,8 +4936,8 @@ namespace Illuminate\Support\Facades { * Set the cache store implementation. * * @param \Illuminate\Contracts\Cache\Store $store - * @return static - * @static + * @return static + * @static */ public static function setStore($store) { @@ -4966,8 +4948,8 @@ namespace Illuminate\Support\Facades { /** * Get the event dispatcher instance. * - * @return \Illuminate\Contracts\Events\Dispatcher|null - * @static + * @return \Illuminate\Contracts\Events\Dispatcher|null + * @static */ public static function getEventDispatcher() { @@ -4979,8 +4961,8 @@ namespace Illuminate\Support\Facades { * Set the event dispatcher instance. * * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - * @static + * @return void + * @static */ public static function setEventDispatcher($events) { @@ -4992,8 +4974,8 @@ namespace Illuminate\Support\Facades { * Determine if a cached value exists. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function offsetExists($key) { @@ -5005,8 +4987,8 @@ namespace Illuminate\Support\Facades { * Retrieve an item from the cache by key. * * @param string $key - * @return mixed - * @static + * @return mixed + * @static */ public static function offsetGet($key) { @@ -5019,8 +5001,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function offsetSet($key, $value) { @@ -5032,8 +5014,8 @@ namespace Illuminate\Support\Facades { * Remove an item from the cache. * * @param string $key - * @return void - * @static + * @return void + * @static */ public static function offsetUnset($key) { @@ -5047,8 +5029,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -5060,9 +5042,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -5073,8 +5055,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -5084,8 +5066,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -5097,9 +5079,9 @@ namespace Illuminate\Support\Facades { * * @param string $method * @param array $parameters - * @return mixed + * @return mixed * @throws \BadMethodCallException - * @static + * @static */ public static function macroCall($method, $parameters) { @@ -5113,8 +5095,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param int $seconds * @param string|null $owner - * @return \Illuminate\Contracts\Cache\Lock - * @static + * @return \Illuminate\Contracts\Cache\Lock + * @static */ public static function lock($name, $seconds = 0, $owner = null) { @@ -5127,8 +5109,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param string $owner - * @return \Illuminate\Contracts\Cache\Lock - * @static + * @return \Illuminate\Contracts\Cache\Lock + * @static */ public static function restoreLock($name, $owner) { @@ -5139,8 +5121,8 @@ namespace Illuminate\Support\Facades { /** * Remove all items from the cache. * - * @return bool - * @static + * @return bool + * @static */ public static function flush() { @@ -5152,8 +5134,8 @@ namespace Illuminate\Support\Facades { * Get the full path for the given cache key. * * @param string $key - * @return string - * @static + * @return string + * @static */ public static function path($key) { @@ -5164,8 +5146,8 @@ namespace Illuminate\Support\Facades { /** * Get the Filesystem instance. * - * @return \Illuminate\Filesystem\Filesystem - * @static + * @return \Illuminate\Filesystem\Filesystem + * @static */ public static function getFilesystem() { @@ -5176,8 +5158,8 @@ namespace Illuminate\Support\Facades { /** * Get the working directory of the cache. * - * @return string - * @static + * @return string + * @static */ public static function getDirectory() { @@ -5189,8 +5171,8 @@ namespace Illuminate\Support\Facades { * Set the working directory of the cache. * * @param string $directory - * @return \Illuminate\Cache\FileStore - * @static + * @return \Illuminate\Cache\FileStore + * @static */ public static function setDirectory($directory) { @@ -5202,8 +5184,8 @@ namespace Illuminate\Support\Facades { * Set the cache directory where locks should be stored. * * @param string|null $lockDirectory - * @return \Illuminate\Cache\FileStore - * @static + * @return \Illuminate\Cache\FileStore + * @static */ public static function setLockDirectory($lockDirectory) { @@ -5214,8 +5196,8 @@ namespace Illuminate\Support\Facades { /** * Get the cache key prefix. * - * @return string - * @static + * @return string + * @static */ public static function getPrefix() { @@ -5225,8 +5207,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Config\Repository */ class Config { @@ -5234,8 +5214,8 @@ namespace Illuminate\Support\Facades { * Determine if the given configuration value exists. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function has($key) { @@ -5248,8 +5228,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function get($key, $default = null) { @@ -5261,8 +5241,8 @@ namespace Illuminate\Support\Facades { * Get many configuration values. * * @param array $keys - * @return array - * @static + * @return array + * @static */ public static function getMany($keys) { @@ -5275,8 +5255,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param (\Closure():(string|null))|string|null $default - * @return string - * @static + * @return string + * @static */ public static function string($key, $default = null) { @@ -5289,8 +5269,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param (\Closure():(int|null))|int|null $default - * @return int - * @static + * @return int + * @static */ public static function integer($key, $default = null) { @@ -5303,8 +5283,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param (\Closure():(float|null))|float|null $default - * @return float - * @static + * @return float + * @static */ public static function float($key, $default = null) { @@ -5317,8 +5297,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param (\Closure():(bool|null))|bool|null $default - * @return bool - * @static + * @return bool + * @static */ public static function boolean($key, $default = null) { @@ -5331,8 +5311,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param (\Closure():(array|null))|array|null $default - * @return array - * @static + * @return array + * @static */ public static function array($key, $default = null) { @@ -5345,8 +5325,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function set($key, $value = null) { @@ -5359,8 +5339,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function prepend($key, $value) { @@ -5373,8 +5353,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function push($key, $value) { @@ -5385,8 +5365,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the configuration items for the application. * - * @return array - * @static + * @return array + * @static */ public static function all() { @@ -5398,8 +5378,8 @@ namespace Illuminate\Support\Facades { * Determine if the given configuration option exists. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function offsetExists($key) { @@ -5411,8 +5391,8 @@ namespace Illuminate\Support\Facades { * Get a configuration option. * * @param string $key - * @return mixed - * @static + * @return mixed + * @static */ public static function offsetGet($key) { @@ -5425,8 +5405,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function offsetSet($key, $value) { @@ -5438,8 +5418,8 @@ namespace Illuminate\Support\Facades { * Unset a configuration option. * * @param string $key - * @return void - * @static + * @return void + * @static */ public static function offsetUnset($key) { @@ -5453,8 +5433,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -5466,9 +5446,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -5479,8 +5459,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -5490,8 +5470,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -5500,8 +5480,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Cookie\CookieJar */ class Cookie { @@ -5517,8 +5495,8 @@ namespace Illuminate\Support\Facades { * @param bool $httpOnly * @param bool $raw * @param string|null $sameSite - * @return \Symfony\Component\HttpFoundation\Cookie - * @static + * @return \Symfony\Component\HttpFoundation\Cookie + * @static */ public static function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null) { @@ -5537,8 +5515,8 @@ namespace Illuminate\Support\Facades { * @param bool $httpOnly * @param bool $raw * @param string|null $sameSite - * @return \Symfony\Component\HttpFoundation\Cookie - * @static + * @return \Symfony\Component\HttpFoundation\Cookie + * @static */ public static function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null) { @@ -5552,8 +5530,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param string|null $path * @param string|null $domain - * @return \Symfony\Component\HttpFoundation\Cookie - * @static + * @return \Symfony\Component\HttpFoundation\Cookie + * @static */ public static function forget($name, $path = null, $domain = null) { @@ -5566,8 +5544,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param string|null $path - * @return bool - * @static + * @return bool + * @static */ public static function hasQueued($key, $path = null) { @@ -5581,8 +5559,8 @@ namespace Illuminate\Support\Facades { * @param string $key * @param mixed $default * @param string|null $path - * @return \Symfony\Component\HttpFoundation\Cookie|null - * @static + * @return \Symfony\Component\HttpFoundation\Cookie|null + * @static */ public static function queued($key, $default = null, $path = null) { @@ -5594,8 +5572,8 @@ namespace Illuminate\Support\Facades { * Queue a cookie to send with the next response. * * @param mixed $parameters - * @return void - * @static + * @return void + * @static */ public static function queue(...$parameters) { @@ -5609,8 +5587,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param string|null $path * @param string|null $domain - * @return void - * @static + * @return void + * @static */ public static function expire($name, $path = null, $domain = null) { @@ -5623,8 +5601,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param string|null $path - * @return void - * @static + * @return void + * @static */ public static function unqueue($name, $path = null) { @@ -5639,8 +5617,8 @@ namespace Illuminate\Support\Facades { * @param string|null $domain * @param bool|null $secure * @param string|null $sameSite - * @return \Illuminate\Cookie\CookieJar - * @static + * @return \Illuminate\Cookie\CookieJar + * @static */ public static function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null) { @@ -5651,8 +5629,8 @@ namespace Illuminate\Support\Facades { /** * Get the cookies which have been queued for the next request. * - * @return \Symfony\Component\HttpFoundation\Cookie[] - * @static + * @return \Symfony\Component\HttpFoundation\Cookie[] + * @static */ public static function getQueuedCookies() { @@ -5663,8 +5641,8 @@ namespace Illuminate\Support\Facades { /** * Flush the cookies which have been queued for the next request. * - * @return \Illuminate\Cookie\CookieJar - * @static + * @return \Illuminate\Cookie\CookieJar + * @static */ public static function flushQueuedCookies() { @@ -5678,8 +5656,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -5691,9 +5669,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -5704,8 +5682,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -5715,8 +5693,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -5725,8 +5703,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Encryption\Encrypter */ class Crypt { @@ -5735,8 +5711,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param string $cipher - * @return bool - * @static + * @return bool + * @static */ public static function supported($key, $cipher) { @@ -5747,8 +5723,8 @@ namespace Illuminate\Support\Facades { * Create a new encryption key for the given cipher. * * @param string $cipher - * @return string - * @static + * @return string + * @static */ public static function generateKey($cipher) { @@ -5760,9 +5736,9 @@ namespace Illuminate\Support\Facades { * * @param mixed $value * @param bool $serialize - * @return string + * @return string * @throws \Illuminate\Contracts\Encryption\EncryptException - * @static + * @static */ public static function encrypt($value, $serialize = true) { @@ -5774,9 +5750,9 @@ namespace Illuminate\Support\Facades { * Encrypt a string without serialization. * * @param string $value - * @return string + * @return string * @throws \Illuminate\Contracts\Encryption\EncryptException - * @static + * @static */ public static function encryptString($value) { @@ -5789,9 +5765,9 @@ namespace Illuminate\Support\Facades { * * @param string $payload * @param bool $unserialize - * @return mixed + * @return mixed * @throws \Illuminate\Contracts\Encryption\DecryptException - * @static + * @static */ public static function decrypt($payload, $unserialize = true) { @@ -5803,9 +5779,9 @@ namespace Illuminate\Support\Facades { * Decrypt the given string without unserialization. * * @param string $payload - * @return string + * @return string * @throws \Illuminate\Contracts\Encryption\DecryptException - * @static + * @static */ public static function decryptString($payload) { @@ -5816,8 +5792,8 @@ namespace Illuminate\Support\Facades { /** * Get the encryption key that the encrypter is currently using. * - * @return string - * @static + * @return string + * @static */ public static function getKey() { @@ -5828,8 +5804,8 @@ namespace Illuminate\Support\Facades { /** * Get the current encryption key and all previous encryption keys. * - * @return array - * @static + * @return array + * @static */ public static function getAllKeys() { @@ -5840,8 +5816,8 @@ namespace Illuminate\Support\Facades { /** * Get the previous encryption keys. * - * @return array - * @static + * @return array + * @static */ public static function getPreviousKeys() { @@ -5853,8 +5829,8 @@ namespace Illuminate\Support\Facades { * Set the previous / legacy encryption keys that should be utilized if decryption fails. * * @param array $keys - * @return \Illuminate\Encryption\Encrypter - * @static + * @return \Illuminate\Encryption\Encrypter + * @static */ public static function previousKeys($keys) { @@ -5864,8 +5840,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Database\DatabaseManager */ class DB { @@ -5873,8 +5847,8 @@ namespace Illuminate\Support\Facades { * Get a database connection instance. * * @param string|null $name - * @return \Illuminate\Database\Connection - * @static + * @return \Illuminate\Database\Connection + * @static */ public static function connection($name = null) { @@ -5886,8 +5860,8 @@ namespace Illuminate\Support\Facades { * Build a database connection instance from the given configuration. * * @param array $config - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function build($config) { @@ -5899,8 +5873,8 @@ namespace Illuminate\Support\Facades { * Calculate the dynamic connection name for an on-demand connection based on its configuration. * * @param array $config - * @return string - * @static + * @return string + * @static */ public static function calculateDynamicConnectionName($config) { @@ -5913,8 +5887,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param array $config * @param bool $force - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function connectUsing($name, $config, $force = false) { @@ -5926,8 +5900,8 @@ namespace Illuminate\Support\Facades { * Disconnect from the given database and remove from local cache. * * @param string|null $name - * @return void - * @static + * @return void + * @static */ public static function purge($name = null) { @@ -5939,8 +5913,8 @@ namespace Illuminate\Support\Facades { * Disconnect from the given database. * * @param string|null $name - * @return void - * @static + * @return void + * @static */ public static function disconnect($name = null) { @@ -5952,8 +5926,8 @@ namespace Illuminate\Support\Facades { * Reconnect to the given database. * * @param string|null $name - * @return \Illuminate\Database\Connection - * @static + * @return \Illuminate\Database\Connection + * @static */ public static function reconnect($name = null) { @@ -5966,8 +5940,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param callable $callback - * @return mixed - * @static + * @return mixed + * @static */ public static function usingConnection($name, $callback) { @@ -5978,8 +5952,8 @@ namespace Illuminate\Support\Facades { /** * Get the default connection name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultConnection() { @@ -5991,8 +5965,8 @@ namespace Illuminate\Support\Facades { * Set the default connection name. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultConnection($name) { @@ -6003,8 +5977,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the supported drivers. * - * @return string[] - * @static + * @return string[] + * @static */ public static function supportedDrivers() { @@ -6015,8 +5989,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the drivers that are actually available. * - * @return string[] - * @static + * @return string[] + * @static */ public static function availableDrivers() { @@ -6029,8 +6003,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param callable $resolver - * @return void - * @static + * @return void + * @static */ public static function extend($name, $resolver) { @@ -6042,8 +6016,8 @@ namespace Illuminate\Support\Facades { * Remove an extension connection resolver. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function forgetExtension($name) { @@ -6054,8 +6028,8 @@ namespace Illuminate\Support\Facades { /** * Return all of the created connections. * - * @return array - * @static + * @return array + * @static */ public static function getConnections() { @@ -6067,8 +6041,8 @@ namespace Illuminate\Support\Facades { * Set the database reconnector callback. * * @param callable $reconnector - * @return void - * @static + * @return void + * @static */ public static function setReconnector($reconnector) { @@ -6080,8 +6054,8 @@ namespace Illuminate\Support\Facades { * Set the application instance used by the manager. * * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Database\DatabaseManager - * @static + * @return \Illuminate\Database\DatabaseManager + * @static */ public static function setApplication($app) { @@ -6095,8 +6069,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -6108,9 +6082,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -6121,8 +6095,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -6132,8 +6106,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -6145,9 +6119,9 @@ namespace Illuminate\Support\Facades { * * @param string $method * @param array $parameters - * @return mixed + * @return mixed * @throws \BadMethodCallException - * @static + * @static */ public static function macroCall($method, $parameters) { @@ -6158,8 +6132,8 @@ namespace Illuminate\Support\Facades { /** * Get a human-readable name for the given connection driver. * - * @return string - * @static + * @return string + * @static */ public static function getDriverTitle() { @@ -6173,8 +6147,8 @@ namespace Illuminate\Support\Facades { * @param string $query * @param array $bindings * @param string|null $sequence - * @return bool - * @static + * @return bool + * @static */ public static function insert($query, $bindings = [], $sequence = null) { @@ -6185,8 +6159,8 @@ namespace Illuminate\Support\Facades { /** * Get the connection's last insert ID. * - * @return string|int|null - * @static + * @return string|int|null + * @static */ public static function getLastInsertId() { @@ -6197,8 +6171,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the connected database is a MariaDB database. * - * @return bool - * @static + * @return bool + * @static */ public static function isMaria() { @@ -6209,8 +6183,8 @@ namespace Illuminate\Support\Facades { /** * Get the server version for the connection. * - * @return string - * @static + * @return string + * @static */ public static function getServerVersion() { @@ -6221,8 +6195,8 @@ namespace Illuminate\Support\Facades { /** * Get a schema builder instance for the connection. * - * @return \Illuminate\Database\Schema\MySqlBuilder - * @static + * @return \Illuminate\Database\Schema\MySqlBuilder + * @static */ public static function getSchemaBuilder() { @@ -6235,8 +6209,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Filesystem\Filesystem|null $files * @param callable|null $processFactory - * @return \Illuminate\Database\Schema\MySqlSchemaState - * @static + * @return \Illuminate\Database\Schema\MySqlSchemaState + * @static */ public static function getSchemaState($files = null, $processFactory = null) { @@ -6247,8 +6221,8 @@ namespace Illuminate\Support\Facades { /** * Set the query grammar to the default implementation. * - * @return void - * @static + * @return void + * @static */ public static function useDefaultQueryGrammar() { @@ -6260,8 +6234,8 @@ namespace Illuminate\Support\Facades { /** * Set the schema grammar to the default implementation. * - * @return void - * @static + * @return void + * @static */ public static function useDefaultSchemaGrammar() { @@ -6273,8 +6247,8 @@ namespace Illuminate\Support\Facades { /** * Set the query post processor to the default implementation. * - * @return void - * @static + * @return void + * @static */ public static function useDefaultPostProcessor() { @@ -6288,8 +6262,8 @@ namespace Illuminate\Support\Facades { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Contracts\Database\Query\Expression|string $table * @param string|null $as - * @return \Illuminate\Database\Query\Builder - * @static + * @return \Illuminate\Database\Query\Builder + * @static */ public static function table($table, $as = null) { @@ -6301,8 +6275,8 @@ namespace Illuminate\Support\Facades { /** * Get a new query builder instance. * - * @return \Illuminate\Database\Query\Builder - * @static + * @return \Illuminate\Database\Query\Builder + * @static */ public static function query() { @@ -6317,8 +6291,8 @@ namespace Illuminate\Support\Facades { * @param string $query * @param array $bindings * @param bool $useReadPdo - * @return mixed - * @static + * @return mixed + * @static */ public static function selectOne($query, $bindings = [], $useReadPdo = true) { @@ -6333,9 +6307,9 @@ namespace Illuminate\Support\Facades { * @param string $query * @param array $bindings * @param bool $useReadPdo - * @return mixed + * @return mixed * @throws \Illuminate\Database\MultipleColumnsSelectedException - * @static + * @static */ public static function scalar($query, $bindings = [], $useReadPdo = true) { @@ -6349,8 +6323,8 @@ namespace Illuminate\Support\Facades { * * @param string $query * @param array $bindings - * @return array - * @static + * @return array + * @static */ public static function selectFromWriteConnection($query, $bindings = []) { @@ -6365,8 +6339,8 @@ namespace Illuminate\Support\Facades { * @param string $query * @param array $bindings * @param bool $useReadPdo - * @return array - * @static + * @return array + * @static */ public static function select($query, $bindings = [], $useReadPdo = true) { @@ -6381,8 +6355,8 @@ namespace Illuminate\Support\Facades { * @param string $query * @param array $bindings * @param bool $useReadPdo - * @return array - * @static + * @return array + * @static */ public static function selectResultSets($query, $bindings = [], $useReadPdo = true) { @@ -6397,8 +6371,8 @@ namespace Illuminate\Support\Facades { * @param string $query * @param array $bindings * @param bool $useReadPdo - * @return \Generator - * @static + * @return \Generator + * @static */ public static function cursor($query, $bindings = [], $useReadPdo = true) { @@ -6412,8 +6386,8 @@ namespace Illuminate\Support\Facades { * * @param string $query * @param array $bindings - * @return int - * @static + * @return int + * @static */ public static function update($query, $bindings = []) { @@ -6427,8 +6401,8 @@ namespace Illuminate\Support\Facades { * * @param string $query * @param array $bindings - * @return int - * @static + * @return int + * @static */ public static function delete($query, $bindings = []) { @@ -6442,8 +6416,8 @@ namespace Illuminate\Support\Facades { * * @param string $query * @param array $bindings - * @return bool - * @static + * @return bool + * @static */ public static function statement($query, $bindings = []) { @@ -6457,8 +6431,8 @@ namespace Illuminate\Support\Facades { * * @param string $query * @param array $bindings - * @return int - * @static + * @return int + * @static */ public static function affectingStatement($query, $bindings = []) { @@ -6471,8 +6445,8 @@ namespace Illuminate\Support\Facades { * Run a raw, unprepared query against the PDO connection. * * @param string $query - * @return bool - * @static + * @return bool + * @static */ public static function unprepared($query) { @@ -6484,8 +6458,8 @@ namespace Illuminate\Support\Facades { /** * Get the number of open connections for the database. * - * @return int|null - * @static + * @return int|null + * @static */ public static function threadCount() { @@ -6498,8 +6472,8 @@ namespace Illuminate\Support\Facades { * Execute the given callback in "dry run" mode. * * @param \Closure $callback - * @return array - * @static + * @return array + * @static */ public static function pretend($callback) { @@ -6512,8 +6486,8 @@ namespace Illuminate\Support\Facades { * Execute the given callback without "pretending". * * @param \Closure $callback - * @return mixed - * @static + * @return mixed + * @static */ public static function withoutPretending($callback) { @@ -6527,8 +6501,8 @@ namespace Illuminate\Support\Facades { * * @param \PDOStatement $statement * @param array $bindings - * @return void - * @static + * @return void + * @static */ public static function bindValues($statement, $bindings) { @@ -6541,8 +6515,8 @@ namespace Illuminate\Support\Facades { * Prepare the query bindings for execution. * * @param array $bindings - * @return array - * @static + * @return array + * @static */ public static function prepareBindings($bindings) { @@ -6557,8 +6531,8 @@ namespace Illuminate\Support\Facades { * @param string $query * @param array $bindings * @param float|null $time - * @return void - * @static + * @return void + * @static */ public static function logQuery($query, $bindings, $time = null) { @@ -6572,8 +6546,8 @@ namespace Illuminate\Support\Facades { * * @param \DateTimeInterface|\Carbon\CarbonInterval|float|int $threshold * @param callable $handler - * @return void - * @static + * @return void + * @static */ public static function whenQueryingForLongerThan($threshold, $handler) { @@ -6585,8 +6559,8 @@ namespace Illuminate\Support\Facades { /** * Allow all the query duration handlers to run again, even if they have already run. * - * @return void - * @static + * @return void + * @static */ public static function allowQueryDurationHandlersToRunAgain() { @@ -6598,8 +6572,8 @@ namespace Illuminate\Support\Facades { /** * Get the duration of all run queries in milliseconds. * - * @return float - * @static + * @return float + * @static */ public static function totalQueryDuration() { @@ -6611,8 +6585,8 @@ namespace Illuminate\Support\Facades { /** * Reset the duration of all run queries. * - * @return void - * @static + * @return void + * @static */ public static function resetTotalQueryDuration() { @@ -6624,8 +6598,8 @@ namespace Illuminate\Support\Facades { /** * Reconnect to the database if a PDO connection is missing. * - * @return void - * @static + * @return void + * @static */ public static function reconnectIfMissingConnection() { @@ -6638,8 +6612,8 @@ namespace Illuminate\Support\Facades { * Register a hook to be run just before a database transaction is started. * * @param \Closure $callback - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function beforeStartingTransaction($callback) { @@ -6652,8 +6626,8 @@ namespace Illuminate\Support\Facades { * Register a hook to be run just before a database query is executed. * * @param \Closure $callback - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function beforeExecuting($callback) { @@ -6666,8 +6640,8 @@ namespace Illuminate\Support\Facades { * Register a database query listener with the connection. * * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function listen($callback) { @@ -6680,8 +6654,8 @@ namespace Illuminate\Support\Facades { * Get a new raw query expression. * * @param mixed $value - * @return \Illuminate\Contracts\Database\Query\Expression - * @static + * @return \Illuminate\Contracts\Database\Query\Expression + * @static */ public static function raw($value) { @@ -6695,8 +6669,8 @@ namespace Illuminate\Support\Facades { * * @param string|float|int|bool|null $value * @param bool $binary - * @return string - * @static + * @return string + * @static */ public static function escape($value, $binary = false) { @@ -6708,8 +6682,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the database connection has modified any database records. * - * @return bool - * @static + * @return bool + * @static */ public static function hasModifiedRecords() { @@ -6722,8 +6696,8 @@ namespace Illuminate\Support\Facades { * Indicate if any records have been modified. * * @param bool $value - * @return void - * @static + * @return void + * @static */ public static function recordsHaveBeenModified($value = true) { @@ -6736,8 +6710,8 @@ namespace Illuminate\Support\Facades { * Set the record modification state. * * @param bool $value - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setRecordModificationState($value) { @@ -6749,8 +6723,8 @@ namespace Illuminate\Support\Facades { /** * Reset the record modification state. * - * @return void - * @static + * @return void + * @static */ public static function forgetRecordModificationState() { @@ -6763,8 +6737,8 @@ namespace Illuminate\Support\Facades { * Indicate that the connection should use the write PDO connection for reads. * * @param bool $value - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function useWriteConnectionWhenReading($value = true) { @@ -6776,8 +6750,8 @@ namespace Illuminate\Support\Facades { /** * Get the current PDO connection. * - * @return \PDO - * @static + * @return \PDO + * @static */ public static function getPdo() { @@ -6789,8 +6763,8 @@ namespace Illuminate\Support\Facades { /** * Get the current PDO connection parameter without executing any reconnect logic. * - * @return \PDO|\Closure|null - * @static + * @return \PDO|\Closure|null + * @static */ public static function getRawPdo() { @@ -6802,8 +6776,8 @@ namespace Illuminate\Support\Facades { /** * Get the current PDO connection used for reading. * - * @return \PDO - * @static + * @return \PDO + * @static */ public static function getReadPdo() { @@ -6815,8 +6789,8 @@ namespace Illuminate\Support\Facades { /** * Get the current read PDO connection parameter without executing any reconnect logic. * - * @return \PDO|\Closure|null - * @static + * @return \PDO|\Closure|null + * @static */ public static function getRawReadPdo() { @@ -6829,8 +6803,8 @@ namespace Illuminate\Support\Facades { * Set the PDO connection. * * @param \PDO|\Closure|null $pdo - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setPdo($pdo) { @@ -6843,8 +6817,8 @@ namespace Illuminate\Support\Facades { * Set the PDO connection used for reading. * * @param \PDO|\Closure|null $pdo - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setReadPdo($pdo) { @@ -6856,8 +6830,8 @@ namespace Illuminate\Support\Facades { /** * Get the database connection name. * - * @return string|null - * @static + * @return string|null + * @static */ public static function getName() { @@ -6869,8 +6843,8 @@ namespace Illuminate\Support\Facades { /** * Get the database connection full name. * - * @return string|null - * @static + * @return string|null + * @static */ public static function getNameWithReadWriteType() { @@ -6883,8 +6857,8 @@ namespace Illuminate\Support\Facades { * Get an option from the configuration options. * * @param string|null $option - * @return mixed - * @static + * @return mixed + * @static */ public static function getConfig($option = null) { @@ -6896,8 +6870,8 @@ namespace Illuminate\Support\Facades { /** * Get the PDO driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDriverName() { @@ -6909,8 +6883,8 @@ namespace Illuminate\Support\Facades { /** * Get the query grammar used by the connection. * - * @return \Illuminate\Database\Query\Grammars\Grammar - * @static + * @return \Illuminate\Database\Query\Grammars\Grammar + * @static */ public static function getQueryGrammar() { @@ -6923,8 +6897,8 @@ namespace Illuminate\Support\Facades { * Set the query grammar used by the connection. * * @param \Illuminate\Database\Query\Grammars\Grammar $grammar - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setQueryGrammar($grammar) { @@ -6936,8 +6910,8 @@ namespace Illuminate\Support\Facades { /** * Get the schema grammar used by the connection. * - * @return \Illuminate\Database\Schema\Grammars\Grammar - * @static + * @return \Illuminate\Database\Schema\Grammars\Grammar + * @static */ public static function getSchemaGrammar() { @@ -6950,8 +6924,8 @@ namespace Illuminate\Support\Facades { * Set the schema grammar used by the connection. * * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setSchemaGrammar($grammar) { @@ -6963,8 +6937,8 @@ namespace Illuminate\Support\Facades { /** * Get the query post processor used by the connection. * - * @return \Illuminate\Database\Query\Processors\Processor - * @static + * @return \Illuminate\Database\Query\Processors\Processor + * @static */ public static function getPostProcessor() { @@ -6977,8 +6951,8 @@ namespace Illuminate\Support\Facades { * Set the query post processor used by the connection. * * @param \Illuminate\Database\Query\Processors\Processor $processor - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setPostProcessor($processor) { @@ -6990,8 +6964,8 @@ namespace Illuminate\Support\Facades { /** * Get the event dispatcher used by the connection. * - * @return \Illuminate\Contracts\Events\Dispatcher - * @static + * @return \Illuminate\Contracts\Events\Dispatcher + * @static */ public static function getEventDispatcher() { @@ -7004,8 +6978,8 @@ namespace Illuminate\Support\Facades { * Set the event dispatcher instance on the connection. * * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setEventDispatcher($events) { @@ -7017,8 +6991,8 @@ namespace Illuminate\Support\Facades { /** * Unset the event dispatcher for this connection. * - * @return void - * @static + * @return void + * @static */ public static function unsetEventDispatcher() { @@ -7031,8 +7005,8 @@ namespace Illuminate\Support\Facades { * Set the transaction manager instance on the connection. * * @param \Illuminate\Database\DatabaseTransactionsManager $manager - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setTransactionManager($manager) { @@ -7044,8 +7018,8 @@ namespace Illuminate\Support\Facades { /** * Unset the transaction manager for this connection. * - * @return void - * @static + * @return void + * @static */ public static function unsetTransactionManager() { @@ -7057,8 +7031,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the connection is in a "dry run". * - * @return bool - * @static + * @return bool + * @static */ public static function pretending() { @@ -7070,8 +7044,8 @@ namespace Illuminate\Support\Facades { /** * Get the connection query log. * - * @return array - * @static + * @return array + * @static */ public static function getQueryLog() { @@ -7083,8 +7057,8 @@ namespace Illuminate\Support\Facades { /** * Get the connection query log with embedded bindings. * - * @return array - * @static + * @return array + * @static */ public static function getRawQueryLog() { @@ -7096,8 +7070,8 @@ namespace Illuminate\Support\Facades { /** * Clear the query log. * - * @return void - * @static + * @return void + * @static */ public static function flushQueryLog() { @@ -7109,8 +7083,8 @@ namespace Illuminate\Support\Facades { /** * Enable the query log on the connection. * - * @return void - * @static + * @return void + * @static */ public static function enableQueryLog() { @@ -7122,8 +7096,8 @@ namespace Illuminate\Support\Facades { /** * Disable the query log on the connection. * - * @return void - * @static + * @return void + * @static */ public static function disableQueryLog() { @@ -7135,8 +7109,8 @@ namespace Illuminate\Support\Facades { /** * Determine whether we're logging queries. * - * @return bool - * @static + * @return bool + * @static */ public static function logging() { @@ -7148,8 +7122,8 @@ namespace Illuminate\Support\Facades { /** * Get the name of the connected database. * - * @return string - * @static + * @return string + * @static */ public static function getDatabaseName() { @@ -7162,8 +7136,8 @@ namespace Illuminate\Support\Facades { * Set the name of the connected database. * * @param string $database - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setDatabaseName($database) { @@ -7176,8 +7150,8 @@ namespace Illuminate\Support\Facades { * Set the read / write type of the connection. * * @param string|null $readWriteType - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setReadWriteType($readWriteType) { @@ -7189,8 +7163,8 @@ namespace Illuminate\Support\Facades { /** * Get the table prefix for the connection. * - * @return string - * @static + * @return string + * @static */ public static function getTablePrefix() { @@ -7203,8 +7177,8 @@ namespace Illuminate\Support\Facades { * Set the table prefix in use by the connection. * * @param string $prefix - * @return \Illuminate\Database\MySqlConnection - * @static + * @return \Illuminate\Database\MySqlConnection + * @static */ public static function setTablePrefix($prefix) { @@ -7218,8 +7192,8 @@ namespace Illuminate\Support\Facades { * * @template TGrammar of \Illuminate\Database\Grammar * @param TGrammar $grammar - * @return TGrammar - * @static + * @return TGrammar + * @static */ public static function withTablePrefix($grammar) { @@ -7232,8 +7206,8 @@ namespace Illuminate\Support\Facades { * Execute the given callback without table prefix. * * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function withoutTablePrefix($callback) { @@ -7247,8 +7221,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function resolverFor($driver, $callback) { @@ -7260,8 +7234,8 @@ namespace Illuminate\Support\Facades { * Get the connection resolver for the given driver. * * @param string $driver - * @return \Closure|null - * @static + * @return \Closure|null + * @static */ public static function getResolver($driver) { @@ -7270,16 +7244,14 @@ namespace Illuminate\Support\Facades { } /** - * - * * @template TReturn of mixed - * + * * Execute a Closure within a transaction. * @param (\Closure(static): TReturn) $callback * @param int $attempts - * @return TReturn + * @return TReturn * @throws \Throwable - * @static + * @static */ public static function transaction($callback, $attempts = 1) { @@ -7291,9 +7263,9 @@ namespace Illuminate\Support\Facades { /** * Start a new database transaction. * - * @return void + * @return void * @throws \Throwable - * @static + * @static */ public static function beginTransaction() { @@ -7305,9 +7277,9 @@ namespace Illuminate\Support\Facades { /** * Commit the active database transaction. * - * @return void + * @return void * @throws \Throwable - * @static + * @static */ public static function commit() { @@ -7320,9 +7292,9 @@ namespace Illuminate\Support\Facades { * Rollback the active database transaction. * * @param int|null $toLevel - * @return void + * @return void * @throws \Throwable - * @static + * @static */ public static function rollBack($toLevel = null) { @@ -7334,8 +7306,8 @@ namespace Illuminate\Support\Facades { /** * Get the number of active transactions. * - * @return int - * @static + * @return int + * @static */ public static function transactionLevel() { @@ -7348,9 +7320,9 @@ namespace Illuminate\Support\Facades { * Execute the callback after a transaction commits. * * @param callable $callback - * @return void + * @return void * @throws \RuntimeException - * @static + * @static */ public static function afterCommit($callback) { @@ -7361,8 +7333,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Events\Dispatcher * @see \Illuminate\Support\Testing\Fakes\EventFake */ @@ -7372,8 +7342,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Events\Queued\Closure|callable|array|class-string|string $events * @param \Illuminate\Events\Queued\Closure|callable|array|class-string|null $listener - * @return void - * @static + * @return void + * @static */ public static function listen($events, $listener = null) { @@ -7385,8 +7355,8 @@ namespace Illuminate\Support\Facades { * Determine if a given event has listeners. * * @param string $eventName - * @return bool - * @static + * @return bool + * @static */ public static function hasListeners($eventName) { @@ -7398,8 +7368,8 @@ namespace Illuminate\Support\Facades { * Determine if the given event has any wildcard listeners. * * @param string $eventName - * @return bool - * @static + * @return bool + * @static */ public static function hasWildcardListeners($eventName) { @@ -7412,8 +7382,8 @@ namespace Illuminate\Support\Facades { * * @param string $event * @param object|array $payload - * @return void - * @static + * @return void + * @static */ public static function push($event, $payload = []) { @@ -7425,8 +7395,8 @@ namespace Illuminate\Support\Facades { * Flush a set of pushed events. * * @param string $event - * @return void - * @static + * @return void + * @static */ public static function flush($event) { @@ -7438,8 +7408,8 @@ namespace Illuminate\Support\Facades { * Register an event subscriber with the dispatcher. * * @param object|string $subscriber - * @return void - * @static + * @return void + * @static */ public static function subscribe($subscriber) { @@ -7452,8 +7422,8 @@ namespace Illuminate\Support\Facades { * * @param string|object $event * @param mixed $payload - * @return mixed - * @static + * @return mixed + * @static */ public static function until($event, $payload = []) { @@ -7467,8 +7437,8 @@ namespace Illuminate\Support\Facades { * @param string|object $event * @param mixed $payload * @param bool $halt - * @return array|null - * @static + * @return array|null + * @static */ public static function dispatch($event, $payload = [], $halt = false) { @@ -7480,8 +7450,8 @@ namespace Illuminate\Support\Facades { * Get all of the listeners for a given event name. * * @param string $eventName - * @return array - * @static + * @return array + * @static */ public static function getListeners($eventName) { @@ -7494,8 +7464,8 @@ namespace Illuminate\Support\Facades { * * @param \Closure|string|array $listener * @param bool $wildcard - * @return \Closure - * @static + * @return \Closure + * @static */ public static function makeListener($listener, $wildcard = false) { @@ -7508,8 +7478,8 @@ namespace Illuminate\Support\Facades { * * @param string $listener * @param bool $wildcard - * @return \Closure - * @static + * @return \Closure + * @static */ public static function createClassListener($listener, $wildcard = false) { @@ -7521,8 +7491,8 @@ namespace Illuminate\Support\Facades { * Remove a set of listeners from the dispatcher. * * @param string $event - * @return void - * @static + * @return void + * @static */ public static function forget($event) { @@ -7533,8 +7503,8 @@ namespace Illuminate\Support\Facades { /** * Forget all of the pushed listeners. * - * @return void - * @static + * @return void + * @static */ public static function forgetPushed() { @@ -7546,8 +7516,8 @@ namespace Illuminate\Support\Facades { * Set the queue resolver implementation. * * @param callable $resolver - * @return \Illuminate\Events\Dispatcher - * @static + * @return \Illuminate\Events\Dispatcher + * @static */ public static function setQueueResolver($resolver) { @@ -7559,8 +7529,8 @@ namespace Illuminate\Support\Facades { * Set the database transaction manager resolver implementation. * * @param callable $resolver - * @return \Illuminate\Events\Dispatcher - * @static + * @return \Illuminate\Events\Dispatcher + * @static */ public static function setTransactionManagerResolver($resolver) { @@ -7571,8 +7541,8 @@ namespace Illuminate\Support\Facades { /** * Gets the raw, unprepared listeners. * - * @return array - * @static + * @return array + * @static */ public static function getRawListeners() { @@ -7586,8 +7556,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -7599,9 +7569,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -7612,8 +7582,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -7623,8 +7593,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -7635,8 +7605,8 @@ namespace Illuminate\Support\Facades { * Specify the events that should be dispatched instead of faked. * * @param array|string $eventsToDispatch - * @return \Illuminate\Support\Testing\Fakes\EventFake - * @static + * @return \Illuminate\Support\Testing\Fakes\EventFake + * @static */ public static function except($eventsToDispatch) { @@ -7649,8 +7619,8 @@ namespace Illuminate\Support\Facades { * * @param string $expectedEvent * @param string|array $expectedListener - * @return void - * @static + * @return void + * @static */ public static function assertListening($expectedEvent, $expectedListener) { @@ -7663,8 +7633,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $event * @param callable|int|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertDispatched($event, $callback = null) { @@ -7677,8 +7647,8 @@ namespace Illuminate\Support\Facades { * * @param string $event * @param int $times - * @return void - * @static + * @return void + * @static */ public static function assertDispatchedTimes($event, $times = 1) { @@ -7691,8 +7661,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $event * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotDispatched($event, $callback = null) { @@ -7703,8 +7673,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no events were dispatched. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingDispatched() { @@ -7717,8 +7687,8 @@ namespace Illuminate\Support\Facades { * * @param string $event * @param callable|null $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function dispatched($event, $callback = null) { @@ -7730,8 +7700,8 @@ namespace Illuminate\Support\Facades { * Determine if the given event has been dispatched. * * @param string $event - * @return bool - * @static + * @return bool + * @static */ public static function hasDispatched($event) { @@ -7742,8 +7712,8 @@ namespace Illuminate\Support\Facades { /** * Get the events that have been dispatched. * - * @return array - * @static + * @return array + * @static */ public static function dispatchedEvents() { @@ -7753,8 +7723,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Filesystem\Filesystem */ class File { @@ -7762,8 +7730,8 @@ namespace Illuminate\Support\Facades { * Determine if a file or directory exists. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function exists($path) { @@ -7775,8 +7743,8 @@ namespace Illuminate\Support\Facades { * Determine if a file or directory is missing. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function missing($path) { @@ -7789,9 +7757,9 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param bool $lock - * @return string + * @return string * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - * @static + * @static */ public static function get($path, $lock = false) { @@ -7805,9 +7773,9 @@ namespace Illuminate\Support\Facades { * @param string $path * @param int $flags * @param bool $lock - * @return array + * @return array * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - * @static + * @static */ public static function json($path, $flags = 0, $lock = false) { @@ -7819,8 +7787,8 @@ namespace Illuminate\Support\Facades { * Get contents of a file with shared access. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function sharedGet($path) { @@ -7833,9 +7801,9 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param array $data - * @return mixed + * @return mixed * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - * @static + * @static */ public static function getRequire($path, $data = []) { @@ -7848,9 +7816,9 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param array $data - * @return mixed + * @return mixed * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - * @static + * @static */ public static function requireOnce($path, $data = []) { @@ -7862,9 +7830,9 @@ namespace Illuminate\Support\Facades { * Get the contents of a file one line at a time. * * @param string $path - * @return \Illuminate\Support\LazyCollection + * @return \Illuminate\Support\LazyCollection * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException - * @static + * @static */ public static function lines($path) { @@ -7877,8 +7845,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string $algorithm - * @return string|false - * @static + * @return string|false + * @static */ public static function hash($path, $algorithm = 'md5') { @@ -7892,8 +7860,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param string $contents * @param bool $lock - * @return int|bool - * @static + * @return int|bool + * @static */ public static function put($path, $contents, $lock = false) { @@ -7907,8 +7875,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param string $content * @param int|null $mode - * @return void - * @static + * @return void + * @static */ public static function replace($path, $content, $mode = null) { @@ -7922,8 +7890,8 @@ namespace Illuminate\Support\Facades { * @param array|string $search * @param array|string $replace * @param string $path - * @return void - * @static + * @return void + * @static */ public static function replaceInFile($search, $replace, $path) { @@ -7936,8 +7904,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string $data - * @return int - * @static + * @return int + * @static */ public static function prepend($path, $data) { @@ -7951,8 +7919,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param string $data * @param bool $lock - * @return int - * @static + * @return int + * @static */ public static function append($path, $data, $lock = false) { @@ -7965,8 +7933,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param int|null $mode - * @return mixed - * @static + * @return mixed + * @static */ public static function chmod($path, $mode = null) { @@ -7978,8 +7946,8 @@ namespace Illuminate\Support\Facades { * Delete the file at a given path. * * @param string|array $paths - * @return bool - * @static + * @return bool + * @static */ public static function delete($paths) { @@ -7992,8 +7960,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string $target - * @return bool - * @static + * @return bool + * @static */ public static function move($path, $target) { @@ -8006,8 +7974,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string $target - * @return bool - * @static + * @return bool + * @static */ public static function copy($path, $target) { @@ -8020,8 +7988,8 @@ namespace Illuminate\Support\Facades { * * @param string $target * @param string $link - * @return bool|null - * @static + * @return bool|null + * @static */ public static function link($target, $link) { @@ -8034,9 +8002,9 @@ namespace Illuminate\Support\Facades { * * @param string $target * @param string $link - * @return void + * @return void * @throws \RuntimeException - * @static + * @static */ public static function relativeLink($target, $link) { @@ -8048,8 +8016,8 @@ namespace Illuminate\Support\Facades { * Extract the file name from a file path. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function name($path) { @@ -8061,8 +8029,8 @@ namespace Illuminate\Support\Facades { * Extract the trailing name component from a file path. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function basename($path) { @@ -8074,8 +8042,8 @@ namespace Illuminate\Support\Facades { * Extract the parent directory from a file path. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function dirname($path) { @@ -8087,8 +8055,8 @@ namespace Illuminate\Support\Facades { * Extract the file extension from a file path. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function extension($path) { @@ -8100,9 +8068,9 @@ namespace Illuminate\Support\Facades { * Guess the file extension from the mime-type of a given file. * * @param string $path - * @return string|null + * @return string|null * @throws \RuntimeException - * @static + * @static */ public static function guessExtension($path) { @@ -8114,8 +8082,8 @@ namespace Illuminate\Support\Facades { * Get the file type of a given file. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function type($path) { @@ -8127,8 +8095,8 @@ namespace Illuminate\Support\Facades { * Get the mime-type of a given file. * * @param string $path - * @return string|false - * @static + * @return string|false + * @static */ public static function mimeType($path) { @@ -8140,8 +8108,8 @@ namespace Illuminate\Support\Facades { * Get the file size of a given file. * * @param string $path - * @return int - * @static + * @return int + * @static */ public static function size($path) { @@ -8153,8 +8121,8 @@ namespace Illuminate\Support\Facades { * Get the file's last modification time. * * @param string $path - * @return int - * @static + * @return int + * @static */ public static function lastModified($path) { @@ -8166,8 +8134,8 @@ namespace Illuminate\Support\Facades { * Determine if the given path is a directory. * * @param string $directory - * @return bool - * @static + * @return bool + * @static */ public static function isDirectory($directory) { @@ -8180,8 +8148,8 @@ namespace Illuminate\Support\Facades { * * @param string $directory * @param bool $ignoreDotFiles - * @return bool - * @static + * @return bool + * @static */ public static function isEmptyDirectory($directory, $ignoreDotFiles = false) { @@ -8193,8 +8161,8 @@ namespace Illuminate\Support\Facades { * Determine if the given path is readable. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function isReadable($path) { @@ -8206,8 +8174,8 @@ namespace Illuminate\Support\Facades { * Determine if the given path is writable. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function isWritable($path) { @@ -8220,8 +8188,8 @@ namespace Illuminate\Support\Facades { * * @param string $firstFile * @param string $secondFile - * @return bool - * @static + * @return bool + * @static */ public static function hasSameHash($firstFile, $secondFile) { @@ -8233,8 +8201,8 @@ namespace Illuminate\Support\Facades { * Determine if the given path is a file. * * @param string $file - * @return bool - * @static + * @return bool + * @static */ public static function isFile($file) { @@ -8247,8 +8215,8 @@ namespace Illuminate\Support\Facades { * * @param string $pattern * @param int $flags - * @return array - * @static + * @return array + * @static */ public static function glob($pattern, $flags = 0) { @@ -8261,8 +8229,8 @@ namespace Illuminate\Support\Facades { * * @param string $directory * @param bool $hidden - * @return \Symfony\Component\Finder\SplFileInfo[] - * @static + * @return \Symfony\Component\Finder\SplFileInfo[] + * @static */ public static function files($directory, $hidden = false) { @@ -8275,8 +8243,8 @@ namespace Illuminate\Support\Facades { * * @param string $directory * @param bool $hidden - * @return \Symfony\Component\Finder\SplFileInfo[] - * @static + * @return \Symfony\Component\Finder\SplFileInfo[] + * @static */ public static function allFiles($directory, $hidden = false) { @@ -8288,8 +8256,8 @@ namespace Illuminate\Support\Facades { * Get all of the directories within a given directory. * * @param string $directory - * @return array - * @static + * @return array + * @static */ public static function directories($directory) { @@ -8303,8 +8271,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param int $mode * @param bool $recursive - * @return void - * @static + * @return void + * @static */ public static function ensureDirectoryExists($path, $mode = 493, $recursive = true) { @@ -8319,8 +8287,8 @@ namespace Illuminate\Support\Facades { * @param int $mode * @param bool $recursive * @param bool $force - * @return bool - * @static + * @return bool + * @static */ public static function makeDirectory($path, $mode = 493, $recursive = false, $force = false) { @@ -8334,8 +8302,8 @@ namespace Illuminate\Support\Facades { * @param string $from * @param string $to * @param bool $overwrite - * @return bool - * @static + * @return bool + * @static */ public static function moveDirectory($from, $to, $overwrite = false) { @@ -8349,8 +8317,8 @@ namespace Illuminate\Support\Facades { * @param string $directory * @param string $destination * @param int|null $options - * @return bool - * @static + * @return bool + * @static */ public static function copyDirectory($directory, $destination, $options = null) { @@ -8360,13 +8328,13 @@ namespace Illuminate\Support\Facades { /** * Recursively delete a directory. - * + * * The directory itself may be optionally preserved. * * @param string $directory * @param bool $preserve - * @return bool - * @static + * @return bool + * @static */ public static function deleteDirectory($directory, $preserve = false) { @@ -8378,8 +8346,8 @@ namespace Illuminate\Support\Facades { * Remove all of the directories within a given directory. * * @param string $directory - * @return bool - * @static + * @return bool + * @static */ public static function deleteDirectories($directory) { @@ -8391,8 +8359,8 @@ namespace Illuminate\Support\Facades { * Empty the specified directory of all files and folders. * * @param string $directory - * @return bool - * @static + * @return bool + * @static */ public static function cleanDirectory($directory) { @@ -8408,8 +8376,8 @@ namespace Illuminate\Support\Facades { * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default - * @return $this|TWhenReturnType - * @static + * @return $this|TWhenReturnType + * @static */ public static function when($value = null, $callback = null, $default = null) { @@ -8425,8 +8393,8 @@ namespace Illuminate\Support\Facades { * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default - * @return $this|TUnlessReturnType - * @static + * @return $this|TUnlessReturnType + * @static */ public static function unless($value = null, $callback = null, $default = null) { @@ -8440,8 +8408,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -8453,9 +8421,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -8466,8 +8434,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -8477,8 +8445,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -8487,8 +8455,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Auth\Access\Gate */ class Gate { @@ -8496,8 +8462,8 @@ namespace Illuminate\Support\Facades { * Determine if a given ability has been defined. * * @param string|array $ability - * @return bool - * @static + * @return bool + * @static */ public static function has($ability) { @@ -8511,9 +8477,9 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Auth\Access\Response|\Closure|bool $condition * @param string|null $message * @param string|null $code - * @return \Illuminate\Auth\Access\Response + * @return \Illuminate\Auth\Access\Response * @throws \Illuminate\Auth\Access\AuthorizationException - * @static + * @static */ public static function allowIf($condition, $message = null, $code = null) { @@ -8527,9 +8493,9 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Auth\Access\Response|\Closure|bool $condition * @param string|null $message * @param string|null $code - * @return \Illuminate\Auth\Access\Response + * @return \Illuminate\Auth\Access\Response * @throws \Illuminate\Auth\Access\AuthorizationException - * @static + * @static */ public static function denyIf($condition, $message = null, $code = null) { @@ -8542,9 +8508,9 @@ namespace Illuminate\Support\Facades { * * @param \UnitEnum|string $ability * @param callable|array|string $callback - * @return \Illuminate\Auth\Access\Gate + * @return \Illuminate\Auth\Access\Gate * @throws \InvalidArgumentException - * @static + * @static */ public static function define($ability, $callback) { @@ -8558,8 +8524,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param string $class * @param array|null $abilities - * @return \Illuminate\Auth\Access\Gate - * @static + * @return \Illuminate\Auth\Access\Gate + * @static */ public static function resource($name, $class, $abilities = null) { @@ -8572,8 +8538,8 @@ namespace Illuminate\Support\Facades { * * @param string $class * @param string $policy - * @return \Illuminate\Auth\Access\Gate - * @static + * @return \Illuminate\Auth\Access\Gate + * @static */ public static function policy($class, $policy) { @@ -8585,8 +8551,8 @@ namespace Illuminate\Support\Facades { * Register a callback to run before all Gate checks. * * @param callable $callback - * @return \Illuminate\Auth\Access\Gate - * @static + * @return \Illuminate\Auth\Access\Gate + * @static */ public static function before($callback) { @@ -8598,8 +8564,8 @@ namespace Illuminate\Support\Facades { * Register a callback to run after all Gate checks. * * @param callable $callback - * @return \Illuminate\Auth\Access\Gate - * @static + * @return \Illuminate\Auth\Access\Gate + * @static */ public static function after($callback) { @@ -8612,8 +8578,8 @@ namespace Illuminate\Support\Facades { * * @param iterable|\UnitEnum|string $ability * @param array|mixed $arguments - * @return bool - * @static + * @return bool + * @static */ public static function allows($ability, $arguments = []) { @@ -8626,8 +8592,8 @@ namespace Illuminate\Support\Facades { * * @param iterable|\UnitEnum|string $ability * @param array|mixed $arguments - * @return bool - * @static + * @return bool + * @static */ public static function denies($ability, $arguments = []) { @@ -8640,8 +8606,8 @@ namespace Illuminate\Support\Facades { * * @param iterable|\UnitEnum|string $abilities * @param array|mixed $arguments - * @return bool - * @static + * @return bool + * @static */ public static function check($abilities, $arguments = []) { @@ -8654,8 +8620,8 @@ namespace Illuminate\Support\Facades { * * @param iterable|\UnitEnum|string $abilities * @param array|mixed $arguments - * @return bool - * @static + * @return bool + * @static */ public static function any($abilities, $arguments = []) { @@ -8668,8 +8634,8 @@ namespace Illuminate\Support\Facades { * * @param iterable|\UnitEnum|string $abilities * @param array|mixed $arguments - * @return bool - * @static + * @return bool + * @static */ public static function none($abilities, $arguments = []) { @@ -8682,9 +8648,9 @@ namespace Illuminate\Support\Facades { * * @param \UnitEnum|string $ability * @param array|mixed $arguments - * @return \Illuminate\Auth\Access\Response + * @return \Illuminate\Auth\Access\Response * @throws \Illuminate\Auth\Access\AuthorizationException - * @static + * @static */ public static function authorize($ability, $arguments = []) { @@ -8697,8 +8663,8 @@ namespace Illuminate\Support\Facades { * * @param \UnitEnum|string $ability * @param array|mixed $arguments - * @return \Illuminate\Auth\Access\Response - * @static + * @return \Illuminate\Auth\Access\Response + * @static */ public static function inspect($ability, $arguments = []) { @@ -8711,9 +8677,9 @@ namespace Illuminate\Support\Facades { * * @param string $ability * @param array|mixed $arguments - * @return mixed + * @return mixed * @throws \Illuminate\Auth\Access\AuthorizationException - * @static + * @static */ public static function raw($ability, $arguments = []) { @@ -8725,8 +8691,8 @@ namespace Illuminate\Support\Facades { * Get a policy instance for a given class. * * @param object|string $class - * @return mixed - * @static + * @return mixed + * @static */ public static function getPolicyFor($class) { @@ -8738,8 +8704,8 @@ namespace Illuminate\Support\Facades { * Specify a callback to be used to guess policy names. * * @param callable $callback - * @return \Illuminate\Auth\Access\Gate - * @static + * @return \Illuminate\Auth\Access\Gate + * @static */ public static function guessPolicyNamesUsing($callback) { @@ -8751,9 +8717,9 @@ namespace Illuminate\Support\Facades { * Build a policy class instance of the given type. * * @param object|string $class - * @return mixed + * @return mixed * @throws \Illuminate\Contracts\Container\BindingResolutionException - * @static + * @static */ public static function resolvePolicy($class) { @@ -8765,8 +8731,8 @@ namespace Illuminate\Support\Facades { * Get a gate instance for the given user. * * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user - * @return static - * @static + * @return static + * @static */ public static function forUser($user) { @@ -8777,8 +8743,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the defined abilities. * - * @return array - * @static + * @return array + * @static */ public static function abilities() { @@ -8789,8 +8755,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the defined policies. * - * @return array - * @static + * @return array + * @static */ public static function policies() { @@ -8802,8 +8768,8 @@ namespace Illuminate\Support\Facades { * Set the default denial response for gates and policies. * * @param \Illuminate\Auth\Access\Response $response - * @return \Illuminate\Auth\Access\Gate - * @static + * @return \Illuminate\Auth\Access\Gate + * @static */ public static function defaultDenialResponse($response) { @@ -8815,8 +8781,8 @@ namespace Illuminate\Support\Facades { * Set the container instance used by the gate. * * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Auth\Access\Gate - * @static + * @return \Illuminate\Auth\Access\Gate + * @static */ public static function setContainer($container) { @@ -8830,8 +8796,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param string|null $message * @param int|null $code - * @return \Illuminate\Auth\Access\Response - * @static + * @return \Illuminate\Auth\Access\Response + * @static */ public static function denyWithStatus($status, $message = null, $code = null) { @@ -8844,8 +8810,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $message * @param int|null $code - * @return \Illuminate\Auth\Access\Response - * @static + * @return \Illuminate\Auth\Access\Response + * @static */ public static function denyAsNotFound($message = null, $code = null) { @@ -8855,8 +8821,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Hashing\HashManager * @see \Illuminate\Hashing\AbstractHasher */ @@ -8864,8 +8828,8 @@ namespace Illuminate\Support\Facades { /** * Create an instance of the Bcrypt hash Driver. * - * @return \Illuminate\Hashing\BcryptHasher - * @static + * @return \Illuminate\Hashing\BcryptHasher + * @static */ public static function createBcryptDriver() { @@ -8876,8 +8840,8 @@ namespace Illuminate\Support\Facades { /** * Create an instance of the Argon2i hash Driver. * - * @return \Illuminate\Hashing\ArgonHasher - * @static + * @return \Illuminate\Hashing\ArgonHasher + * @static */ public static function createArgonDriver() { @@ -8888,8 +8852,8 @@ namespace Illuminate\Support\Facades { /** * Create an instance of the Argon2id hash Driver. * - * @return \Illuminate\Hashing\Argon2IdHasher - * @static + * @return \Illuminate\Hashing\Argon2IdHasher + * @static */ public static function createArgon2idDriver() { @@ -8901,8 +8865,8 @@ namespace Illuminate\Support\Facades { * Get information about the given hashed value. * * @param string $hashedValue - * @return array - * @static + * @return array + * @static */ public static function info($hashedValue) { @@ -8915,8 +8879,8 @@ namespace Illuminate\Support\Facades { * * @param string $value * @param array $options - * @return string - * @static + * @return string + * @static */ public static function make($value, $options = []) { @@ -8930,8 +8894,8 @@ namespace Illuminate\Support\Facades { * @param string $value * @param string $hashedValue * @param array $options - * @return bool - * @static + * @return bool + * @static */ public static function check($value, $hashedValue, $options = []) { @@ -8944,8 +8908,8 @@ namespace Illuminate\Support\Facades { * * @param string $hashedValue * @param array $options - * @return bool - * @static + * @return bool + * @static */ public static function needsRehash($hashedValue, $options = []) { @@ -8957,8 +8921,8 @@ namespace Illuminate\Support\Facades { * Determine if a given string is already hashed. * * @param string $value - * @return bool - * @static + * @return bool + * @static */ public static function isHashed($value) { @@ -8969,8 +8933,8 @@ namespace Illuminate\Support\Facades { /** * Get the default driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -8982,9 +8946,9 @@ namespace Illuminate\Support\Facades { * Verifies that the configuration is less than or equal to what is configured. * * @param array $value - * @return bool - * @internal - * @static + * @return bool + * @internal + * @static */ public static function verifyConfiguration($value) { @@ -8996,9 +8960,9 @@ namespace Illuminate\Support\Facades { * Get a driver instance. * * @param string|null $driver - * @return mixed + * @return mixed * @throws \InvalidArgumentException - * @static + * @static */ public static function driver($driver = null) { @@ -9012,8 +8976,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Hashing\HashManager - * @static + * @return \Illuminate\Hashing\HashManager + * @static */ public static function extend($driver, $callback) { @@ -9025,8 +8989,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the created "drivers". * - * @return array - * @static + * @return array + * @static */ public static function getDrivers() { @@ -9038,8 +9002,8 @@ namespace Illuminate\Support\Facades { /** * Get the container instance used by the manager. * - * @return \Illuminate\Contracts\Container\Container - * @static + * @return \Illuminate\Contracts\Container\Container + * @static */ public static function getContainer() { @@ -9052,8 +9016,8 @@ namespace Illuminate\Support\Facades { * Set the container instance used by the manager. * * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Hashing\HashManager - * @static + * @return \Illuminate\Hashing\HashManager + * @static */ public static function setContainer($container) { @@ -9065,8 +9029,8 @@ namespace Illuminate\Support\Facades { /** * Forget all of the resolved driver instances. * - * @return \Illuminate\Hashing\HashManager - * @static + * @return \Illuminate\Hashing\HashManager + * @static */ public static function forgetDrivers() { @@ -9077,8 +9041,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @method static \Illuminate\Http\Client\PendingRequest baseUrl(string $url) * @method static \Illuminate\Http\Client\PendingRequest withBody(\Psr\Http\Message\StreamInterface|string $content, string $contentType = 'application/json') * @method static \Illuminate\Http\Client\PendingRequest asJson() @@ -9148,8 +9110,8 @@ namespace Illuminate\Support\Facades { * Add middleware to apply to every request. * * @param callable $middleware - * @return \Illuminate\Http\Client\Factory - * @static + * @return \Illuminate\Http\Client\Factory + * @static */ public static function globalMiddleware($middleware) { @@ -9161,8 +9123,8 @@ namespace Illuminate\Support\Facades { * Add request middleware to apply to every request. * * @param callable $middleware - * @return \Illuminate\Http\Client\Factory - * @static + * @return \Illuminate\Http\Client\Factory + * @static */ public static function globalRequestMiddleware($middleware) { @@ -9174,8 +9136,8 @@ namespace Illuminate\Support\Facades { * Add response middleware to apply to every request. * * @param callable $middleware - * @return \Illuminate\Http\Client\Factory - * @static + * @return \Illuminate\Http\Client\Factory + * @static */ public static function globalResponseMiddleware($middleware) { @@ -9187,8 +9149,8 @@ namespace Illuminate\Support\Facades { * Set the options to apply to every request. * * @param \Closure|array $options - * @return \Illuminate\Http\Client\Factory - * @static + * @return \Illuminate\Http\Client\Factory + * @static */ public static function globalOptions($options) { @@ -9202,8 +9164,8 @@ namespace Illuminate\Support\Facades { * @param array|string|null $body * @param int $status * @param array $headers - * @return \GuzzleHttp\Promise\PromiseInterface - * @static + * @return \GuzzleHttp\Promise\PromiseInterface + * @static */ public static function response($body = null, $status = 200, $headers = []) { @@ -9214,8 +9176,8 @@ namespace Illuminate\Support\Facades { * Create a new connection exception for use during stubbing. * * @param string|null $message - * @return \GuzzleHttp\Promise\PromiseInterface - * @static + * @return \GuzzleHttp\Promise\PromiseInterface + * @static */ public static function failedConnection($message = null) { @@ -9226,8 +9188,8 @@ namespace Illuminate\Support\Facades { * Get an invokable object that returns a sequence of responses in order for use during stubbing. * * @param array $responses - * @return \Illuminate\Http\Client\ResponseSequence - * @static + * @return \Illuminate\Http\Client\ResponseSequence + * @static */ public static function sequence($responses = []) { @@ -9239,8 +9201,8 @@ namespace Illuminate\Support\Facades { * Register a stub callable that will intercept requests and be able to return stub responses. * * @param callable|array|null $callback - * @return \Illuminate\Http\Client\Factory - * @static + * @return \Illuminate\Http\Client\Factory + * @static */ public static function fake($callback = null) { @@ -9252,8 +9214,8 @@ namespace Illuminate\Support\Facades { * Register a response sequence for the given URL pattern. * * @param string $url - * @return \Illuminate\Http\Client\ResponseSequence - * @static + * @return \Illuminate\Http\Client\ResponseSequence + * @static */ public static function fakeSequence($url = '*') { @@ -9266,8 +9228,8 @@ namespace Illuminate\Support\Facades { * * @param string $url * @param \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface|callable|int|string|array $callback - * @return \Illuminate\Http\Client\Factory - * @static + * @return \Illuminate\Http\Client\Factory + * @static */ public static function stubUrl($url, $callback) { @@ -9279,8 +9241,8 @@ namespace Illuminate\Support\Facades { * Indicate that an exception should be thrown if any request is not faked. * * @param bool $prevent - * @return \Illuminate\Http\Client\Factory - * @static + * @return \Illuminate\Http\Client\Factory + * @static */ public static function preventStrayRequests($prevent = true) { @@ -9291,8 +9253,8 @@ namespace Illuminate\Support\Facades { /** * Determine if stray requests are being prevented. * - * @return bool - * @static + * @return bool + * @static */ public static function preventingStrayRequests() { @@ -9303,8 +9265,8 @@ namespace Illuminate\Support\Facades { /** * Indicate that an exception should not be thrown if any request is not faked. * - * @return \Illuminate\Http\Client\Factory - * @static + * @return \Illuminate\Http\Client\Factory + * @static */ public static function allowStrayRequests() { @@ -9317,8 +9279,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Http\Client\Request $request * @param \Illuminate\Http\Client\Response|null $response - * @return void - * @static + * @return void + * @static */ public static function recordRequestResponsePair($request, $response) { @@ -9330,8 +9292,8 @@ namespace Illuminate\Support\Facades { * Assert that a request / response pair was recorded matching a given truth test. * * @param callable $callback - * @return void - * @static + * @return void + * @static */ public static function assertSent($callback) { @@ -9343,8 +9305,8 @@ namespace Illuminate\Support\Facades { * Assert that the given request was sent in the given order. * * @param array $callbacks - * @return void - * @static + * @return void + * @static */ public static function assertSentInOrder($callbacks) { @@ -9356,8 +9318,8 @@ namespace Illuminate\Support\Facades { * Assert that a request / response pair was not recorded matching a given truth test. * * @param callable $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotSent($callback) { @@ -9368,8 +9330,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no request / response pair was recorded. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingSent() { @@ -9381,8 +9343,8 @@ namespace Illuminate\Support\Facades { * Assert how many requests have been recorded. * * @param int $count - * @return void - * @static + * @return void + * @static */ public static function assertSentCount($count) { @@ -9393,8 +9355,8 @@ namespace Illuminate\Support\Facades { /** * Assert that every created response sequence is empty. * - * @return void - * @static + * @return void + * @static */ public static function assertSequencesAreEmpty() { @@ -9406,8 +9368,8 @@ namespace Illuminate\Support\Facades { * Get a collection of the request / response pairs matching the given truth test. * * @param callable $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function recorded($callback = null) { @@ -9418,8 +9380,8 @@ namespace Illuminate\Support\Facades { /** * Create a new pending request instance for this factory. * - * @return \Illuminate\Http\Client\PendingRequest - * @static + * @return \Illuminate\Http\Client\PendingRequest + * @static */ public static function createPendingRequest() { @@ -9430,8 +9392,8 @@ namespace Illuminate\Support\Facades { /** * Get the current event dispatcher implementation. * - * @return \Illuminate\Contracts\Events\Dispatcher|null - * @static + * @return \Illuminate\Contracts\Events\Dispatcher|null + * @static */ public static function getDispatcher() { @@ -9442,8 +9404,8 @@ namespace Illuminate\Support\Facades { /** * Get the array of global middleware. * - * @return array - * @static + * @return array + * @static */ public static function getGlobalMiddleware() { @@ -9457,8 +9419,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -9470,9 +9432,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -9483,8 +9445,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -9494,8 +9456,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -9507,9 +9469,9 @@ namespace Illuminate\Support\Facades { * * @param string $method * @param array $parameters - * @return mixed + * @return mixed * @throws \BadMethodCallException - * @static + * @static */ public static function macroCall($method, $parameters) { @@ -9519,8 +9481,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Translation\Translator */ class Lang { @@ -9529,8 +9489,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param string|null $locale - * @return bool - * @static + * @return bool + * @static */ public static function hasForLocale($key, $locale = null) { @@ -9544,8 +9504,8 @@ namespace Illuminate\Support\Facades { * @param string $key * @param string|null $locale * @param bool $fallback - * @return bool - * @static + * @return bool + * @static */ public static function has($key, $locale = null, $fallback = true) { @@ -9560,8 +9520,8 @@ namespace Illuminate\Support\Facades { * @param array $replace * @param string|null $locale * @param bool $fallback - * @return string|array - * @static + * @return string|array + * @static */ public static function get($key, $replace = [], $locale = null, $fallback = true) { @@ -9576,8 +9536,8 @@ namespace Illuminate\Support\Facades { * @param \Countable|int|float|array $number * @param array $replace * @param string|null $locale - * @return string - * @static + * @return string + * @static */ public static function choice($key, $number, $replace = [], $locale = null) { @@ -9591,8 +9551,8 @@ namespace Illuminate\Support\Facades { * @param array $lines * @param string $locale * @param string $namespace - * @return void - * @static + * @return void + * @static */ public static function addLines($lines, $locale, $namespace = '*') { @@ -9606,8 +9566,8 @@ namespace Illuminate\Support\Facades { * @param string $namespace * @param string $group * @param string $locale - * @return void - * @static + * @return void + * @static */ public static function load($namespace, $group, $locale) { @@ -9619,8 +9579,8 @@ namespace Illuminate\Support\Facades { * Register a callback that is responsible for handling missing translation keys. * * @param callable|null $callback - * @return static - * @static + * @return static + * @static */ public static function handleMissingKeysUsing($callback) { @@ -9633,8 +9593,8 @@ namespace Illuminate\Support\Facades { * * @param string $namespace * @param string $hint - * @return void - * @static + * @return void + * @static */ public static function addNamespace($namespace, $hint) { @@ -9646,8 +9606,8 @@ namespace Illuminate\Support\Facades { * Add a new path to the loader. * * @param string $path - * @return void - * @static + * @return void + * @static */ public static function addPath($path) { @@ -9659,8 +9619,8 @@ namespace Illuminate\Support\Facades { * Add a new JSON path to the loader. * * @param string $path - * @return void - * @static + * @return void + * @static */ public static function addJsonPath($path) { @@ -9672,8 +9632,8 @@ namespace Illuminate\Support\Facades { * Parse a key into namespace, group, and item. * * @param string $key - * @return array - * @static + * @return array + * @static */ public static function parseKey($key) { @@ -9685,8 +9645,8 @@ namespace Illuminate\Support\Facades { * Specify a callback that should be invoked to determined the applicable locale array. * * @param callable $callback - * @return void - * @static + * @return void + * @static */ public static function determineLocalesUsing($callback) { @@ -9697,8 +9657,8 @@ namespace Illuminate\Support\Facades { /** * Get the message selector instance. * - * @return \Illuminate\Translation\MessageSelector - * @static + * @return \Illuminate\Translation\MessageSelector + * @static */ public static function getSelector() { @@ -9710,8 +9670,8 @@ namespace Illuminate\Support\Facades { * Set the message selector instance. * * @param \Illuminate\Translation\MessageSelector $selector - * @return void - * @static + * @return void + * @static */ public static function setSelector($selector) { @@ -9722,8 +9682,8 @@ namespace Illuminate\Support\Facades { /** * Get the language line loader implementation. * - * @return \Illuminate\Contracts\Translation\Loader - * @static + * @return \Illuminate\Contracts\Translation\Loader + * @static */ public static function getLoader() { @@ -9734,8 +9694,8 @@ namespace Illuminate\Support\Facades { /** * Get the default locale being used. * - * @return string - * @static + * @return string + * @static */ public static function locale() { @@ -9746,8 +9706,8 @@ namespace Illuminate\Support\Facades { /** * Get the default locale being used. * - * @return string - * @static + * @return string + * @static */ public static function getLocale() { @@ -9759,9 +9719,9 @@ namespace Illuminate\Support\Facades { * Set the default locale. * * @param string $locale - * @return void + * @return void * @throws \InvalidArgumentException - * @static + * @static */ public static function setLocale($locale) { @@ -9772,8 +9732,8 @@ namespace Illuminate\Support\Facades { /** * Get the fallback locale being used. * - * @return string - * @static + * @return string + * @static */ public static function getFallback() { @@ -9785,8 +9745,8 @@ namespace Illuminate\Support\Facades { * Set the fallback locale being used. * * @param string $fallback - * @return void - * @static + * @return void + * @static */ public static function setFallback($fallback) { @@ -9798,8 +9758,8 @@ namespace Illuminate\Support\Facades { * Set the loaded translation groups. * * @param array $loaded - * @return void - * @static + * @return void + * @static */ public static function setLoaded($loaded) { @@ -9812,8 +9772,8 @@ namespace Illuminate\Support\Facades { * * @param callable|string $class * @param callable|null $handler - * @return void - * @static + * @return void + * @static */ public static function stringable($class, $handler = null) { @@ -9826,8 +9786,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param array $parsed - * @return void - * @static + * @return void + * @static */ public static function setParsedKey($key, $parsed) { @@ -9839,8 +9799,8 @@ namespace Illuminate\Support\Facades { /** * Flush the cache of parsed keys. * - * @return void - * @static + * @return void + * @static */ public static function flushParsedKeys() { @@ -9855,8 +9815,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -9868,9 +9828,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -9881,8 +9841,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -9892,8 +9852,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -9902,8 +9862,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @method static void write(string $level, \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message, array $context = []) * @method static \Illuminate\Log\Logger withContext(array $context = []) * @method static void listen(\Closure $callback) @@ -9919,8 +9877,8 @@ namespace Illuminate\Support\Facades { * Build an on-demand log channel. * * @param array $config - * @return \Psr\Log\LoggerInterface - * @static + * @return \Psr\Log\LoggerInterface + * @static */ public static function build($config) { @@ -9933,8 +9891,8 @@ namespace Illuminate\Support\Facades { * * @param array $channels * @param string|null $channel - * @return \Psr\Log\LoggerInterface - * @static + * @return \Psr\Log\LoggerInterface + * @static */ public static function stack($channels, $channel = null) { @@ -9946,8 +9904,8 @@ namespace Illuminate\Support\Facades { * Get a log channel instance. * * @param string|null $channel - * @return \Psr\Log\LoggerInterface - * @static + * @return \Psr\Log\LoggerInterface + * @static */ public static function channel($channel = null) { @@ -9959,8 +9917,8 @@ namespace Illuminate\Support\Facades { * Get a log driver instance. * * @param string|null $driver - * @return \Psr\Log\LoggerInterface - * @static + * @return \Psr\Log\LoggerInterface + * @static */ public static function driver($driver = null) { @@ -9972,8 +9930,8 @@ namespace Illuminate\Support\Facades { * Share context across channels and stacks. * * @param array $context - * @return \Illuminate\Log\LogManager - * @static + * @return \Illuminate\Log\LogManager + * @static */ public static function shareContext($context) { @@ -9984,8 +9942,8 @@ namespace Illuminate\Support\Facades { /** * The context shared across channels and stacks. * - * @return array - * @static + * @return array + * @static */ public static function sharedContext() { @@ -9996,8 +9954,8 @@ namespace Illuminate\Support\Facades { /** * Flush the log context on all currently resolved channels. * - * @return \Illuminate\Log\LogManager - * @static + * @return \Illuminate\Log\LogManager + * @static */ public static function withoutContext() { @@ -10008,8 +9966,8 @@ namespace Illuminate\Support\Facades { /** * Flush the shared context. * - * @return \Illuminate\Log\LogManager - * @static + * @return \Illuminate\Log\LogManager + * @static */ public static function flushSharedContext() { @@ -10020,8 +9978,8 @@ namespace Illuminate\Support\Facades { /** * Get the default log driver name. * - * @return string|null - * @static + * @return string|null + * @static */ public static function getDefaultDriver() { @@ -10033,8 +9991,8 @@ namespace Illuminate\Support\Facades { * Set the default log driver name. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultDriver($name) { @@ -10047,8 +10005,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Log\LogManager - * @static + * @return \Illuminate\Log\LogManager + * @static */ public static function extend($driver, $callback) { @@ -10060,8 +10018,8 @@ namespace Illuminate\Support\Facades { * Unset the given channel instance. * * @param string|null $driver - * @return void - * @static + * @return void + * @static */ public static function forgetChannel($driver = null) { @@ -10072,8 +10030,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the resolved log channels. * - * @return array - * @static + * @return array + * @static */ public static function getChannels() { @@ -10086,8 +10044,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function emergency($message, $context = []) { @@ -10097,14 +10055,14 @@ namespace Illuminate\Support\Facades { /** * Action must be taken immediately. - * + * * Example: Entire website down, database unavailable, etc. This should * trigger the SMS alerts and wake you up. * * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function alert($message, $context = []) { @@ -10114,13 +10072,13 @@ namespace Illuminate\Support\Facades { /** * Critical conditions. - * + * * Example: Application component unavailable, unexpected exception. * * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function critical($message, $context = []) { @@ -10134,8 +10092,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function error($message, $context = []) { @@ -10145,14 +10103,14 @@ namespace Illuminate\Support\Facades { /** * Exceptional occurrences that are not errors. - * + * * Example: Use of deprecated APIs, poor use of an API, undesirable things * that are not necessarily wrong. * * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function warning($message, $context = []) { @@ -10165,8 +10123,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function notice($message, $context = []) { @@ -10176,13 +10134,13 @@ namespace Illuminate\Support\Facades { /** * Interesting events. - * + * * Example: User logs in, SQL logs. * * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function info($message, $context = []) { @@ -10195,8 +10153,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function debug($message, $context = []) { @@ -10210,8 +10168,8 @@ namespace Illuminate\Support\Facades { * @param mixed $level * @param string|\Stringable $message * @param array $context - * @return void - * @static + * @return void + * @static */ public static function log($level, $message, $context = []) { @@ -10223,8 +10181,8 @@ namespace Illuminate\Support\Facades { * Set the application instance used by the manager. * * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Log\LogManager - * @static + * @return \Illuminate\Log\LogManager + * @static */ public static function setApplication($app) { @@ -10234,8 +10192,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @method static void alwaysFrom(string $address, string|null $name = null) * @method static void alwaysReplyTo(string $address, string|null $name = null) * @method static void alwaysReturnPath(string $address) @@ -10262,8 +10218,8 @@ namespace Illuminate\Support\Facades { * Get a mailer instance by name. * * @param string|null $name - * @return \Illuminate\Contracts\Mail\Mailer - * @static + * @return \Illuminate\Contracts\Mail\Mailer + * @static */ public static function mailer($name = null) { @@ -10275,8 +10231,8 @@ namespace Illuminate\Support\Facades { * Get a mailer driver instance. * * @param string|null $driver - * @return \Illuminate\Mail\Mailer - * @static + * @return \Illuminate\Mail\Mailer + * @static */ public static function driver($driver = null) { @@ -10288,8 +10244,8 @@ namespace Illuminate\Support\Facades { * Build a new mailer instance. * * @param array $config - * @return \Illuminate\Mail\Mailer - * @static + * @return \Illuminate\Mail\Mailer + * @static */ public static function build($config) { @@ -10301,9 +10257,9 @@ namespace Illuminate\Support\Facades { * Create a new transport instance. * * @param array $config - * @return \Symfony\Component\Mailer\Transport\TransportInterface + * @return \Symfony\Component\Mailer\Transport\TransportInterface * @throws \InvalidArgumentException - * @static + * @static */ public static function createSymfonyTransport($config) { @@ -10314,8 +10270,8 @@ namespace Illuminate\Support\Facades { /** * Get the default mail driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -10327,8 +10283,8 @@ namespace Illuminate\Support\Facades { * Set the default mail driver name. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultDriver($name) { @@ -10340,8 +10296,8 @@ namespace Illuminate\Support\Facades { * Disconnect the given mailer and remove from local cache. * * @param string|null $name - * @return void - * @static + * @return void + * @static */ public static function purge($name = null) { @@ -10354,8 +10310,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Mail\MailManager - * @static + * @return \Illuminate\Mail\MailManager + * @static */ public static function extend($driver, $callback) { @@ -10366,8 +10322,8 @@ namespace Illuminate\Support\Facades { /** * Get the application instance used by the manager. * - * @return \Illuminate\Contracts\Foundation\Application - * @static + * @return \Illuminate\Contracts\Foundation\Application + * @static */ public static function getApplication() { @@ -10379,8 +10335,8 @@ namespace Illuminate\Support\Facades { * Set the application instance used by the manager. * * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Mail\MailManager - * @static + * @return \Illuminate\Mail\MailManager + * @static */ public static function setApplication($app) { @@ -10391,8 +10347,8 @@ namespace Illuminate\Support\Facades { /** * Forget all of the resolved mailer instances. * - * @return \Illuminate\Mail\MailManager - * @static + * @return \Illuminate\Mail\MailManager + * @static */ public static function forgetMailers() { @@ -10405,8 +10361,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $mailable * @param callable|array|string|int|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertSent($mailable, $callback = null) { @@ -10419,8 +10375,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $mailable * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotOutgoing($mailable, $callback = null) { @@ -10433,8 +10389,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $mailable * @param callable|array|string|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotSent($mailable, $callback = null) { @@ -10445,8 +10401,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no mailables were sent or queued to be sent. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingOutgoing() { @@ -10457,8 +10413,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no mailables were sent. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingSent() { @@ -10471,8 +10427,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $mailable * @param callable|array|string|int|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertQueued($mailable, $callback = null) { @@ -10485,8 +10441,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $mailable * @param callable|array|string|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotQueued($mailable, $callback = null) { @@ -10497,8 +10453,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no mailables were queued. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingQueued() { @@ -10510,8 +10466,8 @@ namespace Illuminate\Support\Facades { * Assert the total number of mailables that were sent. * * @param int $count - * @return void - * @static + * @return void + * @static */ public static function assertSentCount($count) { @@ -10523,8 +10479,8 @@ namespace Illuminate\Support\Facades { * Assert the total number of mailables that were queued. * * @param int $count - * @return void - * @static + * @return void + * @static */ public static function assertQueuedCount($count) { @@ -10536,8 +10492,8 @@ namespace Illuminate\Support\Facades { * Assert the total number of mailables that were sent or queued. * * @param int $count - * @return void - * @static + * @return void + * @static */ public static function assertOutgoingCount($count) { @@ -10550,8 +10506,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $mailable * @param callable|null $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function sent($mailable, $callback = null) { @@ -10563,8 +10519,8 @@ namespace Illuminate\Support\Facades { * Determine if the given mailable has been sent. * * @param string $mailable - * @return bool - * @static + * @return bool + * @static */ public static function hasSent($mailable) { @@ -10577,8 +10533,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $mailable * @param callable|null $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function queued($mailable, $callback = null) { @@ -10590,8 +10546,8 @@ namespace Illuminate\Support\Facades { * Determine if the given mailable has been queued. * * @param string $mailable - * @return bool - * @static + * @return bool + * @static */ public static function hasQueued($mailable) { @@ -10603,8 +10559,8 @@ namespace Illuminate\Support\Facades { * Begin the process of mailing a mailable class instance. * * @param mixed $users - * @return \Illuminate\Mail\PendingMail - * @static + * @return \Illuminate\Mail\PendingMail + * @static */ public static function to($users) { @@ -10616,8 +10572,8 @@ namespace Illuminate\Support\Facades { * Begin the process of mailing a mailable class instance. * * @param mixed $users - * @return \Illuminate\Mail\PendingMail - * @static + * @return \Illuminate\Mail\PendingMail + * @static */ public static function cc($users) { @@ -10629,8 +10585,8 @@ namespace Illuminate\Support\Facades { * Begin the process of mailing a mailable class instance. * * @param mixed $users - * @return \Illuminate\Mail\PendingMail - * @static + * @return \Illuminate\Mail\PendingMail + * @static */ public static function bcc($users) { @@ -10643,8 +10599,8 @@ namespace Illuminate\Support\Facades { * * @param string $text * @param \Closure|string $callback - * @return void - * @static + * @return void + * @static */ public static function raw($text, $callback) { @@ -10658,8 +10614,8 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Contracts\Mail\Mailable|string|array $view * @param array $data * @param \Closure|string|null $callback - * @return mixed|void - * @static + * @return mixed|void + * @static */ public static function send($view, $data = [], $callback = null) { @@ -10673,8 +10629,8 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Contracts\Mail\Mailable|string|array $mailable * @param array $data * @param \Closure|string|null $callback - * @return void - * @static + * @return void + * @static */ public static function sendNow($mailable, $data = [], $callback = null) { @@ -10687,8 +10643,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Contracts\Mail\Mailable|string|array $view * @param string|null $queue - * @return mixed - * @static + * @return mixed + * @static */ public static function queue($view, $queue = null) { @@ -10702,8 +10658,8 @@ namespace Illuminate\Support\Facades { * @param \DateTimeInterface|\DateInterval|int $delay * @param \Illuminate\Contracts\Mail\Mailable|string|array $view * @param string|null $queue - * @return mixed - * @static + * @return mixed + * @static */ public static function later($delay, $view, $queue = null) { @@ -10713,8 +10669,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Notifications\ChannelManager * @see \Illuminate\Support\Testing\Fakes\NotificationFake */ @@ -10724,8 +10678,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Support\Collection|array|mixed $notifiables * @param mixed $notification - * @return void - * @static + * @return void + * @static */ public static function send($notifiables, $notification) { @@ -10739,8 +10693,8 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Support\Collection|array|mixed $notifiables * @param mixed $notification * @param array|null $channels - * @return void - * @static + * @return void + * @static */ public static function sendNow($notifiables, $notification, $channels = null) { @@ -10752,8 +10706,8 @@ namespace Illuminate\Support\Facades { * Get a channel instance. * * @param string|null $name - * @return mixed - * @static + * @return mixed + * @static */ public static function channel($name = null) { @@ -10764,8 +10718,8 @@ namespace Illuminate\Support\Facades { /** * Get the default channel driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -10776,8 +10730,8 @@ namespace Illuminate\Support\Facades { /** * Get the default channel driver name. * - * @return string - * @static + * @return string + * @static */ public static function deliversVia() { @@ -10789,8 +10743,8 @@ namespace Illuminate\Support\Facades { * Set the default channel driver name. * * @param string $channel - * @return void - * @static + * @return void + * @static */ public static function deliverVia($channel) { @@ -10802,8 +10756,8 @@ namespace Illuminate\Support\Facades { * Set the locale of notifications. * * @param string $locale - * @return \Illuminate\Notifications\ChannelManager - * @static + * @return \Illuminate\Notifications\ChannelManager + * @static */ public static function locale($locale) { @@ -10815,9 +10769,9 @@ namespace Illuminate\Support\Facades { * Get a driver instance. * * @param string|null $driver - * @return mixed + * @return mixed * @throws \InvalidArgumentException - * @static + * @static */ public static function driver($driver = null) { @@ -10831,8 +10785,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Notifications\ChannelManager - * @static + * @return \Illuminate\Notifications\ChannelManager + * @static */ public static function extend($driver, $callback) { @@ -10844,8 +10798,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the created "drivers". * - * @return array - * @static + * @return array + * @static */ public static function getDrivers() { @@ -10857,8 +10811,8 @@ namespace Illuminate\Support\Facades { /** * Get the container instance used by the manager. * - * @return \Illuminate\Contracts\Container\Container - * @static + * @return \Illuminate\Contracts\Container\Container + * @static */ public static function getContainer() { @@ -10871,8 +10825,8 @@ namespace Illuminate\Support\Facades { * Set the container instance used by the manager. * * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Notifications\ChannelManager - * @static + * @return \Illuminate\Notifications\ChannelManager + * @static */ public static function setContainer($container) { @@ -10884,8 +10838,8 @@ namespace Illuminate\Support\Facades { /** * Forget all of the resolved driver instances. * - * @return \Illuminate\Notifications\ChannelManager - * @static + * @return \Illuminate\Notifications\ChannelManager + * @static */ public static function forgetDrivers() { @@ -10899,9 +10853,9 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $notification * @param callable|null $callback - * @return void + * @return void * @throws \Exception - * @static + * @static */ public static function assertSentOnDemand($notification, $callback = null) { @@ -10915,9 +10869,9 @@ namespace Illuminate\Support\Facades { * @param mixed $notifiable * @param string|\Closure $notification * @param callable|null $callback - * @return void + * @return void * @throws \Exception - * @static + * @static */ public static function assertSentTo($notifiable, $notification, $callback = null) { @@ -10930,8 +10884,8 @@ namespace Illuminate\Support\Facades { * * @param string $notification * @param int $times - * @return void - * @static + * @return void + * @static */ public static function assertSentOnDemandTimes($notification, $times = 1) { @@ -10945,8 +10899,8 @@ namespace Illuminate\Support\Facades { * @param mixed $notifiable * @param string $notification * @param int $times - * @return void - * @static + * @return void + * @static */ public static function assertSentToTimes($notifiable, $notification, $times = 1) { @@ -10960,9 +10914,9 @@ namespace Illuminate\Support\Facades { * @param mixed $notifiable * @param string|\Closure $notification * @param callable|null $callback - * @return void + * @return void * @throws \Exception - * @static + * @static */ public static function assertNotSentTo($notifiable, $notification, $callback = null) { @@ -10973,8 +10927,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no notifications were sent. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingSent() { @@ -10986,9 +10940,9 @@ namespace Illuminate\Support\Facades { * Assert that no notifications were sent to the given notifiable. * * @param mixed $notifiable - * @return void + * @return void * @throws \Exception - * @static + * @static */ public static function assertNothingSentTo($notifiable) { @@ -11001,8 +10955,8 @@ namespace Illuminate\Support\Facades { * * @param string $notification * @param int $expectedCount - * @return void - * @static + * @return void + * @static */ public static function assertSentTimes($notification, $expectedCount) { @@ -11014,8 +10968,8 @@ namespace Illuminate\Support\Facades { * Assert the total count of notification that were sent. * * @param int $expectedCount - * @return void - * @static + * @return void + * @static */ public static function assertCount($expectedCount) { @@ -11029,8 +10983,8 @@ namespace Illuminate\Support\Facades { * @param mixed $notifiable * @param string $notification * @param callable|null $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function sent($notifiable, $notification, $callback = null) { @@ -11043,8 +10997,8 @@ namespace Illuminate\Support\Facades { * * @param mixed $notifiable * @param string $notification - * @return bool - * @static + * @return bool + * @static */ public static function hasSent($notifiable, $notification) { @@ -11056,8 +11010,8 @@ namespace Illuminate\Support\Facades { * Specify if notification should be serialized and restored when being "pushed" to the queue. * * @param bool $serializeAndRestore - * @return \Illuminate\Support\Testing\Fakes\NotificationFake - * @static + * @return \Illuminate\Support\Testing\Fakes\NotificationFake + * @static */ public static function serializeAndRestore($serializeAndRestore = true) { @@ -11068,8 +11022,8 @@ namespace Illuminate\Support\Facades { /** * Get the notifications that have been sent. * - * @return array - * @static + * @return array + * @static */ public static function sentNotifications() { @@ -11083,8 +11037,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -11096,9 +11050,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -11109,8 +11063,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -11120,8 +11074,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -11130,8 +11084,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @method static string sendResetLink(array $credentials, \Closure|null $callback = null) * @method static mixed reset(array $credentials, \Closure $callback) * @method static \Illuminate\Contracts\Auth\CanResetPassword|null getUser(array $credentials) @@ -11139,6 +11091,7 @@ namespace Illuminate\Support\Facades { * @method static void deleteToken(\Illuminate\Contracts\Auth\CanResetPassword $user) * @method static bool tokenExists(\Illuminate\Contracts\Auth\CanResetPassword $user, string $token) * @method static \Illuminate\Auth\Passwords\TokenRepositoryInterface getRepository() + * @method static \Illuminate\Support\Timebox getTimebox() * @see \Illuminate\Auth\Passwords\PasswordBrokerManager * @see \Illuminate\Auth\Passwords\PasswordBroker */ @@ -11147,8 +11100,8 @@ namespace Illuminate\Support\Facades { * Attempt to get the broker from the local cache. * * @param string|null $name - * @return \Illuminate\Contracts\Auth\PasswordBroker - * @static + * @return \Illuminate\Contracts\Auth\PasswordBroker + * @static */ public static function broker($name = null) { @@ -11159,8 +11112,8 @@ namespace Illuminate\Support\Facades { /** * Get the default password broker name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -11172,8 +11125,8 @@ namespace Illuminate\Support\Facades { * Set the default password broker name. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultDriver($name) { @@ -11183,8 +11136,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Queue\QueueManager * @see \Illuminate\Queue\Queue * @see \Illuminate\Support\Testing\Fakes\QueueFake @@ -11194,8 +11145,8 @@ namespace Illuminate\Support\Facades { * Register an event listener for the before job event. * * @param mixed $callback - * @return void - * @static + * @return void + * @static */ public static function before($callback) { @@ -11207,8 +11158,8 @@ namespace Illuminate\Support\Facades { * Register an event listener for the after job event. * * @param mixed $callback - * @return void - * @static + * @return void + * @static */ public static function after($callback) { @@ -11220,8 +11171,8 @@ namespace Illuminate\Support\Facades { * Register an event listener for the exception occurred job event. * * @param mixed $callback - * @return void - * @static + * @return void + * @static */ public static function exceptionOccurred($callback) { @@ -11233,8 +11184,8 @@ namespace Illuminate\Support\Facades { * Register an event listener for the daemon queue loop. * * @param mixed $callback - * @return void - * @static + * @return void + * @static */ public static function looping($callback) { @@ -11246,8 +11197,8 @@ namespace Illuminate\Support\Facades { * Register an event listener for the failed job event. * * @param mixed $callback - * @return void - * @static + * @return void + * @static */ public static function failing($callback) { @@ -11259,8 +11210,8 @@ namespace Illuminate\Support\Facades { * Register an event listener for the daemon queue stopping. * * @param mixed $callback - * @return void - * @static + * @return void + * @static */ public static function stopping($callback) { @@ -11272,8 +11223,8 @@ namespace Illuminate\Support\Facades { * Determine if the driver is connected. * * @param string|null $name - * @return bool - * @static + * @return bool + * @static */ public static function connected($name = null) { @@ -11285,8 +11236,8 @@ namespace Illuminate\Support\Facades { * Resolve a queue connection instance. * * @param string|null $name - * @return \Illuminate\Contracts\Queue\Queue - * @static + * @return \Illuminate\Contracts\Queue\Queue + * @static */ public static function connection($name = null) { @@ -11299,8 +11250,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $resolver - * @return void - * @static + * @return void + * @static */ public static function extend($driver, $resolver) { @@ -11313,8 +11264,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $resolver - * @return void - * @static + * @return void + * @static */ public static function addConnector($driver, $resolver) { @@ -11325,8 +11276,8 @@ namespace Illuminate\Support\Facades { /** * Get the name of the default queue connection. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -11338,8 +11289,8 @@ namespace Illuminate\Support\Facades { * Set the name of the default queue connection. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultDriver($name) { @@ -11351,8 +11302,8 @@ namespace Illuminate\Support\Facades { * Get the full name for the given connection. * * @param string|null $connection - * @return string - * @static + * @return string + * @static */ public static function getName($connection = null) { @@ -11363,8 +11314,8 @@ namespace Illuminate\Support\Facades { /** * Get the application instance used by the manager. * - * @return \Illuminate\Contracts\Foundation\Application - * @static + * @return \Illuminate\Contracts\Foundation\Application + * @static */ public static function getApplication() { @@ -11376,8 +11327,8 @@ namespace Illuminate\Support\Facades { * Set the application instance used by the manager. * * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Queue\QueueManager - * @static + * @return \Illuminate\Queue\QueueManager + * @static */ public static function setApplication($app) { @@ -11389,8 +11340,8 @@ namespace Illuminate\Support\Facades { * Specify the jobs that should be queued instead of faked. * * @param array|string $jobsToBeQueued - * @return \Illuminate\Support\Testing\Fakes\QueueFake - * @static + * @return \Illuminate\Support\Testing\Fakes\QueueFake + * @static */ public static function except($jobsToBeQueued) { @@ -11403,8 +11354,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $job * @param callable|int|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertPushed($job, $callback = null) { @@ -11418,8 +11369,8 @@ namespace Illuminate\Support\Facades { * @param string $queue * @param string|\Closure $job * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertPushedOn($queue, $job, $callback = null) { @@ -11433,8 +11384,8 @@ namespace Illuminate\Support\Facades { * @param string $job * @param array $expectedChain * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertPushedWithChain($job, $expectedChain = [], $callback = null) { @@ -11447,8 +11398,8 @@ namespace Illuminate\Support\Facades { * * @param string $job * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertPushedWithoutChain($job, $callback = null) { @@ -11460,8 +11411,8 @@ namespace Illuminate\Support\Facades { * Assert if a closure was pushed based on a truth-test callback. * * @param callable|int|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertClosurePushed($callback = null) { @@ -11473,8 +11424,8 @@ namespace Illuminate\Support\Facades { * Assert that a closure was not pushed based on a truth-test callback. * * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertClosureNotPushed($callback = null) { @@ -11487,8 +11438,8 @@ namespace Illuminate\Support\Facades { * * @param string|\Closure $job * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function assertNotPushed($job, $callback = null) { @@ -11500,8 +11451,8 @@ namespace Illuminate\Support\Facades { * Assert the total count of jobs that were pushed. * * @param int $expectedCount - * @return void - * @static + * @return void + * @static */ public static function assertCount($expectedCount) { @@ -11512,8 +11463,8 @@ namespace Illuminate\Support\Facades { /** * Assert that no jobs were pushed. * - * @return void - * @static + * @return void + * @static */ public static function assertNothingPushed() { @@ -11526,8 +11477,8 @@ namespace Illuminate\Support\Facades { * * @param string $job * @param callable|null $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function pushed($job, $callback = null) { @@ -11539,8 +11490,8 @@ namespace Illuminate\Support\Facades { * Get all of the raw pushes matching a truth-test callback. * * @param null|\Closure(string, ?string, array): bool $callback - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function pushedRaw($callback = null) { @@ -11552,8 +11503,8 @@ namespace Illuminate\Support\Facades { * Determine if there are any stored jobs for a given class. * * @param string $job - * @return bool - * @static + * @return bool + * @static */ public static function hasPushed($job) { @@ -11565,8 +11516,8 @@ namespace Illuminate\Support\Facades { * Get the size of the queue. * * @param string|null $queue - * @return int - * @static + * @return int + * @static */ public static function size($queue = null) { @@ -11580,8 +11531,8 @@ namespace Illuminate\Support\Facades { * @param string|object $job * @param mixed $data * @param string|null $queue - * @return mixed - * @static + * @return mixed + * @static */ public static function push($job, $data = '', $queue = null) { @@ -11593,8 +11544,8 @@ namespace Illuminate\Support\Facades { * Determine if a job should be faked or actually dispatched. * * @param object $job - * @return bool - * @static + * @return bool + * @static */ public static function shouldFakeJob($job) { @@ -11608,8 +11559,8 @@ namespace Illuminate\Support\Facades { * @param string $payload * @param string|null $queue * @param array $options - * @return mixed - * @static + * @return mixed + * @static */ public static function pushRaw($payload, $queue = null, $options = []) { @@ -11624,8 +11575,8 @@ namespace Illuminate\Support\Facades { * @param string|object $job * @param mixed $data * @param string|null $queue - * @return mixed - * @static + * @return mixed + * @static */ public static function later($delay, $job, $data = '', $queue = null) { @@ -11639,8 +11590,8 @@ namespace Illuminate\Support\Facades { * @param string $queue * @param string|object $job * @param mixed $data - * @return mixed - * @static + * @return mixed + * @static */ public static function pushOn($queue, $job, $data = '') { @@ -11655,8 +11606,8 @@ namespace Illuminate\Support\Facades { * @param \DateTimeInterface|\DateInterval|int $delay * @param string|object $job * @param mixed $data - * @return mixed - * @static + * @return mixed + * @static */ public static function laterOn($queue, $delay, $job, $data = '') { @@ -11668,8 +11619,8 @@ namespace Illuminate\Support\Facades { * Pop the next job off of the queue. * * @param string|null $queue - * @return \Illuminate\Contracts\Queue\Job|null - * @static + * @return \Illuminate\Contracts\Queue\Job|null + * @static */ public static function pop($queue = null) { @@ -11683,8 +11634,8 @@ namespace Illuminate\Support\Facades { * @param array $jobs * @param mixed $data * @param string|null $queue - * @return mixed - * @static + * @return mixed + * @static */ public static function bulk($jobs, $data = '', $queue = null) { @@ -11695,8 +11646,8 @@ namespace Illuminate\Support\Facades { /** * Get the jobs that have been pushed. * - * @return array - * @static + * @return array + * @static */ public static function pushedJobs() { @@ -11707,8 +11658,8 @@ namespace Illuminate\Support\Facades { /** * Get the payloads that were pushed raw. * - * @return list - * @static + * @return list + * @static */ public static function rawPushes() { @@ -11720,8 +11671,8 @@ namespace Illuminate\Support\Facades { * Specify if jobs should be serialized and restored when being "pushed" to the queue. * * @param bool $serializeAndRestore - * @return \Illuminate\Support\Testing\Fakes\QueueFake - * @static + * @return \Illuminate\Support\Testing\Fakes\QueueFake + * @static */ public static function serializeAndRestore($serializeAndRestore = true) { @@ -11732,8 +11683,8 @@ namespace Illuminate\Support\Facades { /** * Get the connection name for the queue. * - * @return string - * @static + * @return string + * @static */ public static function getConnectionName() { @@ -11745,8 +11696,8 @@ namespace Illuminate\Support\Facades { * Set the connection name for the queue. * * @param string $name - * @return \Illuminate\Support\Testing\Fakes\QueueFake - * @static + * @return \Illuminate\Support\Testing\Fakes\QueueFake + * @static */ public static function setConnectionName($name) { @@ -11758,8 +11709,8 @@ namespace Illuminate\Support\Facades { * Get the maximum number of attempts for an object-based queue handler. * * @param mixed $job - * @return mixed - * @static + * @return mixed + * @static */ public static function getJobTries($job) { @@ -11772,8 +11723,8 @@ namespace Illuminate\Support\Facades { * Get the backoff for an object-based queue handler. * * @param mixed $job - * @return mixed - * @static + * @return mixed + * @static */ public static function getJobBackoff($job) { @@ -11786,8 +11737,8 @@ namespace Illuminate\Support\Facades { * Get the expiration timestamp for an object-based queue handler. * * @param mixed $job - * @return mixed - * @static + * @return mixed + * @static */ public static function getJobExpiration($job) { @@ -11800,8 +11751,8 @@ namespace Illuminate\Support\Facades { * Register a callback to be executed when creating job payloads. * * @param callable|null $callback - * @return void - * @static + * @return void + * @static */ public static function createPayloadUsing($callback) { @@ -11812,8 +11763,8 @@ namespace Illuminate\Support\Facades { /** * Get the container instance being used by the connection. * - * @return \Illuminate\Container\Container - * @static + * @return \Illuminate\Container\Container + * @static */ public static function getContainer() { @@ -11826,8 +11777,8 @@ namespace Illuminate\Support\Facades { * Set the IoC container instance. * * @param \Illuminate\Container\Container $container - * @return void - * @static + * @return void + * @static */ public static function setContainer($container) { @@ -11838,8 +11789,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Routing\Redirector */ class Redirect { @@ -11849,8 +11798,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param mixed $fallback - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function back($status = 302, $headers = [], $fallback = false) { @@ -11863,8 +11812,8 @@ namespace Illuminate\Support\Facades { * * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function refresh($status = 302, $headers = []) { @@ -11879,8 +11828,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function guest($path, $status = 302, $headers = [], $secure = null) { @@ -11895,8 +11844,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function intended($default = '/', $status = 302, $headers = [], $secure = null) { @@ -11911,8 +11860,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function to($path, $status = 302, $headers = [], $secure = null) { @@ -11926,8 +11875,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function away($path, $status = 302, $headers = []) { @@ -11941,8 +11890,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function secure($path, $status = 302, $headers = []) { @@ -11957,8 +11906,8 @@ namespace Illuminate\Support\Facades { * @param mixed $parameters * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function route($route, $parameters = [], $status = 302, $headers = []) { @@ -11974,8 +11923,8 @@ namespace Illuminate\Support\Facades { * @param \DateTimeInterface|\DateInterval|int|null $expiration * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function signedRoute($route, $parameters = [], $expiration = null, $status = 302, $headers = []) { @@ -11991,8 +11940,8 @@ namespace Illuminate\Support\Facades { * @param mixed $parameters * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function temporarySignedRoute($route, $expiration, $parameters = [], $status = 302, $headers = []) { @@ -12007,8 +11956,8 @@ namespace Illuminate\Support\Facades { * @param mixed $parameters * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function action($action, $parameters = [], $status = 302, $headers = []) { @@ -12019,8 +11968,8 @@ namespace Illuminate\Support\Facades { /** * Get the URL generator instance. * - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function getUrlGenerator() { @@ -12032,8 +11981,8 @@ namespace Illuminate\Support\Facades { * Set the active session store. * * @param \Illuminate\Session\Store $session - * @return void - * @static + * @return void + * @static */ public static function setSession($session) { @@ -12044,8 +11993,8 @@ namespace Illuminate\Support\Facades { /** * Get the "intended" URL from the session. * - * @return string|null - * @static + * @return string|null + * @static */ public static function getIntendedUrl() { @@ -12057,8 +12006,8 @@ namespace Illuminate\Support\Facades { * Set the "intended" URL in the session. * * @param string $url - * @return \Illuminate\Routing\Redirector - * @static + * @return \Illuminate\Routing\Redirector + * @static */ public static function setIntendedUrl($url) { @@ -12072,8 +12021,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -12085,9 +12034,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -12098,8 +12047,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -12109,8 +12058,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -12119,19 +12068,14 @@ namespace Illuminate\Support\Facades { } /** - * - * - * @method static array validate(array $rules, ...$params) - * @method static array validateWithBag(string $errorBag, array $rules, ...$params) - * @method static bool hasValidSignature(bool $absolute = true) * @see \Illuminate\Http\Request */ class Request { /** * Create a new Illuminate HTTP request from server variables. * - * @return static - * @static + * @return static + * @static */ public static function capture() { @@ -12141,8 +12085,8 @@ namespace Illuminate\Support\Facades { /** * Return the Request instance. * - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function instance() { @@ -12153,8 +12097,8 @@ namespace Illuminate\Support\Facades { /** * Get the request method. * - * @return string - * @static + * @return string + * @static */ public static function method() { @@ -12165,8 +12109,8 @@ namespace Illuminate\Support\Facades { /** * Get a URI instance for the request. * - * @return \Illuminate\Support\Uri - * @static + * @return \Illuminate\Support\Uri + * @static */ public static function uri() { @@ -12177,8 +12121,8 @@ namespace Illuminate\Support\Facades { /** * Get the root URL for the application. * - * @return string - * @static + * @return string + * @static */ public static function root() { @@ -12189,8 +12133,8 @@ namespace Illuminate\Support\Facades { /** * Get the URL (no query string) for the request. * - * @return string - * @static + * @return string + * @static */ public static function url() { @@ -12201,8 +12145,8 @@ namespace Illuminate\Support\Facades { /** * Get the full URL for the request. * - * @return string - * @static + * @return string + * @static */ public static function fullUrl() { @@ -12214,8 +12158,8 @@ namespace Illuminate\Support\Facades { * Get the full URL for the request with the added query string parameters. * * @param array $query - * @return string - * @static + * @return string + * @static */ public static function fullUrlWithQuery($query) { @@ -12227,8 +12171,8 @@ namespace Illuminate\Support\Facades { * Get the full URL for the request without the given query string parameters. * * @param array|string $keys - * @return string - * @static + * @return string + * @static */ public static function fullUrlWithoutQuery($keys) { @@ -12239,8 +12183,8 @@ namespace Illuminate\Support\Facades { /** * Get the current path info for the request. * - * @return string - * @static + * @return string + * @static */ public static function path() { @@ -12251,8 +12195,8 @@ namespace Illuminate\Support\Facades { /** * Get the current decoded path info for the request. * - * @return string - * @static + * @return string + * @static */ public static function decodedPath() { @@ -12265,8 +12209,8 @@ namespace Illuminate\Support\Facades { * * @param int $index * @param string|null $default - * @return string|null - * @static + * @return string|null + * @static */ public static function segment($index, $default = null) { @@ -12277,8 +12221,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the segments for the request path. * - * @return array - * @static + * @return array + * @static */ public static function segments() { @@ -12290,8 +12234,8 @@ namespace Illuminate\Support\Facades { * Determine if the current request URI matches a pattern. * * @param mixed $patterns - * @return bool - * @static + * @return bool + * @static */ public static function is(...$patterns) { @@ -12303,8 +12247,8 @@ namespace Illuminate\Support\Facades { * Determine if the route name matches a given pattern. * * @param mixed $patterns - * @return bool - * @static + * @return bool + * @static */ public static function routeIs(...$patterns) { @@ -12316,8 +12260,8 @@ namespace Illuminate\Support\Facades { * Determine if the current request URL and query string match a pattern. * * @param mixed $patterns - * @return bool - * @static + * @return bool + * @static */ public static function fullUrlIs(...$patterns) { @@ -12328,8 +12272,8 @@ namespace Illuminate\Support\Facades { /** * Get the host name. * - * @return string - * @static + * @return string + * @static */ public static function host() { @@ -12340,8 +12284,8 @@ namespace Illuminate\Support\Facades { /** * Get the HTTP host being requested. * - * @return string - * @static + * @return string + * @static */ public static function httpHost() { @@ -12352,8 +12296,8 @@ namespace Illuminate\Support\Facades { /** * Get the scheme and HTTP host. * - * @return string - * @static + * @return string + * @static */ public static function schemeAndHttpHost() { @@ -12364,8 +12308,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the request is the result of an AJAX call. * - * @return bool - * @static + * @return bool + * @static */ public static function ajax() { @@ -12376,8 +12320,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the request is the result of a PJAX call. * - * @return bool - * @static + * @return bool + * @static */ public static function pjax() { @@ -12388,8 +12332,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the request is the result of a prefetch call. * - * @return bool - * @static + * @return bool + * @static */ public static function prefetch() { @@ -12400,8 +12344,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the request is over HTTPS. * - * @return bool - * @static + * @return bool + * @static */ public static function secure() { @@ -12412,8 +12356,8 @@ namespace Illuminate\Support\Facades { /** * Get the client IP address. * - * @return string|null - * @static + * @return string|null + * @static */ public static function ip() { @@ -12424,8 +12368,8 @@ namespace Illuminate\Support\Facades { /** * Get the client IP addresses. * - * @return array - * @static + * @return array + * @static */ public static function ips() { @@ -12436,8 +12380,8 @@ namespace Illuminate\Support\Facades { /** * Get the client user agent. * - * @return string|null - * @static + * @return string|null + * @static */ public static function userAgent() { @@ -12449,8 +12393,8 @@ namespace Illuminate\Support\Facades { * Merge new input into the current request's input array. * * @param array $input - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function merge($input) { @@ -12462,8 +12406,8 @@ namespace Illuminate\Support\Facades { * Merge new input into the request's input, but only when that key is missing from the request. * * @param array $input - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function mergeIfMissing($input) { @@ -12475,8 +12419,8 @@ namespace Illuminate\Support\Facades { * Replace the input values for the current request. * * @param array $input - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function replace($input) { @@ -12486,13 +12430,13 @@ namespace Illuminate\Support\Facades { /** * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel. - * + * * Instead, you may use the "input" method. * * @param string $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function get($key, $default = null) { @@ -12505,8 +12449,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param mixed $default - * @return \Symfony\Component\HttpFoundation\InputBag|mixed - * @static + * @return \Symfony\Component\HttpFoundation\InputBag|mixed + * @static */ public static function json($key = null, $default = null) { @@ -12519,8 +12463,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Http\Request $from * @param \Illuminate\Http\Request|null $to - * @return static - * @static + * @return static + * @static */ public static function createFrom($from, $to = null) { @@ -12531,8 +12475,8 @@ namespace Illuminate\Support\Facades { * Create an Illuminate request from a Symfony instance. * * @param \Symfony\Component\HttpFoundation\Request $request - * @return static - * @static + * @return static + * @static */ public static function createFromBase($request) { @@ -12542,14 +12486,14 @@ namespace Illuminate\Support\Facades { /** * Clones a request and overrides some of its parameters. * - * @return static + * @return static * @param array|null $query The GET parameters * @param array|null $request The POST parameters * @param array|null $attributes The request attributes (parameters parsed from the PATH_INFO, ...) * @param array|null $cookies The COOKIE parameters * @param array|null $files The FILES parameters * @param array|null $server The SERVER parameters - * @static + * @static */ public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null) { @@ -12559,13 +12503,13 @@ namespace Illuminate\Support\Facades { /** * Whether the request contains a Session object. - * + * * This method does not give any information about the state of the session object, * like whether the session is started or not. It is just a way to check if this Request * is associated with a Session instance. * * @param bool $skipIfUninitialized When true, ignores factories injected by `setSessionFactory` - * @static + * @static */ public static function hasSession($skipIfUninitialized = false) { @@ -12577,7 +12521,7 @@ namespace Illuminate\Support\Facades { * Gets the Session. * * @throws SessionNotFoundException When session is not set properly - * @static + * @static */ public static function getSession() { @@ -12588,9 +12532,9 @@ namespace Illuminate\Support\Facades { /** * Get the session associated with the request. * - * @return \Illuminate\Contracts\Session\Session + * @return \Illuminate\Contracts\Session\Session * @throws \RuntimeException - * @static + * @static */ public static function session() { @@ -12602,8 +12546,8 @@ namespace Illuminate\Support\Facades { * Set the session instance on the request. * * @param \Illuminate\Contracts\Session\Session $session - * @return void - * @static + * @return void + * @static */ public static function setLaravelSession($session) { @@ -12615,8 +12559,8 @@ namespace Illuminate\Support\Facades { * Set the locale for the request instance. * * @param string $locale - * @return void - * @static + * @return void + * @static */ public static function setRequestLocale($locale) { @@ -12628,8 +12572,8 @@ namespace Illuminate\Support\Facades { * Set the default locale for the request instance. * * @param string $locale - * @return void - * @static + * @return void + * @static */ public static function setDefaultRequestLocale($locale) { @@ -12641,8 +12585,8 @@ namespace Illuminate\Support\Facades { * Get the user making the request. * * @param string|null $guard - * @return mixed - * @static + * @return mixed + * @static */ public static function user($guard = null) { @@ -12655,8 +12599,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $param * @param mixed $default - * @return \Illuminate\Routing\Route|object|string|null - * @static + * @return \Illuminate\Routing\Route|object|string|null + * @static */ public static function route($param = null, $default = null) { @@ -12667,9 +12611,9 @@ namespace Illuminate\Support\Facades { /** * Get a unique fingerprint for the request / route / IP address. * - * @return string + * @return string * @throws \RuntimeException - * @static + * @static */ public static function fingerprint() { @@ -12681,8 +12625,8 @@ namespace Illuminate\Support\Facades { * Set the JSON payload for the request. * * @param \Symfony\Component\HttpFoundation\InputBag $json - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function setJson($json) { @@ -12693,8 +12637,8 @@ namespace Illuminate\Support\Facades { /** * Get the user resolver callback. * - * @return \Closure - * @static + * @return \Closure + * @static */ public static function getUserResolver() { @@ -12706,8 +12650,8 @@ namespace Illuminate\Support\Facades { * Set the user resolver callback. * * @param \Closure $callback - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function setUserResolver($callback) { @@ -12718,8 +12662,8 @@ namespace Illuminate\Support\Facades { /** * Get the route resolver callback. * - * @return \Closure - * @static + * @return \Closure + * @static */ public static function getRouteResolver() { @@ -12731,8 +12675,8 @@ namespace Illuminate\Support\Facades { * Set the route resolver callback. * * @param \Closure $callback - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function setRouteResolver($callback) { @@ -12743,8 +12687,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the input and files for the request. * - * @return array - * @static + * @return array + * @static */ public static function toArray() { @@ -12756,8 +12700,8 @@ namespace Illuminate\Support\Facades { * Determine if the given offset exists. * * @param string $offset - * @return bool - * @static + * @return bool + * @static */ public static function offsetExists($offset) { @@ -12769,8 +12713,8 @@ namespace Illuminate\Support\Facades { * Get the value at the given offset. * * @param string $offset - * @return mixed - * @static + * @return mixed + * @static */ public static function offsetGet($offset) { @@ -12783,8 +12727,8 @@ namespace Illuminate\Support\Facades { * * @param string $offset * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function offsetSet($offset, $value) { @@ -12796,8 +12740,8 @@ namespace Illuminate\Support\Facades { * Remove the value at the given offset. * * @param string $offset - * @return void - * @static + * @return void + * @static */ public static function offsetUnset($offset) { @@ -12807,7 +12751,7 @@ namespace Illuminate\Support\Facades { /** * Sets the parameters for this request. - * + * * This method also re-initializes all properties. * * @param array $query The GET parameters @@ -12817,7 +12761,7 @@ namespace Illuminate\Support\Facades { * @param array $files The FILES parameters * @param array $server The SERVER parameters * @param string|resource|null $content The raw body data - * @static + * @static */ public static function initialize($query = [], $request = [], $attributes = [], $cookies = [], $files = [], $server = [], $content = null) { @@ -12829,7 +12773,7 @@ namespace Illuminate\Support\Facades { /** * Creates a new request with values from PHP's super globals. * - * @static + * @static */ public static function createFromGlobals() { @@ -12839,7 +12783,7 @@ namespace Illuminate\Support\Facades { /** * Creates a Request based on a given URI and configuration. - * + * * The information contained in the URI always take precedence * over the other information (server and parameters). * @@ -12851,7 +12795,7 @@ namespace Illuminate\Support\Facades { * @param array $server The server parameters ($_SERVER) * @param string|resource|null $content The raw body data * @throws BadRequestException When the URI is invalid - * @static + * @static */ public static function create($uri, $method = 'GET', $parameters = [], $cookies = [], $files = [], $server = [], $content = null) { @@ -12861,12 +12805,12 @@ namespace Illuminate\Support\Facades { /** * Sets a callable able to create a Request instance. - * + * * This is mainly useful when you need to override the Request class * to keep BC with an existing system. It should not be used for any * other purpose. * - * @static + * @static */ public static function setFactory($callable) { @@ -12876,11 +12820,11 @@ namespace Illuminate\Support\Facades { /** * Overrides the PHP global variables according to this request instance. - * + * * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE. * $_FILES is never overridden, see rfc1867 * - * @static + * @static */ public static function overrideGlobals() { @@ -12891,12 +12835,12 @@ namespace Illuminate\Support\Facades { /** * Sets a list of trusted proxies. - * + * * You should only list the reverse proxies that you manage directly. * * @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR'] and 'PRIVATE_SUBNETS' by IpUtils::PRIVATE_SUBNETS * @param int-mask-of $trustedHeaderSet A bit field to set which headers to trust from your proxies - * @static + * @static */ public static function setTrustedProxies($proxies, $trustedHeaderSet) { @@ -12907,8 +12851,8 @@ namespace Illuminate\Support\Facades { /** * Gets the list of trusted proxies. * - * @return string[] - * @static + * @return string[] + * @static */ public static function getTrustedProxies() { @@ -12920,7 +12864,7 @@ namespace Illuminate\Support\Facades { * Gets the set of trusted headers from trusted proxies. * * @return int A bit field of Request::HEADER_* that defines which headers are trusted from your proxies - * @static + * @static */ public static function getTrustedHeaderSet() { @@ -12930,11 +12874,11 @@ namespace Illuminate\Support\Facades { /** * Sets a list of trusted host patterns. - * + * * You should only list the hosts you manage using regexs. * * @param array $hostPatterns A list of trusted host patterns - * @static + * @static */ public static function setTrustedHosts($hostPatterns) { @@ -12945,8 +12889,8 @@ namespace Illuminate\Support\Facades { /** * Gets the list of trusted host patterns. * - * @return string[] - * @static + * @return string[] + * @static */ public static function getTrustedHosts() { @@ -12956,11 +12900,11 @@ namespace Illuminate\Support\Facades { /** * Normalizes a query string. - * + * * It builds a normalized query string, where keys/value pairs are alphabetized, * have consistent escaping and unneeded delimiters are removed. * - * @static + * @static */ public static function normalizeQueryString($qs) { @@ -12970,16 +12914,16 @@ namespace Illuminate\Support\Facades { /** * Enables support for the _method request parameter to determine the intended HTTP method. - * + * * Be warned that enabling this feature might lead to CSRF issues in your code. * Check that you are using CSRF tokens when required. * If the HTTP method parameter override is enabled, an html-form with method "POST" can be altered * and used to send a "PUT" or "DELETE" request via the _method request parameter. * If these methods are not protected against CSRF, this presents a possible vulnerability. - * + * * The HTTP method can only be overridden when the real HTTP method is POST. * - * @static + * @static */ public static function enableHttpMethodParameterOverride() { @@ -12990,7 +12934,7 @@ namespace Illuminate\Support\Facades { /** * Checks whether support for the _method request parameter is enabled. * - * @static + * @static */ public static function getHttpMethodParameterOverride() { @@ -12998,11 +12942,39 @@ namespace Illuminate\Support\Facades { return \Illuminate\Http\Request::getHttpMethodParameterOverride(); } + /** + * Sets the list of HTTP methods that can be overridden. + * + * Set to null to allow all methods to be overridden (default). Set to an + * empty array to disallow overrides entirely. Otherwise, provide the list + * of uppercased method names that are allowed. + * + * @param \Symfony\Component\HttpFoundation\uppercase-string[]|null $methods + * @static + */ + public static function setAllowedHttpMethodOverride($methods) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::setAllowedHttpMethodOverride($methods); + } + + /** + * Gets the list of HTTP methods that can be overridden. + * + * @return \Symfony\Component\HttpFoundation\uppercase-string[]|null + * @static + */ + public static function getAllowedHttpMethodOverride() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getAllowedHttpMethodOverride(); + } + /** * Whether the request contains a Session which was started in one of the * previous requests. * - * @static + * @static */ public static function hasPreviousSession() { @@ -13012,9 +12984,7 @@ namespace Illuminate\Support\Facades { } /** - * - * - * @static + * @static */ public static function setSession($session) { @@ -13024,11 +12994,9 @@ namespace Illuminate\Support\Facades { } /** - * - * - * @internal + * @internal * @param callable(): SessionInterface $factory - * @static + * @static */ public static function setSessionFactory($factory) { @@ -13039,15 +13007,15 @@ namespace Illuminate\Support\Facades { /** * Returns the client IP addresses. - * + * * In the returned array the most trusted IP address is first, and the * least trusted one last. The "real" client IP address is the last one, * but this is also the least trusted one. Trusted proxies are stripped. - * + * * Use this method carefully; you should use getClientIp() instead. * * @see getClientIp() - * @static + * @static */ public static function getClientIps() { @@ -13058,20 +13026,20 @@ namespace Illuminate\Support\Facades { /** * Returns the client IP address. - * + * * This method can read the client IP address from the "X-Forwarded-For" header * when trusted proxies were set via "setTrustedProxies()". The "X-Forwarded-For" * header value is a comma+space separated list of IP addresses, the left-most * being the original client, and each successive proxy that passed the request * adding the IP address where it received the request from. - * + * * If your reverse proxy uses a different header name than "X-Forwarded-For", * ("Client-Ip" for instance), configure it via the $trustedHeaderSet * argument of the Request::setTrustedProxies() method instead. * * @see getClientIps() * @see https://wikipedia.org/wiki/X-Forwarded-For - * @static + * @static */ public static function getClientIp() { @@ -13083,7 +13051,7 @@ namespace Illuminate\Support\Facades { /** * Returns current script name. * - * @static + * @static */ public static function getScriptName() { @@ -13094,18 +13062,18 @@ namespace Illuminate\Support\Facades { /** * Returns the path being requested relative to the executed script. - * + * * The path info always starts with a /. - * + * * Suppose this request is instantiated from /mysite on localhost: - * - * * http://localhost/mysite returns an empty string + * + * * http://localhost/mysite returns '/' * * http://localhost/mysite/about returns '/about' * * http://localhost/mysite/enco%20ded returns '/enco%20ded' * * http://localhost/mysite/about?var=1 returns '/about' * * @return string The raw path (i.e. not urldecoded) - * @static + * @static */ public static function getPathInfo() { @@ -13116,16 +13084,16 @@ namespace Illuminate\Support\Facades { /** * Returns the root path from which this request is executed. - * + * * Suppose that an index.php file instantiates this request object: - * + * * * http://localhost/index.php returns an empty string * * http://localhost/index.php/page returns an empty string * * http://localhost/web/index.php returns '/web' * * http://localhost/we%20b/index.php returns '/we%20b' * * @return string The raw path (i.e. not urldecoded) - * @static + * @static */ public static function getBasePath() { @@ -13136,14 +13104,14 @@ namespace Illuminate\Support\Facades { /** * Returns the root URL from which this request is executed. - * + * * The base URL never ends with a /. - * + * * This is similar to getBasePath(), except that it also includes the * script filename (e.g. index.php) if one exists. * * @return string The raw URL (i.e. not urldecoded) - * @static + * @static */ public static function getBaseUrl() { @@ -13155,7 +13123,7 @@ namespace Illuminate\Support\Facades { /** * Gets the request's scheme. * - * @static + * @static */ public static function getScheme() { @@ -13166,14 +13134,14 @@ namespace Illuminate\Support\Facades { /** * Returns the port on which the request is made. - * + * * This method can read the client port from the "X-Forwarded-Port" header * when trusted proxies were set via "setTrustedProxies()". - * + * * The "X-Forwarded-Port" header must contain the client port. * * @return int|string|null Can be a string if fetched from the server bag - * @static + * @static */ public static function getPort() { @@ -13185,7 +13153,7 @@ namespace Illuminate\Support\Facades { /** * Returns the user. * - * @static + * @static */ public static function getUser() { @@ -13197,7 +13165,7 @@ namespace Illuminate\Support\Facades { /** * Returns the password. * - * @static + * @static */ public static function getPassword() { @@ -13210,7 +13178,7 @@ namespace Illuminate\Support\Facades { * Gets the user info. * * @return string|null A user name if any and, optionally, scheme-specific information about how to gain authorization to access the server - * @static + * @static */ public static function getUserInfo() { @@ -13221,10 +13189,10 @@ namespace Illuminate\Support\Facades { /** * Returns the HTTP host being requested. - * + * * The port name will be appended to the host if it's non-standard. * - * @static + * @static */ public static function getHttpHost() { @@ -13237,7 +13205,7 @@ namespace Illuminate\Support\Facades { * Returns the requested URI (path and query string). * * @return string The raw URI (i.e. not URI decoded) - * @static + * @static */ public static function getRequestUri() { @@ -13248,11 +13216,11 @@ namespace Illuminate\Support\Facades { /** * Gets the scheme and HTTP host. - * + * * If the URL was called with basic authentication, the user * and the password are not added to the generated string. * - * @static + * @static */ public static function getSchemeAndHttpHost() { @@ -13265,7 +13233,7 @@ namespace Illuminate\Support\Facades { * Generates a normalized URI (URL) for the Request. * * @see getQueryString() - * @static + * @static */ public static function getUri() { @@ -13278,7 +13246,7 @@ namespace Illuminate\Support\Facades { * Generates a normalized URI for the given path. * * @param string $path A path to use instead of the current one - * @static + * @static */ public static function getUriForPath($path) { @@ -13289,12 +13257,12 @@ namespace Illuminate\Support\Facades { /** * Returns the path as relative reference from the current Request path. - * + * * Only the URIs path component (no schema, host etc.) is relevant and must be given. * Both paths must be absolute and not contain relative parts. * Relative URLs from one resource to another are useful when generating self-contained downloadable document archives. * Furthermore, they can be used to reduce the link size in documents. - * + * * Example target paths, given a base path of "/a/b/c/d": * - "/a/b/c/d" -> "" * - "/a/b/c/" -> "./" @@ -13302,7 +13270,7 @@ namespace Illuminate\Support\Facades { * - "/a/b/c/other" -> "other" * - "/a/x/y" -> "../../x/y" * - * @static + * @static */ public static function getRelativeUriForPath($path) { @@ -13313,11 +13281,11 @@ namespace Illuminate\Support\Facades { /** * Generates the normalized query string for the Request. - * + * * It builds a normalized query string, where keys/value pairs are alphabetized * and have consistent escaping. * - * @static + * @static */ public static function getQueryString() { @@ -13328,13 +13296,13 @@ namespace Illuminate\Support\Facades { /** * Checks whether the request is secure or not. - * + * * This method can read the client protocol from the "X-Forwarded-Proto" header * when trusted proxies were set via "setTrustedProxies()". - * + * * The "X-Forwarded-Proto" header must contain the protocol: "https" or "http". * - * @static + * @static */ public static function isSecure() { @@ -13345,14 +13313,14 @@ namespace Illuminate\Support\Facades { /** * Returns the host name. - * + * * This method can read the client host name from the "X-Forwarded-Host" header * when trusted proxies were set via "setTrustedProxies()". - * + * * The "X-Forwarded-Host" header must contain the client host name. * * @throws SuspiciousOperationException when the host name is invalid or not trusted - * @static + * @static */ public static function getHost() { @@ -13364,7 +13332,7 @@ namespace Illuminate\Support\Facades { /** * Sets the request method. * - * @static + * @static */ public static function setMethod($method) { @@ -13375,17 +13343,17 @@ namespace Illuminate\Support\Facades { /** * Gets the request "intended" method. - * + * * If the X-HTTP-Method-Override header is set, and if the method is a POST, * then it is used to determine the "real" intended HTTP method. - * + * * The _method request parameter can also be used to determine the HTTP method, * but only if enableHttpMethodParameterOverride() has been called. - * + * * The method is always an uppercased string. * * @see getRealMethod() - * @static + * @static */ public static function getMethod() { @@ -13398,7 +13366,7 @@ namespace Illuminate\Support\Facades { * Gets the "real" request method. * * @see getMethod() - * @static + * @static */ public static function getRealMethod() { @@ -13410,7 +13378,7 @@ namespace Illuminate\Support\Facades { /** * Gets the mime type associated with the format. * - * @static + * @static */ public static function getMimeType($format) { @@ -13422,8 +13390,8 @@ namespace Illuminate\Support\Facades { /** * Gets the mime types associated with the format. * - * @return string[] - * @static + * @return string[] + * @static */ public static function getMimeTypes($format) { @@ -13434,7 +13402,18 @@ namespace Illuminate\Support\Facades { /** * Gets the format associated with the mime type. * - * @static + * Resolution order: + * 1) Exact match on the full MIME type (e.g. "application/json"). + * 2) Match on the canonical MIME type (i.e. before the first ";" parameter). + * 3) If the type is "application/*+suffix", use the structured syntax suffix + * mapping (e.g. "application/foo+json" → "json"), when available. + * 4) If $subtypeFallback is true and no match was found: + * - return the MIME subtype (without "x-" prefix), provided it does not + * contain a "+" (e.g. "application/x-yaml" → "yaml", "text/csv" → "csv"). + * + * @param string|null $mimeType The mime type to check + * @param bool $subtypeFallback Whether to fall back to the subtype if no exact match is found + * @static */ public static function getFormat($mimeType) { @@ -13446,8 +13425,9 @@ namespace Illuminate\Support\Facades { /** * Associates a format with mime types. * + * @param string $format The format to set * @param string|string[] $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type) - * @static + * @static */ public static function setFormat($format, $mimeTypes) { @@ -13458,15 +13438,15 @@ namespace Illuminate\Support\Facades { /** * Gets the request format. - * + * * Here is the process to determine the format: - * + * * * format defined by the user (with setRequestFormat()) * * _format request attribute * * $default * * @see getPreferredFormat - * @static + * @static */ public static function getRequestFormat($default = 'html') { @@ -13478,7 +13458,7 @@ namespace Illuminate\Support\Facades { /** * Sets the request format. * - * @static + * @static */ public static function setRequestFormat($format) { @@ -13491,7 +13471,7 @@ namespace Illuminate\Support\Facades { * Gets the usual name of the format associated with the request's media type (provided in the Content-Type header). * * @see Request::$formats - * @static + * @static */ public static function getContentTypeFormat() { @@ -13503,7 +13483,7 @@ namespace Illuminate\Support\Facades { /** * Sets the default locale. * - * @static + * @static */ public static function setDefaultLocale($locale) { @@ -13515,7 +13495,7 @@ namespace Illuminate\Support\Facades { /** * Get the default locale. * - * @static + * @static */ public static function getDefaultLocale() { @@ -13527,7 +13507,7 @@ namespace Illuminate\Support\Facades { /** * Sets the locale. * - * @static + * @static */ public static function setLocale($locale) { @@ -13539,7 +13519,7 @@ namespace Illuminate\Support\Facades { /** * Get the locale. * - * @static + * @static */ public static function getLocale() { @@ -13552,7 +13532,7 @@ namespace Illuminate\Support\Facades { * Checks if the request method is of specified type. * * @param string $method Uppercase request method (GET, POST etc) - * @static + * @static */ public static function isMethod($method) { @@ -13565,7 +13545,7 @@ namespace Illuminate\Support\Facades { * Checks whether or not the method is safe. * * @see https://tools.ietf.org/html/rfc7231#section-4.2.1 - * @static + * @static */ public static function isMethodSafe() { @@ -13577,7 +13557,7 @@ namespace Illuminate\Support\Facades { /** * Checks whether or not the method is idempotent. * - * @static + * @static */ public static function isMethodIdempotent() { @@ -13590,7 +13570,7 @@ namespace Illuminate\Support\Facades { * Checks whether the method is cacheable or not. * * @see https://tools.ietf.org/html/rfc7231#section-4.2.3 - * @static + * @static */ public static function isMethodCacheable() { @@ -13601,14 +13581,14 @@ namespace Illuminate\Support\Facades { /** * Returns the protocol version. - * + * * If the application is behind a proxy, the protocol version used in the * requests between the client and the proxy and between the proxy and the * server might be different. This returns the former (from the "Via" header) * if the proxy is trusted (see "setTrustedProxies()"), otherwise it returns * the latter (from the "SERVER_PROTOCOL" server parameter). * - * @static + * @static */ public static function getProtocolVersion() { @@ -13621,9 +13601,9 @@ namespace Illuminate\Support\Facades { * Returns the request body content. * * @param bool $asResource If true, a resource will be returned - * @return string|resource + * @return string|resource * @psalm-return ($asResource is true ? resource : string) - * @static + * @static */ public static function getContent($asResource = false) { @@ -13636,7 +13616,7 @@ namespace Illuminate\Support\Facades { * Gets the decoded form or json request body. * * @throws JsonException When the body cannot be decoded to an array - * @static + * @static */ public static function getPayload() { @@ -13648,7 +13628,7 @@ namespace Illuminate\Support\Facades { /** * Gets the Etags. * - * @static + * @static */ public static function getETags() { @@ -13658,9 +13638,7 @@ namespace Illuminate\Support\Facades { } /** - * - * - * @static + * @static */ public static function isNoCache() { @@ -13673,11 +13651,11 @@ namespace Illuminate\Support\Facades { * Gets the preferred format for the response by inspecting, in the following order: * * the request format set using setRequestFormat; * * the values of the Accept HTTP header. - * + * * Note that if you use this method, you should send the "Vary: Accept" header * in the response to prevent any issues with intermediary HTTP caches. * - * @static + * @static */ public static function getPreferredFormat($default = 'html') { @@ -13690,7 +13668,7 @@ namespace Illuminate\Support\Facades { * Returns the preferred language. * * @param string[] $locales An array of ordered available locales - * @static + * @static */ public static function getPreferredLanguage($locales = null) { @@ -13702,8 +13680,8 @@ namespace Illuminate\Support\Facades { /** * Gets a list of languages acceptable by the client browser ordered in the user browser preferences. * - * @return string[] - * @static + * @return string[] + * @static */ public static function getLanguages() { @@ -13715,8 +13693,8 @@ namespace Illuminate\Support\Facades { /** * Gets a list of charsets acceptable by the client browser in preferable order. * - * @return string[] - * @static + * @return string[] + * @static */ public static function getCharsets() { @@ -13728,8 +13706,8 @@ namespace Illuminate\Support\Facades { /** * Gets a list of encodings acceptable by the client browser in preferable order. * - * @return string[] - * @static + * @return string[] + * @static */ public static function getEncodings() { @@ -13741,8 +13719,8 @@ namespace Illuminate\Support\Facades { /** * Gets a list of content types acceptable by the client browser in preferable order. * - * @return string[] - * @static + * @return string[] + * @static */ public static function getAcceptableContentTypes() { @@ -13753,12 +13731,12 @@ namespace Illuminate\Support\Facades { /** * Returns true if the request is an XMLHttpRequest. - * + * * It works if your JavaScript library sets an X-Requested-With HTTP header. * It is known to work with common JavaScript frameworks: * * @see https://wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript - * @static + * @static */ public static function isXmlHttpRequest() { @@ -13771,7 +13749,7 @@ namespace Illuminate\Support\Facades { * Checks whether the client browser prefers safe content or not according to RFC8674. * * @see https://tools.ietf.org/html/rfc8674 - * @static + * @static */ public static function preferSafeContent() { @@ -13782,11 +13760,11 @@ namespace Illuminate\Support\Facades { /** * Indicates whether this request originated from a trusted proxy. - * + * * This can be useful to determine whether or not to trust the * contents of a proxy-specific header. * - * @static + * @static */ public static function isFromTrustedProxy() { @@ -13799,8 +13777,8 @@ namespace Illuminate\Support\Facades { * Filter the given array of rules into an array of rules that are included in precognitive headers. * * @param array $rules - * @return array - * @static + * @return array + * @static */ public static function filterPrecognitiveRules($rules) { @@ -13811,8 +13789,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the request is attempting to be precognitive. * - * @return bool - * @static + * @return bool + * @static */ public static function isAttemptingPrecognition() { @@ -13823,8 +13801,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the request is precognitive. * - * @return bool - * @static + * @return bool + * @static */ public static function isPrecognitive() { @@ -13835,8 +13813,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the request is sending JSON. * - * @return bool - * @static + * @return bool + * @static */ public static function isJson() { @@ -13847,8 +13825,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the current request probably expects a JSON response. * - * @return bool - * @static + * @return bool + * @static */ public static function expectsJson() { @@ -13859,8 +13837,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the current request is asking for JSON. * - * @return bool - * @static + * @return bool + * @static */ public static function wantsJson() { @@ -13872,8 +13850,8 @@ namespace Illuminate\Support\Facades { * Determines whether the current requests accepts a given content type. * * @param string|array $contentTypes - * @return bool - * @static + * @return bool + * @static */ public static function accepts($contentTypes) { @@ -13885,8 +13863,8 @@ namespace Illuminate\Support\Facades { * Return the most suitable content type from the given array based on content negotiation. * * @param string|array $contentTypes - * @return string|null - * @static + * @return string|null + * @static */ public static function prefers($contentTypes) { @@ -13897,8 +13875,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the current request accepts any content type. * - * @return bool - * @static + * @return bool + * @static */ public static function acceptsAnyContentType() { @@ -13909,8 +13887,8 @@ namespace Illuminate\Support\Facades { /** * Determines whether a request accepts JSON. * - * @return bool - * @static + * @return bool + * @static */ public static function acceptsJson() { @@ -13921,8 +13899,8 @@ namespace Illuminate\Support\Facades { /** * Determines whether a request accepts HTML. * - * @return bool - * @static + * @return bool + * @static */ public static function acceptsHtml() { @@ -13935,8 +13913,8 @@ namespace Illuminate\Support\Facades { * * @param string $actual * @param string $type - * @return bool - * @static + * @return bool + * @static */ public static function matchesType($actual, $type) { @@ -13947,8 +13925,8 @@ namespace Illuminate\Support\Facades { * Get the data format expected in the response. * * @param string $default - * @return string - * @static + * @return string + * @static */ public static function format($default = 'html') { @@ -13961,8 +13939,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param \Illuminate\Database\Eloquent\Model|string|array|null $default - * @return string|array|null - * @static + * @return string|array|null + * @static */ public static function old($key = null, $default = null) { @@ -13973,8 +13951,8 @@ namespace Illuminate\Support\Facades { /** * Flash the input for the current request to the session. * - * @return void - * @static + * @return void + * @static */ public static function flash() { @@ -13986,8 +13964,8 @@ namespace Illuminate\Support\Facades { * Flash only some of the input to the session. * * @param array|mixed $keys - * @return void - * @static + * @return void + * @static */ public static function flashOnly($keys) { @@ -13999,8 +13977,8 @@ namespace Illuminate\Support\Facades { * Flash only some of the input to the session. * * @param array|mixed $keys - * @return void - * @static + * @return void + * @static */ public static function flashExcept($keys) { @@ -14011,8 +13989,8 @@ namespace Illuminate\Support\Facades { /** * Flush all of the old input from the session. * - * @return void - * @static + * @return void + * @static */ public static function flush() { @@ -14025,8 +14003,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param string|array|null $default - * @return string|array|null - * @static + * @return string|array|null + * @static */ public static function server($key = null, $default = null) { @@ -14038,8 +14016,8 @@ namespace Illuminate\Support\Facades { * Determine if a header is set on the request. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function hasHeader($key) { @@ -14052,8 +14030,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param string|array|null $default - * @return string|array|null - * @static + * @return string|array|null + * @static */ public static function header($key = null, $default = null) { @@ -14064,8 +14042,8 @@ namespace Illuminate\Support\Facades { /** * Get the bearer token from the request headers. * - * @return string|null - * @static + * @return string|null + * @static */ public static function bearerToken() { @@ -14076,8 +14054,8 @@ namespace Illuminate\Support\Facades { /** * Get the keys for all of the input and files. * - * @return array - * @static + * @return array + * @static */ public static function keys() { @@ -14089,8 +14067,8 @@ namespace Illuminate\Support\Facades { * Get all of the input and files for the request. * * @param array|mixed|null $keys - * @return array - * @static + * @return array + * @static */ public static function all($keys = null) { @@ -14103,8 +14081,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function input($key = null, $default = null) { @@ -14116,8 +14094,8 @@ namespace Illuminate\Support\Facades { * Retrieve input from the request as a Fluent object instance. * * @param array|string|null $key - * @return \Illuminate\Support\Fluent - * @static + * @return \Illuminate\Support\Fluent + * @static */ public static function fluent($key = null) { @@ -14130,8 +14108,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param string|array|null $default - * @return string|array|null - * @static + * @return string|array|null + * @static */ public static function query($key = null, $default = null) { @@ -14144,8 +14122,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param string|array|null $default - * @return string|array|null - * @static + * @return string|array|null + * @static */ public static function post($key = null, $default = null) { @@ -14157,8 +14135,8 @@ namespace Illuminate\Support\Facades { * Determine if a cookie is set on the request. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function hasCookie($key) { @@ -14171,8 +14149,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param string|array|null $default - * @return string|array|null - * @static + * @return string|array|null + * @static */ public static function cookie($key = null, $default = null) { @@ -14183,8 +14161,8 @@ namespace Illuminate\Support\Facades { /** * Get an array of all of the files on the request. * - * @return array - * @static + * @return array + * @static */ public static function allFiles() { @@ -14196,8 +14174,8 @@ namespace Illuminate\Support\Facades { * Determine if the uploaded data contains a file. * * @param string $key - * @return bool - * @static + * @return bool + * @static */ public static function hasFile($key) { @@ -14210,8 +14188,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param mixed $default - * @return \Illuminate\Http\UploadedFile|\Illuminate\Http\UploadedFile[]|array|null - * @static + * @return \Illuminate\Http\UploadedFile|\Illuminate\Http\UploadedFile[]|array|null + * @static */ public static function file($key = null, $default = null) { @@ -14223,8 +14201,8 @@ namespace Illuminate\Support\Facades { * Dump the items. * * @param mixed $keys - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function dump($keys = []) { @@ -14236,8 +14214,8 @@ namespace Illuminate\Support\Facades { * Dump the given arguments and terminate execution. * * @param mixed $args - * @return never - * @static + * @return never + * @static */ public static function dd(...$args) { @@ -14249,8 +14227,8 @@ namespace Illuminate\Support\Facades { * Determine if the data contains a given key. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function exists($key) { @@ -14262,8 +14240,8 @@ namespace Illuminate\Support\Facades { * Determine if the data contains a given key. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function has($key) { @@ -14275,8 +14253,8 @@ namespace Illuminate\Support\Facades { * Determine if the instance contains any of the given keys. * * @param string|array $keys - * @return bool - * @static + * @return bool + * @static */ public static function hasAny($keys) { @@ -14290,8 +14268,8 @@ namespace Illuminate\Support\Facades { * @param string $key * @param callable $callback * @param callable|null $default - * @return $this|mixed - * @static + * @return $this|mixed + * @static */ public static function whenHas($key, $callback, $default = null) { @@ -14303,8 +14281,8 @@ namespace Illuminate\Support\Facades { * Determine if the instance contains a non-empty value for the given key. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function filled($key) { @@ -14316,8 +14294,8 @@ namespace Illuminate\Support\Facades { * Determine if the instance contains an empty value for the given key. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function isNotFilled($key) { @@ -14329,8 +14307,8 @@ namespace Illuminate\Support\Facades { * Determine if the instance contains a non-empty value for any of the given keys. * * @param string|array $keys - * @return bool - * @static + * @return bool + * @static */ public static function anyFilled($keys) { @@ -14344,8 +14322,8 @@ namespace Illuminate\Support\Facades { * @param string $key * @param callable $callback * @param callable|null $default - * @return $this|mixed - * @static + * @return $this|mixed + * @static */ public static function whenFilled($key, $callback, $default = null) { @@ -14357,8 +14335,8 @@ namespace Illuminate\Support\Facades { * Determine if the instance is missing a given key. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function missing($key) { @@ -14372,8 +14350,8 @@ namespace Illuminate\Support\Facades { * @param string $key * @param callable $callback * @param callable|null $default - * @return $this|mixed - * @static + * @return $this|mixed + * @static */ public static function whenMissing($key, $callback, $default = null) { @@ -14386,8 +14364,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $default - * @return \Illuminate\Support\Stringable - * @static + * @return \Illuminate\Support\Stringable + * @static */ public static function str($key, $default = null) { @@ -14400,8 +14378,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $default - * @return \Illuminate\Support\Stringable - * @static + * @return \Illuminate\Support\Stringable + * @static */ public static function string($key, $default = null) { @@ -14411,13 +14389,13 @@ namespace Illuminate\Support\Facades { /** * Retrieve data as a boolean value. - * + * * Returns true when value is "1", "true", "on", and "yes". Otherwise, returns false. * * @param string|null $key * @param bool $default - * @return bool - * @static + * @return bool + * @static */ public static function boolean($key = null, $default = false) { @@ -14430,8 +14408,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param int $default - * @return int - * @static + * @return int + * @static */ public static function integer($key, $default = 0) { @@ -14444,8 +14422,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param float $default - * @return float - * @static + * @return float + * @static */ public static function float($key, $default = 0.0) { @@ -14459,9 +14437,9 @@ namespace Illuminate\Support\Facades { * @param string $key * @param string|null $format * @param string|null $tz - * @return \Illuminate\Support\Carbon|null + * @return \Illuminate\Support\Carbon|null * @throws \Carbon\Exceptions\InvalidFormatException - * @static + * @static */ public static function date($key, $format = null, $tz = null) { @@ -14475,8 +14453,8 @@ namespace Illuminate\Support\Facades { * @template TEnum of \BackedEnum * @param string $key * @param class-string $enumClass - * @return TEnum|null - * @static + * @return TEnum|null + * @static */ public static function enum($key, $enumClass) { @@ -14490,8 +14468,8 @@ namespace Illuminate\Support\Facades { * @template TEnum of \BackedEnum * @param string $key * @param class-string $enumClass - * @return TEnum[] - * @static + * @return TEnum[] + * @static */ public static function enums($key, $enumClass) { @@ -14503,8 +14481,8 @@ namespace Illuminate\Support\Facades { * Retrieve data from the instance as an array. * * @param array|string|null $key - * @return array - * @static + * @return array + * @static */ public static function array($key = null) { @@ -14516,8 +14494,8 @@ namespace Illuminate\Support\Facades { * Retrieve data from the instance as a collection. * * @param array|string|null $key - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function collect($key = null) { @@ -14529,8 +14507,8 @@ namespace Illuminate\Support\Facades { * Get a subset containing the provided keys with values from the instance data. * * @param array|mixed $keys - * @return array - * @static + * @return array + * @static */ public static function only($keys) { @@ -14542,8 +14520,8 @@ namespace Illuminate\Support\Facades { * Get all of the data except for a specified array of items. * * @param array|mixed $keys - * @return array - * @static + * @return array + * @static */ public static function except($keys) { @@ -14559,8 +14537,8 @@ namespace Illuminate\Support\Facades { * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default - * @return $this|TWhenReturnType - * @static + * @return $this|TWhenReturnType + * @static */ public static function when($value = null, $callback = null, $default = null) { @@ -14576,8 +14554,8 @@ namespace Illuminate\Support\Facades { * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default - * @return $this|TUnlessReturnType - * @static + * @return $this|TUnlessReturnType + * @static */ public static function unless($value = null, $callback = null, $default = null) { @@ -14591,8 +14569,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -14604,9 +14582,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -14617,8 +14595,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -14628,18 +14606,79 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { \Illuminate\Http\Request::flushMacros(); } + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param array $rules + * @param mixed $params + * @static + */ + public static function validate($rules, ...$params) + { + return \Illuminate\Http\Request::validate($rules, ...$params); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param string $errorBag + * @param array $rules + * @param mixed $params + * @static + */ + public static function validateWithBag($errorBag, $rules, ...$params) + { + return \Illuminate\Http\Request::validateWithBag($errorBag, $rules, ...$params); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $absolute + * @static + */ + public static function hasValidSignature($absolute = true) + { + return \Illuminate\Http\Request::hasValidSignature($absolute); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @static + */ + public static function hasValidRelativeSignature() + { + return \Illuminate\Http\Request::hasValidRelativeSignature(); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $ignoreQuery + * @param mixed $absolute + * @static + */ + public static function hasValidSignatureWhileIgnoring($ignoreQuery = [], $absolute = true) + { + return \Illuminate\Http\Request::hasValidSignatureWhileIgnoring($ignoreQuery, $absolute); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $ignoreQuery + * @static + */ + public static function hasValidRelativeSignatureWhileIgnoring($ignoreQuery = []) + { + return \Illuminate\Http\Request::hasValidRelativeSignatureWhileIgnoring($ignoreQuery); + } + } /** - * - * * @see \Illuminate\Routing\ResponseFactory */ class Response { @@ -14649,8 +14688,8 @@ namespace Illuminate\Support\Facades { * @param mixed $content * @param int $status * @param array $headers - * @return \Illuminate\Http\Response - * @static + * @return \Illuminate\Http\Response + * @static */ public static function make($content = '', $status = 200, $headers = []) { @@ -14663,8 +14702,8 @@ namespace Illuminate\Support\Facades { * * @param int $status * @param array $headers - * @return \Illuminate\Http\Response - * @static + * @return \Illuminate\Http\Response + * @static */ public static function noContent($status = 204, $headers = []) { @@ -14679,8 +14718,8 @@ namespace Illuminate\Support\Facades { * @param array $data * @param int $status * @param array $headers - * @return \Illuminate\Http\Response - * @static + * @return \Illuminate\Http\Response + * @static */ public static function view($view, $data = [], $status = 200, $headers = []) { @@ -14695,8 +14734,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param int $options - * @return \Illuminate\Http\JsonResponse - * @static + * @return \Illuminate\Http\JsonResponse + * @static */ public static function json($data = [], $status = 200, $headers = [], $options = 0) { @@ -14712,8 +14751,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param int $options - * @return \Illuminate\Http\JsonResponse - * @static + * @return \Illuminate\Http\JsonResponse + * @static */ public static function jsonp($callback, $data = [], $status = 200, $headers = [], $options = 0) { @@ -14727,8 +14766,8 @@ namespace Illuminate\Support\Facades { * @param \Closure $callback * @param array $headers * @param string $endStreamWith - * @return \Symfony\Component\HttpFoundation\StreamedResponse - * @static + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static */ public static function eventStream($callback, $headers = [], $endStreamWith = '') { @@ -14742,8 +14781,8 @@ namespace Illuminate\Support\Facades { * @param callable $callback * @param int $status * @param array $headers - * @return \Symfony\Component\HttpFoundation\StreamedResponse - * @static + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static */ public static function stream($callback, $status = 200, $headers = []) { @@ -14758,8 +14797,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param int $encodingOptions - * @return \Symfony\Component\HttpFoundation\StreamedJsonResponse - * @static + * @return \Symfony\Component\HttpFoundation\StreamedJsonResponse + * @static */ public static function streamJson($data, $status = 200, $headers = [], $encodingOptions = 15) { @@ -14774,9 +14813,9 @@ namespace Illuminate\Support\Facades { * @param string|null $name * @param array $headers * @param string|null $disposition - * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @return \Symfony\Component\HttpFoundation\StreamedResponse * @throws \Illuminate\Routing\Exceptions\StreamedResponseException - * @static + * @static */ public static function streamDownload($callback, $name = null, $headers = [], $disposition = 'attachment') { @@ -14791,8 +14830,8 @@ namespace Illuminate\Support\Facades { * @param string|null $name * @param array $headers * @param string|null $disposition - * @return \Symfony\Component\HttpFoundation\BinaryFileResponse - * @static + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + * @static */ public static function download($file, $name = null, $headers = [], $disposition = 'attachment') { @@ -14805,8 +14844,8 @@ namespace Illuminate\Support\Facades { * * @param \SplFileInfo|string $file * @param array $headers - * @return \Symfony\Component\HttpFoundation\BinaryFileResponse - * @static + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + * @static */ public static function file($file, $headers = []) { @@ -14821,8 +14860,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function redirectTo($path, $status = 302, $headers = [], $secure = null) { @@ -14837,8 +14876,8 @@ namespace Illuminate\Support\Facades { * @param mixed $parameters * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function redirectToRoute($route, $parameters = [], $status = 302, $headers = []) { @@ -14853,8 +14892,8 @@ namespace Illuminate\Support\Facades { * @param mixed $parameters * @param int $status * @param array $headers - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function redirectToAction($action, $parameters = [], $status = 302, $headers = []) { @@ -14869,8 +14908,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function redirectGuest($path, $status = 302, $headers = [], $secure = null) { @@ -14885,8 +14924,8 @@ namespace Illuminate\Support\Facades { * @param int $status * @param array $headers * @param bool|null $secure - * @return \Illuminate\Http\RedirectResponse - * @static + * @return \Illuminate\Http\RedirectResponse + * @static */ public static function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null) { @@ -14900,8 +14939,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -14913,9 +14952,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -14926,8 +14965,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -14937,8 +14976,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -14947,8 +14986,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @method static \Illuminate\Routing\RouteRegistrar attribute(string $key, mixed $value) * @method static \Illuminate\Routing\RouteRegistrar whereAlpha(array|string $parameters) * @method static \Illuminate\Routing\RouteRegistrar whereAlphaNumeric(array|string $parameters) @@ -14977,8 +15014,8 @@ namespace Illuminate\Support\Facades { * * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function get($uri, $action = null) { @@ -14991,8 +15028,8 @@ namespace Illuminate\Support\Facades { * * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function post($uri, $action = null) { @@ -15005,8 +15042,8 @@ namespace Illuminate\Support\Facades { * * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function put($uri, $action = null) { @@ -15019,8 +15056,8 @@ namespace Illuminate\Support\Facades { * * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function patch($uri, $action = null) { @@ -15033,8 +15070,8 @@ namespace Illuminate\Support\Facades { * * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function delete($uri, $action = null) { @@ -15047,8 +15084,8 @@ namespace Illuminate\Support\Facades { * * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function options($uri, $action = null) { @@ -15061,8 +15098,8 @@ namespace Illuminate\Support\Facades { * * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function any($uri, $action = null) { @@ -15074,8 +15111,8 @@ namespace Illuminate\Support\Facades { * Register a new fallback route with the router. * * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function fallback($action) { @@ -15089,8 +15126,8 @@ namespace Illuminate\Support\Facades { * @param string $uri * @param string $destination * @param int $status - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function redirect($uri, $destination, $status = 302) { @@ -15103,8 +15140,8 @@ namespace Illuminate\Support\Facades { * * @param string $uri * @param string $destination - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function permanentRedirect($uri, $destination) { @@ -15120,8 +15157,8 @@ namespace Illuminate\Support\Facades { * @param array $data * @param int|array $status * @param array $headers - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function view($uri, $view, $data = [], $status = 200, $headers = []) { @@ -15135,8 +15172,8 @@ namespace Illuminate\Support\Facades { * @param array|string $methods * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function match($methods, $uri, $action = null) { @@ -15149,8 +15186,8 @@ namespace Illuminate\Support\Facades { * * @param array $resources * @param array $options - * @return void - * @static + * @return void + * @static */ public static function resources($resources, $options = []) { @@ -15164,8 +15201,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param string $controller * @param array $options - * @return \Illuminate\Routing\PendingResourceRegistration - * @static + * @return \Illuminate\Routing\PendingResourceRegistration + * @static */ public static function resource($name, $controller, $options = []) { @@ -15178,8 +15215,8 @@ namespace Illuminate\Support\Facades { * * @param array $resources * @param array $options - * @return void - * @static + * @return void + * @static */ public static function apiResources($resources, $options = []) { @@ -15193,8 +15230,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param string $controller * @param array $options - * @return \Illuminate\Routing\PendingResourceRegistration - * @static + * @return \Illuminate\Routing\PendingResourceRegistration + * @static */ public static function apiResource($name, $controller, $options = []) { @@ -15207,8 +15244,8 @@ namespace Illuminate\Support\Facades { * * @param array $singletons * @param array $options - * @return void - * @static + * @return void + * @static */ public static function singletons($singletons, $options = []) { @@ -15222,8 +15259,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param string $controller * @param array $options - * @return \Illuminate\Routing\PendingSingletonResourceRegistration - * @static + * @return \Illuminate\Routing\PendingSingletonResourceRegistration + * @static */ public static function singleton($name, $controller, $options = []) { @@ -15236,8 +15273,8 @@ namespace Illuminate\Support\Facades { * * @param array $singletons * @param array $options - * @return void - * @static + * @return void + * @static */ public static function apiSingletons($singletons, $options = []) { @@ -15251,8 +15288,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param string $controller * @param array $options - * @return \Illuminate\Routing\PendingSingletonResourceRegistration - * @static + * @return \Illuminate\Routing\PendingSingletonResourceRegistration + * @static */ public static function apiSingleton($name, $controller, $options = []) { @@ -15265,8 +15302,8 @@ namespace Illuminate\Support\Facades { * * @param array $attributes * @param \Closure|array|string $routes - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function group($attributes, $routes) { @@ -15279,8 +15316,8 @@ namespace Illuminate\Support\Facades { * * @param array $new * @param bool $prependExistingPrefix - * @return array - * @static + * @return array + * @static */ public static function mergeWithLastGroup($new, $prependExistingPrefix = true) { @@ -15291,8 +15328,8 @@ namespace Illuminate\Support\Facades { /** * Get the prefix from the last group on the stack. * - * @return string - * @static + * @return string + * @static */ public static function getLastGroupPrefix() { @@ -15306,8 +15343,8 @@ namespace Illuminate\Support\Facades { * @param array|string $methods * @param string $uri * @param array|string|callable|null $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function addRoute($methods, $uri, $action) { @@ -15321,8 +15358,8 @@ namespace Illuminate\Support\Facades { * @param array|string $methods * @param string $uri * @param mixed $action - * @return \Illuminate\Routing\Route - * @static + * @return \Illuminate\Routing\Route + * @static */ public static function newRoute($methods, $uri, $action) { @@ -15334,8 +15371,8 @@ namespace Illuminate\Support\Facades { * Return the response returned by the given route. * * @param string $name - * @return \Symfony\Component\HttpFoundation\Response - * @static + * @return \Symfony\Component\HttpFoundation\Response + * @static */ public static function respondWithRoute($name) { @@ -15347,8 +15384,8 @@ namespace Illuminate\Support\Facades { * Dispatch the request to the application. * * @param \Illuminate\Http\Request $request - * @return \Symfony\Component\HttpFoundation\Response - * @static + * @return \Symfony\Component\HttpFoundation\Response + * @static */ public static function dispatch($request) { @@ -15360,8 +15397,8 @@ namespace Illuminate\Support\Facades { * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request - * @return \Symfony\Component\HttpFoundation\Response - * @static + * @return \Symfony\Component\HttpFoundation\Response + * @static */ public static function dispatchToRoute($request) { @@ -15373,8 +15410,8 @@ namespace Illuminate\Support\Facades { * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route - * @return array - * @static + * @return array + * @static */ public static function gatherRouteMiddleware($route) { @@ -15387,8 +15424,8 @@ namespace Illuminate\Support\Facades { * * @param array $middleware * @param array $excluded - * @return array - * @static + * @return array + * @static */ public static function resolveMiddleware($middleware, $excluded = []) { @@ -15401,8 +15438,8 @@ namespace Illuminate\Support\Facades { * * @param \Symfony\Component\HttpFoundation\Request $request * @param mixed $response - * @return \Symfony\Component\HttpFoundation\Response - * @static + * @return \Symfony\Component\HttpFoundation\Response + * @static */ public static function prepareResponse($request, $response) { @@ -15415,8 +15452,8 @@ namespace Illuminate\Support\Facades { * * @param \Symfony\Component\HttpFoundation\Request $request * @param mixed $response - * @return \Symfony\Component\HttpFoundation\Response - * @static + * @return \Symfony\Component\HttpFoundation\Response + * @static */ public static function toResponse($request, $response) { @@ -15427,10 +15464,10 @@ namespace Illuminate\Support\Facades { * Substitute the route bindings onto the route. * * @param \Illuminate\Routing\Route $route - * @return \Illuminate\Routing\Route + * @return \Illuminate\Routing\Route * @throws \Illuminate\Database\Eloquent\ModelNotFoundException<\Illuminate\Database\Eloquent\Model> * @throws \Illuminate\Routing\Exceptions\BackedEnumCaseNotFoundException - * @static + * @static */ public static function substituteBindings($route) { @@ -15442,10 +15479,10 @@ namespace Illuminate\Support\Facades { * Substitute the implicit route bindings for the given route. * * @param \Illuminate\Routing\Route $route - * @return void + * @return void * @throws \Illuminate\Database\Eloquent\ModelNotFoundException<\Illuminate\Database\Eloquent\Model> * @throws \Illuminate\Routing\Exceptions\BackedEnumCaseNotFoundException - * @static + * @static */ public static function substituteImplicitBindings($route) { @@ -15457,8 +15494,8 @@ namespace Illuminate\Support\Facades { * Register a callback to run after implicit bindings are substituted. * * @param callable $callback - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function substituteImplicitBindingsUsing($callback) { @@ -15470,8 +15507,8 @@ namespace Illuminate\Support\Facades { * Register a route matched event listener. * * @param string|callable $callback - * @return void - * @static + * @return void + * @static */ public static function matched($callback) { @@ -15482,8 +15519,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the defined middleware short-hand names. * - * @return array - * @static + * @return array + * @static */ public static function getMiddleware() { @@ -15496,8 +15533,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param string $class - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function aliasMiddleware($name, $class) { @@ -15509,8 +15546,8 @@ namespace Illuminate\Support\Facades { * Check if a middlewareGroup with the given name exists. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMiddlewareGroup($name) { @@ -15521,8 +15558,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the defined middleware groups. * - * @return array - * @static + * @return array + * @static */ public static function getMiddlewareGroups() { @@ -15535,8 +15572,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param array $middleware - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function middlewareGroup($name, $middleware) { @@ -15546,13 +15583,13 @@ namespace Illuminate\Support\Facades { /** * Add a middleware to the beginning of a middleware group. - * + * * If the middleware is already in the group, it will not be added again. * * @param string $group * @param string $middleware - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function prependMiddlewareToGroup($group, $middleware) { @@ -15562,13 +15599,13 @@ namespace Illuminate\Support\Facades { /** * Add a middleware to the end of a middleware group. - * + * * If the middleware is already in the group, it will not be added again. * * @param string $group * @param string $middleware - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function pushMiddlewareToGroup($group, $middleware) { @@ -15581,8 +15618,8 @@ namespace Illuminate\Support\Facades { * * @param string $group * @param string $middleware - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function removeMiddlewareFromGroup($group, $middleware) { @@ -15593,8 +15630,8 @@ namespace Illuminate\Support\Facades { /** * Flush the router's middleware groups. * - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function flushMiddlewareGroups() { @@ -15607,8 +15644,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param string|callable $binder - * @return void - * @static + * @return void + * @static */ public static function bind($key, $binder) { @@ -15622,8 +15659,8 @@ namespace Illuminate\Support\Facades { * @param string $key * @param string $class * @param \Closure|null $callback - * @return void - * @static + * @return void + * @static */ public static function model($key, $class, $callback = null) { @@ -15635,8 +15672,8 @@ namespace Illuminate\Support\Facades { * Get the binding callback for a given binding. * * @param string $key - * @return \Closure|null - * @static + * @return \Closure|null + * @static */ public static function getBindingCallback($key) { @@ -15647,8 +15684,8 @@ namespace Illuminate\Support\Facades { /** * Get the global "where" patterns. * - * @return array - * @static + * @return array + * @static */ public static function getPatterns() { @@ -15661,8 +15698,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param string $pattern - * @return void - * @static + * @return void + * @static */ public static function pattern($key, $pattern) { @@ -15674,8 +15711,8 @@ namespace Illuminate\Support\Facades { * Set a group of global where patterns on all routes. * * @param array $patterns - * @return void - * @static + * @return void + * @static */ public static function patterns($patterns) { @@ -15686,8 +15723,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the router currently has a group stack. * - * @return bool - * @static + * @return bool + * @static */ public static function hasGroupStack() { @@ -15698,8 +15735,8 @@ namespace Illuminate\Support\Facades { /** * Get the current group stack for the router. * - * @return array - * @static + * @return array + * @static */ public static function getGroupStack() { @@ -15712,8 +15749,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param string|null $default - * @return mixed - * @static + * @return mixed + * @static */ public static function input($key, $default = null) { @@ -15724,8 +15761,8 @@ namespace Illuminate\Support\Facades { /** * Get the request currently being dispatched. * - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function getCurrentRequest() { @@ -15736,8 +15773,8 @@ namespace Illuminate\Support\Facades { /** * Get the currently dispatched route instance. * - * @return \Illuminate\Routing\Route|null - * @static + * @return \Illuminate\Routing\Route|null + * @static */ public static function getCurrentRoute() { @@ -15748,8 +15785,8 @@ namespace Illuminate\Support\Facades { /** * Get the currently dispatched route instance. * - * @return \Illuminate\Routing\Route|null - * @static + * @return \Illuminate\Routing\Route|null + * @static */ public static function current() { @@ -15761,8 +15798,8 @@ namespace Illuminate\Support\Facades { * Check if a route with the given name exists. * * @param string|array $name - * @return bool - * @static + * @return bool + * @static */ public static function has($name) { @@ -15773,8 +15810,8 @@ namespace Illuminate\Support\Facades { /** * Get the current route name. * - * @return string|null - * @static + * @return string|null + * @static */ public static function currentRouteName() { @@ -15786,8 +15823,8 @@ namespace Illuminate\Support\Facades { * Alias for the "currentRouteNamed" method. * * @param mixed $patterns - * @return bool - * @static + * @return bool + * @static */ public static function is(...$patterns) { @@ -15799,8 +15836,8 @@ namespace Illuminate\Support\Facades { * Determine if the current route matches a pattern. * * @param mixed $patterns - * @return bool - * @static + * @return bool + * @static */ public static function currentRouteNamed(...$patterns) { @@ -15811,8 +15848,8 @@ namespace Illuminate\Support\Facades { /** * Get the current route action. * - * @return string|null - * @static + * @return string|null + * @static */ public static function currentRouteAction() { @@ -15824,8 +15861,8 @@ namespace Illuminate\Support\Facades { * Alias for the "currentRouteUses" method. * * @param array|string $patterns - * @return bool - * @static + * @return bool + * @static */ public static function uses(...$patterns) { @@ -15837,8 +15874,8 @@ namespace Illuminate\Support\Facades { * Determine if the current route action matches a given action. * * @param string $action - * @return bool - * @static + * @return bool + * @static */ public static function currentRouteUses($action) { @@ -15850,8 +15887,8 @@ namespace Illuminate\Support\Facades { * Set the unmapped global resource parameters to singular. * * @param bool $singular - * @return void - * @static + * @return void + * @static */ public static function singularResourceParameters($singular = true) { @@ -15863,8 +15900,8 @@ namespace Illuminate\Support\Facades { * Set the global resource parameter mapping. * * @param array $parameters - * @return void - * @static + * @return void + * @static */ public static function resourceParameters($parameters = []) { @@ -15876,8 +15913,8 @@ namespace Illuminate\Support\Facades { * Get or set the verbs used in the resource URIs. * * @param array $verbs - * @return array|null - * @static + * @return array|null + * @static */ public static function resourceVerbs($verbs = []) { @@ -15888,8 +15925,8 @@ namespace Illuminate\Support\Facades { /** * Get the underlying route collection. * - * @return \Illuminate\Routing\RouteCollectionInterface - * @static + * @return \Illuminate\Routing\RouteCollectionInterface + * @static */ public static function getRoutes() { @@ -15901,8 +15938,8 @@ namespace Illuminate\Support\Facades { * Set the route collection instance. * * @param \Illuminate\Routing\RouteCollection $routes - * @return void - * @static + * @return void + * @static */ public static function setRoutes($routes) { @@ -15914,8 +15951,8 @@ namespace Illuminate\Support\Facades { * Set the compiled route collection instance. * * @param array $routes - * @return void - * @static + * @return void + * @static */ public static function setCompiledRoutes($routes) { @@ -15927,8 +15964,8 @@ namespace Illuminate\Support\Facades { * Remove any duplicate middleware from the given array. * * @param array $middleware - * @return array - * @static + * @return array + * @static */ public static function uniqueMiddleware($middleware) { @@ -15939,8 +15976,8 @@ namespace Illuminate\Support\Facades { * Set the container instance used by the router. * * @param \Illuminate\Container\Container $container - * @return \Illuminate\Routing\Router - * @static + * @return \Illuminate\Routing\Router + * @static */ public static function setContainer($container) { @@ -15954,8 +15991,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -15967,9 +16004,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -15980,8 +16017,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -15991,8 +16028,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -16004,9 +16041,9 @@ namespace Illuminate\Support\Facades { * * @param string $method * @param array $parameters - * @return mixed + * @return mixed * @throws \BadMethodCallException - * @static + * @static */ public static function macroCall($method, $parameters) { @@ -16019,7 +16056,7 @@ namespace Illuminate\Support\Facades { * * @param (callable($this): mixed)|null $callback * @return ($callback is null ? \Illuminate\Support\HigherOrderTapProxy : $this) - * @static + * @static */ public static function tap($callback = null) { @@ -16027,10 +16064,45 @@ namespace Illuminate\Support\Facades { return $instance->tap($callback); } + /** + * @see \Laravel\Ui\AuthRouteMethods::auth() + * @param mixed $options + * @static + */ + public static function auth($options = []) + { + return \Illuminate\Routing\Router::auth($options); + } + + /** + * @see \Laravel\Ui\AuthRouteMethods::resetPassword() + * @static + */ + public static function resetPassword() + { + return \Illuminate\Routing\Router::resetPassword(); + } + + /** + * @see \Laravel\Ui\AuthRouteMethods::confirmPassword() + * @static + */ + public static function confirmPassword() + { + return \Illuminate\Routing\Router::confirmPassword(); + } + + /** + * @see \Laravel\Ui\AuthRouteMethods::emailVerification() + * @static + */ + public static function emailVerification() + { + return \Illuminate\Routing\Router::emailVerification(); + } + } /** - * - * * @see \Illuminate\Database\Schema\Builder */ class Schema { @@ -16038,8 +16110,8 @@ namespace Illuminate\Support\Facades { * Create a database in the schema. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function createDatabase($name) { @@ -16051,8 +16123,8 @@ namespace Illuminate\Support\Facades { * Drop a database from the schema if the database exists. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function dropDatabaseIfExists($name) { @@ -16064,8 +16136,8 @@ namespace Illuminate\Support\Facades { * Determine if the given table exists. * * @param string $table - * @return bool - * @static + * @return bool + * @static */ public static function hasTable($table) { @@ -16076,8 +16148,8 @@ namespace Illuminate\Support\Facades { /** * Get the tables for the database. * - * @return array - * @static + * @return array + * @static */ public static function getTables() { @@ -16088,8 +16160,8 @@ namespace Illuminate\Support\Facades { /** * Get the views for the database. * - * @return array - * @static + * @return array + * @static */ public static function getViews() { @@ -16101,8 +16173,8 @@ namespace Illuminate\Support\Facades { * Get the columns for a given table. * * @param string $table - * @return array - * @static + * @return array + * @static */ public static function getColumns($table) { @@ -16114,8 +16186,8 @@ namespace Illuminate\Support\Facades { * Get the indexes for a given table. * * @param string $table - * @return array - * @static + * @return array + * @static */ public static function getIndexes($table) { @@ -16127,8 +16199,8 @@ namespace Illuminate\Support\Facades { * Get the foreign keys for a given table. * * @param string $table - * @return array - * @static + * @return array + * @static */ public static function getForeignKeys($table) { @@ -16139,8 +16211,8 @@ namespace Illuminate\Support\Facades { /** * Drop all tables from the database. * - * @return void - * @static + * @return void + * @static */ public static function dropAllTables() { @@ -16151,8 +16223,8 @@ namespace Illuminate\Support\Facades { /** * Drop all views from the database. * - * @return void - * @static + * @return void + * @static */ public static function dropAllViews() { @@ -16164,8 +16236,8 @@ namespace Illuminate\Support\Facades { * Set the default string length for migrations. * * @param int $length - * @return void - * @static + * @return void + * @static */ public static function defaultStringLength($length) { @@ -16177,9 +16249,9 @@ namespace Illuminate\Support\Facades { * Set the default morph key type for migrations. * * @param string $type - * @return void + * @return void * @throws \InvalidArgumentException - * @static + * @static */ public static function defaultMorphKeyType($type) { @@ -16190,8 +16262,8 @@ namespace Illuminate\Support\Facades { /** * Set the default morph key type for migrations to UUIDs. * - * @return void - * @static + * @return void + * @static */ public static function morphUsingUuids() { @@ -16202,8 +16274,8 @@ namespace Illuminate\Support\Facades { /** * Set the default morph key type for migrations to ULIDs. * - * @return void - * @static + * @return void + * @static */ public static function morphUsingUlids() { @@ -16215,8 +16287,8 @@ namespace Illuminate\Support\Facades { * Determine if the given view exists. * * @param string $view - * @return bool - * @static + * @return bool + * @static */ public static function hasView($view) { @@ -16228,8 +16300,8 @@ namespace Illuminate\Support\Facades { /** * Get the names of the tables that belong to the database. * - * @return array - * @static + * @return array + * @static */ public static function getTableListing() { @@ -16241,8 +16313,8 @@ namespace Illuminate\Support\Facades { /** * Get the user-defined types that belong to the database. * - * @return array - * @static + * @return array + * @static */ public static function getTypes() { @@ -16256,8 +16328,8 @@ namespace Illuminate\Support\Facades { * * @param string $table * @param string $column - * @return bool - * @static + * @return bool + * @static */ public static function hasColumn($table, $column) { @@ -16271,8 +16343,8 @@ namespace Illuminate\Support\Facades { * * @param string $table * @param array $columns - * @return bool - * @static + * @return bool + * @static */ public static function hasColumns($table, $columns) { @@ -16287,8 +16359,8 @@ namespace Illuminate\Support\Facades { * @param string $table * @param string $column * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function whenTableHasColumn($table, $column, $callback) { @@ -16303,8 +16375,8 @@ namespace Illuminate\Support\Facades { * @param string $table * @param string $column * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function whenTableDoesntHaveColumn($table, $column, $callback) { @@ -16319,8 +16391,8 @@ namespace Illuminate\Support\Facades { * @param string $table * @param string $column * @param bool $fullDefinition - * @return string - * @static + * @return string + * @static */ public static function getColumnType($table, $column, $fullDefinition = false) { @@ -16333,8 +16405,8 @@ namespace Illuminate\Support\Facades { * Get the column listing for a given table. * * @param string $table - * @return array - * @static + * @return array + * @static */ public static function getColumnListing($table) { @@ -16347,8 +16419,8 @@ namespace Illuminate\Support\Facades { * Get the names of the indexes for a given table. * * @param string $table - * @return array - * @static + * @return array + * @static */ public static function getIndexListing($table) { @@ -16363,8 +16435,8 @@ namespace Illuminate\Support\Facades { * @param string $table * @param string|array $index * @param string|null $type - * @return bool - * @static + * @return bool + * @static */ public static function hasIndex($table, $index, $type = null) { @@ -16378,8 +16450,8 @@ namespace Illuminate\Support\Facades { * * @param string $table * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function table($table, $callback) { @@ -16393,8 +16465,8 @@ namespace Illuminate\Support\Facades { * * @param string $table * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function create($table, $callback) { @@ -16407,8 +16479,8 @@ namespace Illuminate\Support\Facades { * Drop a table from the schema. * * @param string $table - * @return void - * @static + * @return void + * @static */ public static function drop($table) { @@ -16421,8 +16493,8 @@ namespace Illuminate\Support\Facades { * Drop a table from the schema if it exists. * * @param string $table - * @return void - * @static + * @return void + * @static */ public static function dropIfExists($table) { @@ -16436,8 +16508,8 @@ namespace Illuminate\Support\Facades { * * @param string $table * @param string|array $columns - * @return void - * @static + * @return void + * @static */ public static function dropColumns($table, $columns) { @@ -16449,9 +16521,9 @@ namespace Illuminate\Support\Facades { /** * Drop all types from the database. * - * @return void + * @return void * @throws \LogicException - * @static + * @static */ public static function dropAllTypes() { @@ -16465,8 +16537,8 @@ namespace Illuminate\Support\Facades { * * @param string $from * @param string $to - * @return void - * @static + * @return void + * @static */ public static function rename($from, $to) { @@ -16478,8 +16550,8 @@ namespace Illuminate\Support\Facades { /** * Enable foreign key constraints. * - * @return bool - * @static + * @return bool + * @static */ public static function enableForeignKeyConstraints() { @@ -16491,8 +16563,8 @@ namespace Illuminate\Support\Facades { /** * Disable foreign key constraints. * - * @return bool - * @static + * @return bool + * @static */ public static function disableForeignKeyConstraints() { @@ -16505,8 +16577,8 @@ namespace Illuminate\Support\Facades { * Disable foreign key constraints during the execution of a callback. * * @param \Closure $callback - * @return mixed - * @static + * @return mixed + * @static */ public static function withoutForeignKeyConstraints($callback) { @@ -16518,8 +16590,8 @@ namespace Illuminate\Support\Facades { /** * Get the database connection instance. * - * @return \Illuminate\Database\Connection - * @static + * @return \Illuminate\Database\Connection + * @static */ public static function getConnection() { @@ -16532,8 +16604,8 @@ namespace Illuminate\Support\Facades { * Set the database connection instance. * * @param \Illuminate\Database\Connection $connection - * @return \Illuminate\Database\Schema\MySqlBuilder - * @static + * @return \Illuminate\Database\Schema\MySqlBuilder + * @static */ public static function setConnection($connection) { @@ -16546,8 +16618,8 @@ namespace Illuminate\Support\Facades { * Set the Schema Blueprint resolver callback. * * @param \Closure $resolver - * @return void - * @static + * @return void + * @static */ public static function blueprintResolver($resolver) { @@ -16562,8 +16634,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -16576,9 +16648,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -16590,8 +16662,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -16602,8 +16674,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -16613,16 +16685,14 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Session\SessionManager */ class Session { /** * Determine if requests for the same session should wait for each to finish before executing. * - * @return bool - * @static + * @return bool + * @static */ public static function shouldBlock() { @@ -16633,8 +16703,8 @@ namespace Illuminate\Support\Facades { /** * Get the name of the cache store / driver that should be used to acquire session locks. * - * @return string|null - * @static + * @return string|null + * @static */ public static function blockDriver() { @@ -16645,8 +16715,8 @@ namespace Illuminate\Support\Facades { /** * Get the maximum number of seconds the session lock should be held for. * - * @return int - * @static + * @return int + * @static */ public static function defaultRouteBlockLockSeconds() { @@ -16657,8 +16727,8 @@ namespace Illuminate\Support\Facades { /** * Get the maximum number of seconds to wait while attempting to acquire a route block session lock. * - * @return int - * @static + * @return int + * @static */ public static function defaultRouteBlockWaitSeconds() { @@ -16669,8 +16739,8 @@ namespace Illuminate\Support\Facades { /** * Get the session configuration. * - * @return array - * @static + * @return array + * @static */ public static function getSessionConfig() { @@ -16681,8 +16751,8 @@ namespace Illuminate\Support\Facades { /** * Get the default session driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -16694,8 +16764,8 @@ namespace Illuminate\Support\Facades { * Set the default session driver name. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setDefaultDriver($name) { @@ -16707,9 +16777,9 @@ namespace Illuminate\Support\Facades { * Get a driver instance. * * @param string|null $driver - * @return mixed + * @return mixed * @throws \InvalidArgumentException - * @static + * @static */ public static function driver($driver = null) { @@ -16723,8 +16793,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Session\SessionManager - * @static + * @return \Illuminate\Session\SessionManager + * @static */ public static function extend($driver, $callback) { @@ -16736,8 +16806,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the created "drivers". * - * @return array - * @static + * @return array + * @static */ public static function getDrivers() { @@ -16749,8 +16819,8 @@ namespace Illuminate\Support\Facades { /** * Get the container instance used by the manager. * - * @return \Illuminate\Contracts\Container\Container - * @static + * @return \Illuminate\Contracts\Container\Container + * @static */ public static function getContainer() { @@ -16763,8 +16833,8 @@ namespace Illuminate\Support\Facades { * Set the container instance used by the manager. * * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Session\SessionManager - * @static + * @return \Illuminate\Session\SessionManager + * @static */ public static function setContainer($container) { @@ -16776,8 +16846,8 @@ namespace Illuminate\Support\Facades { /** * Forget all of the resolved driver instances. * - * @return \Illuminate\Session\SessionManager - * @static + * @return \Illuminate\Session\SessionManager + * @static */ public static function forgetDrivers() { @@ -16789,8 +16859,8 @@ namespace Illuminate\Support\Facades { /** * Start the session, reading the data from a handler. * - * @return bool - * @static + * @return bool + * @static */ public static function start() { @@ -16801,8 +16871,8 @@ namespace Illuminate\Support\Facades { /** * Save the session data to storage. * - * @return void - * @static + * @return void + * @static */ public static function save() { @@ -16813,8 +16883,8 @@ namespace Illuminate\Support\Facades { /** * Age the flash data for the session. * - * @return void - * @static + * @return void + * @static */ public static function ageFlashData() { @@ -16825,8 +16895,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the session data. * - * @return array - * @static + * @return array + * @static */ public static function all() { @@ -16838,8 +16908,8 @@ namespace Illuminate\Support\Facades { * Get a subset of the session data. * * @param array $keys - * @return array - * @static + * @return array + * @static */ public static function only($keys) { @@ -16851,8 +16921,8 @@ namespace Illuminate\Support\Facades { * Get all the session data except for a specified array of items. * * @param array $keys - * @return array - * @static + * @return array + * @static */ public static function except($keys) { @@ -16864,8 +16934,8 @@ namespace Illuminate\Support\Facades { * Checks if a key exists. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function exists($key) { @@ -16877,8 +16947,8 @@ namespace Illuminate\Support\Facades { * Determine if the given key is missing from the session data. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function missing($key) { @@ -16890,8 +16960,8 @@ namespace Illuminate\Support\Facades { * Determine if a key is present and not null. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function has($key) { @@ -16903,8 +16973,8 @@ namespace Illuminate\Support\Facades { * Determine if any of the given keys are present and not null. * * @param string|array $key - * @return bool - * @static + * @return bool + * @static */ public static function hasAny($key) { @@ -16917,8 +16987,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function get($key, $default = null) { @@ -16931,8 +17001,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function pull($key, $default = null) { @@ -16944,8 +17014,8 @@ namespace Illuminate\Support\Facades { * Determine if the session contains old input. * * @param string|null $key - * @return bool - * @static + * @return bool + * @static */ public static function hasOldInput($key = null) { @@ -16958,8 +17028,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function getOldInput($key = null, $default = null) { @@ -16971,8 +17041,8 @@ namespace Illuminate\Support\Facades { * Replace the given session attributes entirely. * * @param array $attributes - * @return void - * @static + * @return void + * @static */ public static function replace($attributes) { @@ -16985,8 +17055,8 @@ namespace Illuminate\Support\Facades { * * @param string|array $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function put($key, $value = null) { @@ -16999,8 +17069,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param \Closure $callback - * @return mixed - * @static + * @return mixed + * @static */ public static function remember($key, $callback) { @@ -17013,8 +17083,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function push($key, $value) { @@ -17027,8 +17097,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param int $amount - * @return mixed - * @static + * @return mixed + * @static */ public static function increment($key, $amount = 1) { @@ -17041,8 +17111,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param int $amount - * @return int - * @static + * @return int + * @static */ public static function decrement($key, $amount = 1) { @@ -17055,8 +17125,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function flash($key, $value = true) { @@ -17069,8 +17139,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $value - * @return void - * @static + * @return void + * @static */ public static function now($key, $value) { @@ -17081,8 +17151,8 @@ namespace Illuminate\Support\Facades { /** * Reflash all of the session flash data. * - * @return void - * @static + * @return void + * @static */ public static function reflash() { @@ -17094,8 +17164,8 @@ namespace Illuminate\Support\Facades { * Reflash a subset of the current flash data. * * @param array|mixed $keys - * @return void - * @static + * @return void + * @static */ public static function keep($keys = null) { @@ -17107,8 +17177,8 @@ namespace Illuminate\Support\Facades { * Flash an input array to the session. * * @param array $value - * @return void - * @static + * @return void + * @static */ public static function flashInput($value) { @@ -17120,8 +17190,8 @@ namespace Illuminate\Support\Facades { * Remove an item from the session, returning its value. * * @param string $key - * @return mixed - * @static + * @return mixed + * @static */ public static function remove($key) { @@ -17133,8 +17203,8 @@ namespace Illuminate\Support\Facades { * Remove one or many items from the session. * * @param string|array $keys - * @return void - * @static + * @return void + * @static */ public static function forget($keys) { @@ -17145,8 +17215,8 @@ namespace Illuminate\Support\Facades { /** * Remove all of the items from the session. * - * @return void - * @static + * @return void + * @static */ public static function flush() { @@ -17157,8 +17227,8 @@ namespace Illuminate\Support\Facades { /** * Flush the session data and regenerate the ID. * - * @return bool - * @static + * @return bool + * @static */ public static function invalidate() { @@ -17170,8 +17240,8 @@ namespace Illuminate\Support\Facades { * Generate a new session identifier. * * @param bool $destroy - * @return bool - * @static + * @return bool + * @static */ public static function regenerate($destroy = false) { @@ -17183,8 +17253,8 @@ namespace Illuminate\Support\Facades { * Generate a new session ID for the session. * * @param bool $destroy - * @return bool - * @static + * @return bool + * @static */ public static function migrate($destroy = false) { @@ -17195,8 +17265,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the session has been started. * - * @return bool - * @static + * @return bool + * @static */ public static function isStarted() { @@ -17207,8 +17277,8 @@ namespace Illuminate\Support\Facades { /** * Get the name of the session. * - * @return string - * @static + * @return string + * @static */ public static function getName() { @@ -17220,8 +17290,8 @@ namespace Illuminate\Support\Facades { * Set the name of the session. * * @param string $name - * @return void - * @static + * @return void + * @static */ public static function setName($name) { @@ -17232,8 +17302,8 @@ namespace Illuminate\Support\Facades { /** * Get the current session ID. * - * @return string - * @static + * @return string + * @static */ public static function id() { @@ -17244,8 +17314,8 @@ namespace Illuminate\Support\Facades { /** * Get the current session ID. * - * @return string - * @static + * @return string + * @static */ public static function getId() { @@ -17257,8 +17327,8 @@ namespace Illuminate\Support\Facades { * Set the session ID. * * @param string|null $id - * @return void - * @static + * @return void + * @static */ public static function setId($id) { @@ -17270,8 +17340,8 @@ namespace Illuminate\Support\Facades { * Determine if this is a valid session ID. * * @param string|null $id - * @return bool - * @static + * @return bool + * @static */ public static function isValidId($id) { @@ -17283,8 +17353,8 @@ namespace Illuminate\Support\Facades { * Set the existence of the session on the handler if applicable. * * @param bool $value - * @return void - * @static + * @return void + * @static */ public static function setExists($value) { @@ -17295,8 +17365,8 @@ namespace Illuminate\Support\Facades { /** * Get the CSRF token value. * - * @return string - * @static + * @return string + * @static */ public static function token() { @@ -17307,8 +17377,8 @@ namespace Illuminate\Support\Facades { /** * Regenerate the CSRF token value. * - * @return void - * @static + * @return void + * @static */ public static function regenerateToken() { @@ -17319,8 +17389,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the previous URI is available. * - * @return bool - * @static + * @return bool + * @static */ public static function hasPreviousUri() { @@ -17331,9 +17401,9 @@ namespace Illuminate\Support\Facades { /** * Get the previous URL from the session as a URI instance. * - * @return \Illuminate\Support\Uri + * @return \Illuminate\Support\Uri * @throws \RuntimeException - * @static + * @static */ public static function previousUri() { @@ -17344,8 +17414,8 @@ namespace Illuminate\Support\Facades { /** * Get the previous URL from the session. * - * @return string|null - * @static + * @return string|null + * @static */ public static function previousUrl() { @@ -17357,8 +17427,8 @@ namespace Illuminate\Support\Facades { * Set the "previous" URL in the session. * * @param string $url - * @return void - * @static + * @return void + * @static */ public static function setPreviousUrl($url) { @@ -17369,8 +17439,8 @@ namespace Illuminate\Support\Facades { /** * Specify that the user has confirmed their password. * - * @return void - * @static + * @return void + * @static */ public static function passwordConfirmed() { @@ -17381,8 +17451,8 @@ namespace Illuminate\Support\Facades { /** * Get the underlying session handler implementation. * - * @return \SessionHandlerInterface - * @static + * @return \SessionHandlerInterface + * @static */ public static function getHandler() { @@ -17394,8 +17464,8 @@ namespace Illuminate\Support\Facades { * Set the underlying session handler implementation. * * @param \SessionHandlerInterface $handler - * @return \SessionHandlerInterface - * @static + * @return \SessionHandlerInterface + * @static */ public static function setHandler($handler) { @@ -17406,8 +17476,8 @@ namespace Illuminate\Support\Facades { /** * Determine if the session handler needs a request. * - * @return bool - * @static + * @return bool + * @static */ public static function handlerNeedsRequest() { @@ -17419,8 +17489,8 @@ namespace Illuminate\Support\Facades { * Set the request on the handler instance. * * @param \Illuminate\Http\Request $request - * @return void - * @static + * @return void + * @static */ public static function setRequestOnHandler($request) { @@ -17434,8 +17504,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -17447,9 +17517,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -17460,8 +17530,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -17471,8 +17541,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -17481,8 +17551,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @method static bool has(string $location) * @method static string read(string $location) * @method static \League\Flysystem\DirectoryListing listContents(string $location, bool $deep = false) @@ -17497,8 +17565,8 @@ namespace Illuminate\Support\Facades { * Get a filesystem instance. * * @param string|null $name - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function drive($name = null) { @@ -17510,8 +17578,8 @@ namespace Illuminate\Support\Facades { * Get a filesystem instance. * * @param string|null $name - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function disk($name = null) { @@ -17522,8 +17590,8 @@ namespace Illuminate\Support\Facades { /** * Get a default cloud filesystem instance. * - * @return \Illuminate\Contracts\Filesystem\Cloud - * @static + * @return \Illuminate\Contracts\Filesystem\Cloud + * @static */ public static function cloud() { @@ -17535,8 +17603,8 @@ namespace Illuminate\Support\Facades { * Build an on-demand disk. * * @param string|array $config - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function build($config) { @@ -17549,8 +17617,8 @@ namespace Illuminate\Support\Facades { * * @param array $config * @param string $name - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function createLocalDriver($config, $name = 'local') { @@ -17562,8 +17630,8 @@ namespace Illuminate\Support\Facades { * Create an instance of the ftp driver. * * @param array $config - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function createFtpDriver($config) { @@ -17575,8 +17643,8 @@ namespace Illuminate\Support\Facades { * Create an instance of the sftp driver. * * @param array $config - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function createSftpDriver($config) { @@ -17588,8 +17656,8 @@ namespace Illuminate\Support\Facades { * Create an instance of the Amazon S3 driver. * * @param array $config - * @return \Illuminate\Contracts\Filesystem\Cloud - * @static + * @return \Illuminate\Contracts\Filesystem\Cloud + * @static */ public static function createS3Driver($config) { @@ -17601,8 +17669,8 @@ namespace Illuminate\Support\Facades { * Create a scoped driver. * * @param array $config - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function createScopedDriver($config) { @@ -17615,8 +17683,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param mixed $disk - * @return \Illuminate\Filesystem\FilesystemManager - * @static + * @return \Illuminate\Filesystem\FilesystemManager + * @static */ public static function set($name, $disk) { @@ -17627,8 +17695,8 @@ namespace Illuminate\Support\Facades { /** * Get the default driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultDriver() { @@ -17639,8 +17707,8 @@ namespace Illuminate\Support\Facades { /** * Get the default cloud driver name. * - * @return string - * @static + * @return string + * @static */ public static function getDefaultCloudDriver() { @@ -17652,8 +17720,8 @@ namespace Illuminate\Support\Facades { * Unset the given disk instances. * * @param array|string $disk - * @return \Illuminate\Filesystem\FilesystemManager - * @static + * @return \Illuminate\Filesystem\FilesystemManager + * @static */ public static function forgetDisk($disk) { @@ -17665,8 +17733,8 @@ namespace Illuminate\Support\Facades { * Disconnect the given disk and remove from local cache. * * @param string|null $name - * @return void - * @static + * @return void + * @static */ public static function purge($name = null) { @@ -17679,8 +17747,8 @@ namespace Illuminate\Support\Facades { * * @param string $driver * @param \Closure $callback - * @return \Illuminate\Filesystem\FilesystemManager - * @static + * @return \Illuminate\Filesystem\FilesystemManager + * @static */ public static function extend($driver, $callback) { @@ -17692,8 +17760,8 @@ namespace Illuminate\Support\Facades { * Set the application instance used by the manager. * * @param \Illuminate\Contracts\Foundation\Application $app - * @return \Illuminate\Filesystem\FilesystemManager - * @static + * @return \Illuminate\Filesystem\FilesystemManager + * @static */ public static function setApplication($app) { @@ -17704,8 +17772,8 @@ namespace Illuminate\Support\Facades { /** * Determine if temporary URLs can be generated. * - * @return bool - * @static + * @return bool + * @static */ public static function providesTemporaryUrls() { @@ -17719,8 +17787,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param \DateTimeInterface $expiration * @param array $options - * @return string - * @static + * @return string + * @static */ public static function temporaryUrl($path, $expiration, $options = []) { @@ -17732,8 +17800,8 @@ namespace Illuminate\Support\Facades { * Specify the name of the disk the adapter is managing. * * @param string $disk - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function diskName($disk) { @@ -17746,8 +17814,8 @@ namespace Illuminate\Support\Facades { * * @param bool $serve * @param \Closure|null $urlGeneratorResolver - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function shouldServeSignedUrls($serve = true, $urlGeneratorResolver = null) { @@ -17760,8 +17828,8 @@ namespace Illuminate\Support\Facades { * * @param string|array $path * @param string|null $content - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function assertExists($path, $content = null) { @@ -17776,8 +17844,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param int $count * @param bool $recursive - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function assertCount($path, $count, $recursive = false) { @@ -17790,8 +17858,8 @@ namespace Illuminate\Support\Facades { * Assert that the given file or directory does not exist. * * @param string|array $path - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function assertMissing($path) { @@ -17804,8 +17872,8 @@ namespace Illuminate\Support\Facades { * Assert that the given directory is empty. * * @param string $path - * @return \Illuminate\Filesystem\LocalFilesystemAdapter - * @static + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static */ public static function assertDirectoryEmpty($path) { @@ -17818,8 +17886,8 @@ namespace Illuminate\Support\Facades { * Determine if a file or directory exists. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function exists($path) { @@ -17832,8 +17900,8 @@ namespace Illuminate\Support\Facades { * Determine if a file or directory is missing. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function missing($path) { @@ -17846,8 +17914,8 @@ namespace Illuminate\Support\Facades { * Determine if a file exists. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function fileExists($path) { @@ -17860,8 +17928,8 @@ namespace Illuminate\Support\Facades { * Determine if a file is missing. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function fileMissing($path) { @@ -17874,8 +17942,8 @@ namespace Illuminate\Support\Facades { * Determine if a directory exists. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function directoryExists($path) { @@ -17888,8 +17956,8 @@ namespace Illuminate\Support\Facades { * Determine if a directory is missing. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function directoryMissing($path) { @@ -17902,8 +17970,8 @@ namespace Illuminate\Support\Facades { * Get the full path to the file that exists at the given relative path. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function path($path) { @@ -17916,8 +17984,8 @@ namespace Illuminate\Support\Facades { * Get the contents of a file. * * @param string $path - * @return string|null - * @static + * @return string|null + * @static */ public static function get($path) { @@ -17931,8 +17999,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param int $flags - * @return array|null - * @static + * @return array|null + * @static */ public static function json($path, $flags = 0) { @@ -17948,8 +18016,8 @@ namespace Illuminate\Support\Facades { * @param string|null $name * @param array $headers * @param string|null $disposition - * @return \Symfony\Component\HttpFoundation\StreamedResponse - * @static + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static */ public static function response($path, $name = null, $headers = [], $disposition = 'inline') { @@ -17965,8 +18033,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param string|null $name * @param array $headers - * @return \Symfony\Component\HttpFoundation\StreamedResponse - * @static + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static */ public static function serve($request, $path, $name = null, $headers = []) { @@ -17981,8 +18049,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param string|null $name * @param array $headers - * @return \Symfony\Component\HttpFoundation\StreamedResponse - * @static + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static */ public static function download($path, $name = null, $headers = []) { @@ -17997,8 +18065,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param \Psr\Http\Message\StreamInterface|\Illuminate\Http\File|\Illuminate\Http\UploadedFile|string|resource $contents * @param mixed $options - * @return string|bool - * @static + * @return string|bool + * @static */ public static function put($path, $contents, $options = []) { @@ -18013,8 +18081,8 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string $path * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string|array|null $file * @param mixed $options - * @return string|false - * @static + * @return string|false + * @static */ public static function putFile($path, $file = null, $options = []) { @@ -18030,8 +18098,8 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string|array|null $file * @param string|array|null $name * @param mixed $options - * @return string|false - * @static + * @return string|false + * @static */ public static function putFileAs($path, $file, $name = null, $options = []) { @@ -18044,8 +18112,8 @@ namespace Illuminate\Support\Facades { * Get the visibility for the given path. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function getVisibility($path) { @@ -18059,8 +18127,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param string $visibility - * @return bool - * @static + * @return bool + * @static */ public static function setVisibility($path, $visibility) { @@ -18075,8 +18143,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param string $data * @param string $separator - * @return bool - * @static + * @return bool + * @static */ public static function prepend($path, $data, $separator = ' ') @@ -18092,8 +18160,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param string $data * @param string $separator - * @return bool - * @static + * @return bool + * @static */ public static function append($path, $data, $separator = ' ') @@ -18107,8 +18175,8 @@ namespace Illuminate\Support\Facades { * Delete the file at a given path. * * @param string|array $paths - * @return bool - * @static + * @return bool + * @static */ public static function delete($paths) { @@ -18122,8 +18190,8 @@ namespace Illuminate\Support\Facades { * * @param string $from * @param string $to - * @return bool - * @static + * @return bool + * @static */ public static function copy($from, $to) { @@ -18137,8 +18205,8 @@ namespace Illuminate\Support\Facades { * * @param string $from * @param string $to - * @return bool - * @static + * @return bool + * @static */ public static function move($from, $to) { @@ -18151,8 +18219,8 @@ namespace Illuminate\Support\Facades { * Get the file size of a given file. * * @param string $path - * @return int - * @static + * @return int + * @static */ public static function size($path) { @@ -18164,9 +18232,9 @@ namespace Illuminate\Support\Facades { /** * Get the checksum for a file. * - * @return string|false + * @return string|false * @throws UnableToProvideChecksum - * @static + * @static */ public static function checksum($path, $options = []) { @@ -18179,8 +18247,8 @@ namespace Illuminate\Support\Facades { * Get the mime-type of a given file. * * @param string $path - * @return string|false - * @static + * @return string|false + * @static */ public static function mimeType($path) { @@ -18193,8 +18261,8 @@ namespace Illuminate\Support\Facades { * Get the file's last modification time. * * @param string $path - * @return int - * @static + * @return int + * @static */ public static function lastModified($path) { @@ -18208,7 +18276,7 @@ namespace Illuminate\Support\Facades { * * @param string $path * @return resource|null The path resource or null on failure. - * @static + * @static */ public static function readStream($path) { @@ -18223,8 +18291,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param resource $resource * @param array $options - * @return bool - * @static + * @return bool + * @static */ public static function writeStream($path, $resource, $options = []) { @@ -18237,9 +18305,9 @@ namespace Illuminate\Support\Facades { * Get the URL for the file at the given path. * * @param string $path - * @return string + * @return string * @throws \RuntimeException - * @static + * @static */ public static function url($path) { @@ -18254,9 +18322,9 @@ namespace Illuminate\Support\Facades { * @param string $path * @param \DateTimeInterface $expiration * @param array $options - * @return array + * @return array * @throws \RuntimeException - * @static + * @static */ public static function temporaryUploadUrl($path, $expiration, $options = []) { @@ -18270,8 +18338,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $directory * @param bool $recursive - * @return array - * @static + * @return array + * @static */ public static function files($directory = null, $recursive = false) { @@ -18284,8 +18352,8 @@ namespace Illuminate\Support\Facades { * Get all of the files from the given directory (recursive). * * @param string|null $directory - * @return array - * @static + * @return array + * @static */ public static function allFiles($directory = null) { @@ -18299,8 +18367,8 @@ namespace Illuminate\Support\Facades { * * @param string|null $directory * @param bool $recursive - * @return array - * @static + * @return array + * @static */ public static function directories($directory = null, $recursive = false) { @@ -18313,8 +18381,8 @@ namespace Illuminate\Support\Facades { * Get all the directories within a given directory (recursive). * * @param string|null $directory - * @return array - * @static + * @return array + * @static */ public static function allDirectories($directory = null) { @@ -18327,8 +18395,8 @@ namespace Illuminate\Support\Facades { * Create a directory. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function makeDirectory($path) { @@ -18341,8 +18409,8 @@ namespace Illuminate\Support\Facades { * Recursively delete a directory. * * @param string $directory - * @return bool - * @static + * @return bool + * @static */ public static function deleteDirectory($directory) { @@ -18354,8 +18422,8 @@ namespace Illuminate\Support\Facades { /** * Get the Flysystem driver. * - * @return \League\Flysystem\FilesystemOperator - * @static + * @return \League\Flysystem\FilesystemOperator + * @static */ public static function getDriver() { @@ -18367,8 +18435,8 @@ namespace Illuminate\Support\Facades { /** * Get the Flysystem adapter. * - * @return \League\Flysystem\FilesystemAdapter - * @static + * @return \League\Flysystem\FilesystemAdapter + * @static */ public static function getAdapter() { @@ -18380,8 +18448,8 @@ namespace Illuminate\Support\Facades { /** * Get the configuration values. * - * @return array - * @static + * @return array + * @static */ public static function getConfig() { @@ -18394,8 +18462,8 @@ namespace Illuminate\Support\Facades { * Define a custom callback that generates file download responses. * * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function serveUsing($callback) { @@ -18408,8 +18476,8 @@ namespace Illuminate\Support\Facades { * Define a custom temporary URL builder callback. * * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function buildTemporaryUrlsUsing($callback) { @@ -18426,8 +18494,8 @@ namespace Illuminate\Support\Facades { * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default - * @return $this|TWhenReturnType - * @static + * @return $this|TWhenReturnType + * @static */ public static function when($value = null, $callback = null, $default = null) { @@ -18443,8 +18511,8 @@ namespace Illuminate\Support\Facades { * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default - * @return $this|TUnlessReturnType - * @static + * @return $this|TUnlessReturnType + * @static */ public static function unless($value = null, $callback = null, $default = null) { @@ -18458,8 +18526,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -18472,9 +18540,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -18486,8 +18554,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -18498,8 +18566,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -18512,9 +18580,9 @@ namespace Illuminate\Support\Facades { * * @param string $method * @param array $parameters - * @return mixed + * @return mixed * @throws \BadMethodCallException - * @static + * @static */ public static function macroCall($method, $parameters) { @@ -18525,16 +18593,14 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Routing\UrlGenerator */ class URL { /** * Get the full URL for the current request. * - * @return string - * @static + * @return string + * @static */ public static function full() { @@ -18545,8 +18611,8 @@ namespace Illuminate\Support\Facades { /** * Get the current URL for the request. * - * @return string - * @static + * @return string + * @static */ public static function current() { @@ -18558,8 +18624,8 @@ namespace Illuminate\Support\Facades { * Get the URL for the previous request. * * @param mixed $fallback - * @return string - * @static + * @return string + * @static */ public static function previous($fallback = false) { @@ -18571,8 +18637,8 @@ namespace Illuminate\Support\Facades { * Get the previous path info for the request. * * @param mixed $fallback - * @return string - * @static + * @return string + * @static */ public static function previousPath($fallback = false) { @@ -18586,8 +18652,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param mixed $extra * @param bool|null $secure - * @return string - * @static + * @return string + * @static */ public static function to($path, $extra = [], $secure = null) { @@ -18602,8 +18668,8 @@ namespace Illuminate\Support\Facades { * @param array $query * @param mixed $extra * @param bool|null $secure - * @return string - * @static + * @return string + * @static */ public static function query($path, $query = [], $extra = [], $secure = null) { @@ -18616,8 +18682,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param array $parameters - * @return string - * @static + * @return string + * @static */ public static function secure($path, $parameters = []) { @@ -18630,8 +18696,8 @@ namespace Illuminate\Support\Facades { * * @param string $path * @param bool|null $secure - * @return string - * @static + * @return string + * @static */ public static function asset($path, $secure = null) { @@ -18643,8 +18709,8 @@ namespace Illuminate\Support\Facades { * Generate the URL to a secure asset. * * @param string $path - * @return string - * @static + * @return string + * @static */ public static function secureAsset($path) { @@ -18658,8 +18724,8 @@ namespace Illuminate\Support\Facades { * @param string $root * @param string $path * @param bool|null $secure - * @return string - * @static + * @return string + * @static */ public static function assetFrom($root, $path, $secure = null) { @@ -18671,8 +18737,8 @@ namespace Illuminate\Support\Facades { * Get the default scheme for a raw URL. * * @param bool|null $secure - * @return string - * @static + * @return string + * @static */ public static function formatScheme($secure = null) { @@ -18687,9 +18753,9 @@ namespace Illuminate\Support\Facades { * @param mixed $parameters * @param \DateTimeInterface|\DateInterval|int|null $expiration * @param bool $absolute - * @return string + * @return string * @throws \InvalidArgumentException - * @static + * @static */ public static function signedRoute($name, $parameters = [], $expiration = null, $absolute = true) { @@ -18704,8 +18770,8 @@ namespace Illuminate\Support\Facades { * @param \DateTimeInterface|\DateInterval|int $expiration * @param array $parameters * @param bool $absolute - * @return string - * @static + * @return string + * @static */ public static function temporarySignedRoute($name, $expiration, $parameters = [], $absolute = true) { @@ -18719,8 +18785,8 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Http\Request $request * @param bool $absolute * @param array $ignoreQuery - * @return bool - * @static + * @return bool + * @static */ public static function hasValidSignature($request, $absolute = true, $ignoreQuery = []) { @@ -18733,8 +18799,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Http\Request $request * @param array $ignoreQuery - * @return bool - * @static + * @return bool + * @static */ public static function hasValidRelativeSignature($request, $ignoreQuery = []) { @@ -18748,8 +18814,8 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Http\Request $request * @param bool $absolute * @param array $ignoreQuery - * @return bool - * @static + * @return bool + * @static */ public static function hasCorrectSignature($request, $absolute = true, $ignoreQuery = []) { @@ -18761,8 +18827,8 @@ namespace Illuminate\Support\Facades { * Determine if the expires timestamp from the given request is not from the past. * * @param \Illuminate\Http\Request $request - * @return bool - * @static + * @return bool + * @static */ public static function signatureHasNotExpired($request) { @@ -18776,9 +18842,9 @@ namespace Illuminate\Support\Facades { * @param \BackedEnum|string $name * @param mixed $parameters * @param bool $absolute - * @return string + * @return string * @throws \Symfony\Component\Routing\Exception\RouteNotFoundException|\InvalidArgumentException - * @static + * @static */ public static function route($name, $parameters = [], $absolute = true) { @@ -18792,9 +18858,9 @@ namespace Illuminate\Support\Facades { * @param \Illuminate\Routing\Route $route * @param mixed $parameters * @param bool $absolute - * @return string + * @return string * @throws \Illuminate\Routing\Exceptions\UrlGenerationException - * @static + * @static */ public static function toRoute($route, $parameters, $absolute) { @@ -18808,9 +18874,9 @@ namespace Illuminate\Support\Facades { * @param string|array $action * @param mixed $parameters * @param bool $absolute - * @return string + * @return string * @throws \InvalidArgumentException - * @static + * @static */ public static function action($action, $parameters = [], $absolute = true) { @@ -18822,8 +18888,8 @@ namespace Illuminate\Support\Facades { * Format the array of URL parameters. * * @param mixed $parameters - * @return array - * @static + * @return array + * @static */ public static function formatParameters($parameters) { @@ -18836,8 +18902,8 @@ namespace Illuminate\Support\Facades { * * @param string $scheme * @param string|null $root - * @return string - * @static + * @return string + * @static */ public static function formatRoot($scheme, $root = null) { @@ -18851,8 +18917,8 @@ namespace Illuminate\Support\Facades { * @param string $root * @param string $path * @param \Illuminate\Routing\Route|null $route - * @return string - * @static + * @return string + * @static */ public static function format($root, $path, $route = null) { @@ -18864,8 +18930,8 @@ namespace Illuminate\Support\Facades { * Determine if the given path is a valid URL. * * @param string $path - * @return bool - * @static + * @return bool + * @static */ public static function isValidUrl($path) { @@ -18877,8 +18943,8 @@ namespace Illuminate\Support\Facades { * Set the default named parameters used by the URL generator. * * @param array $defaults - * @return void - * @static + * @return void + * @static */ public static function defaults($defaults) { @@ -18889,8 +18955,8 @@ namespace Illuminate\Support\Facades { /** * Get the default named parameters used by the URL generator. * - * @return array - * @static + * @return array + * @static */ public static function getDefaultParameters() { @@ -18902,8 +18968,8 @@ namespace Illuminate\Support\Facades { * Force the scheme for URLs. * * @param string|null $scheme - * @return void - * @static + * @return void + * @static */ public static function forceScheme($scheme) { @@ -18915,8 +18981,8 @@ namespace Illuminate\Support\Facades { * Force the use of the HTTPS scheme for all generated URLs. * * @param bool $force - * @return void - * @static + * @return void + * @static */ public static function forceHttps($force = true) { @@ -18928,8 +18994,8 @@ namespace Illuminate\Support\Facades { * Set the URL origin for all generated URLs. * * @param string|null $root - * @return void - * @static + * @return void + * @static */ public static function useOrigin($root) { @@ -18941,9 +19007,9 @@ namespace Illuminate\Support\Facades { * Set the forced root URL. * * @param string|null $root - * @return void + * @return void * @deprecated Use useOrigin - * @static + * @static */ public static function forceRootUrl($root) { @@ -18955,8 +19021,8 @@ namespace Illuminate\Support\Facades { * Set the URL origin for all generated asset URLs. * * @param string|null $root - * @return void - * @static + * @return void + * @static */ public static function useAssetOrigin($root) { @@ -18968,8 +19034,8 @@ namespace Illuminate\Support\Facades { * Set a callback to be used to format the host of generated URLs. * * @param \Closure $callback - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function formatHostUsing($callback) { @@ -18981,8 +19047,8 @@ namespace Illuminate\Support\Facades { * Set a callback to be used to format the path of generated URLs. * * @param \Closure $callback - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function formatPathUsing($callback) { @@ -18993,8 +19059,8 @@ namespace Illuminate\Support\Facades { /** * Get the path formatter being used by the URL generator. * - * @return \Closure - * @static + * @return \Closure + * @static */ public static function pathFormatter() { @@ -19005,8 +19071,8 @@ namespace Illuminate\Support\Facades { /** * Get the request instance. * - * @return \Illuminate\Http\Request - * @static + * @return \Illuminate\Http\Request + * @static */ public static function getRequest() { @@ -19018,8 +19084,8 @@ namespace Illuminate\Support\Facades { * Set the current request instance. * * @param \Illuminate\Http\Request $request - * @return void - * @static + * @return void + * @static */ public static function setRequest($request) { @@ -19031,8 +19097,8 @@ namespace Illuminate\Support\Facades { * Set the route collection. * * @param \Illuminate\Routing\RouteCollectionInterface $routes - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function setRoutes($routes) { @@ -19044,8 +19110,8 @@ namespace Illuminate\Support\Facades { * Set the session resolver for the generator. * * @param callable $sessionResolver - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function setSessionResolver($sessionResolver) { @@ -19057,8 +19123,8 @@ namespace Illuminate\Support\Facades { * Set the encryption key resolver. * * @param callable $keyResolver - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function setKeyResolver($keyResolver) { @@ -19070,8 +19136,8 @@ namespace Illuminate\Support\Facades { * Clone a new instance of the URL generator with a different encryption key resolver. * * @param callable $keyResolver - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function withKeyResolver($keyResolver) { @@ -19083,8 +19149,8 @@ namespace Illuminate\Support\Facades { * Set the callback that should be used to attempt to resolve missing named routes. * * @param callable $missingNamedRouteResolver - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function resolveMissingNamedRoutesUsing($missingNamedRouteResolver) { @@ -19095,8 +19161,8 @@ namespace Illuminate\Support\Facades { /** * Get the root controller namespace. * - * @return string - * @static + * @return string + * @static */ public static function getRootControllerNamespace() { @@ -19108,8 +19174,8 @@ namespace Illuminate\Support\Facades { * Set the root controller namespace. * * @param string $rootNamespace - * @return \Illuminate\Routing\UrlGenerator - * @static + * @return \Illuminate\Routing\UrlGenerator + * @static */ public static function setRootControllerNamespace($rootNamespace) { @@ -19123,8 +19189,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -19136,9 +19202,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -19149,8 +19215,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -19160,8 +19226,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -19170,8 +19236,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\Validation\Factory */ class Validator { @@ -19182,8 +19246,8 @@ namespace Illuminate\Support\Facades { * @param array $rules * @param array $messages * @param array $attributes - * @return \Illuminate\Validation\Validator - * @static + * @return \Illuminate\Validation\Validator + * @static */ public static function make($data, $rules, $messages = [], $attributes = []) { @@ -19198,9 +19262,9 @@ namespace Illuminate\Support\Facades { * @param array $rules * @param array $messages * @param array $attributes - * @return array + * @return array * @throws \Illuminate\Validation\ValidationException - * @static + * @static */ public static function validate($data, $rules, $messages = [], $attributes = []) { @@ -19214,8 +19278,8 @@ namespace Illuminate\Support\Facades { * @param string $rule * @param \Closure|string $extension * @param string|null $message - * @return void - * @static + * @return void + * @static */ public static function extend($rule, $extension, $message = null) { @@ -19229,8 +19293,8 @@ namespace Illuminate\Support\Facades { * @param string $rule * @param \Closure|string $extension * @param string|null $message - * @return void - * @static + * @return void + * @static */ public static function extendImplicit($rule, $extension, $message = null) { @@ -19244,8 +19308,8 @@ namespace Illuminate\Support\Facades { * @param string $rule * @param \Closure|string $extension * @param string|null $message - * @return void - * @static + * @return void + * @static */ public static function extendDependent($rule, $extension, $message = null) { @@ -19258,8 +19322,8 @@ namespace Illuminate\Support\Facades { * * @param string $rule * @param \Closure|string $replacer - * @return void - * @static + * @return void + * @static */ public static function replacer($rule, $replacer) { @@ -19270,8 +19334,8 @@ namespace Illuminate\Support\Facades { /** * Indicate that unvalidated array keys should be included in validated data when the parent array is validated. * - * @return void - * @static + * @return void + * @static */ public static function includeUnvalidatedArrayKeys() { @@ -19282,8 +19346,8 @@ namespace Illuminate\Support\Facades { /** * Indicate that unvalidated array keys should be excluded from the validated data, even if the parent array was validated. * - * @return void - * @static + * @return void + * @static */ public static function excludeUnvalidatedArrayKeys() { @@ -19295,8 +19359,8 @@ namespace Illuminate\Support\Facades { * Set the Validator instance resolver. * * @param \Closure $resolver - * @return void - * @static + * @return void + * @static */ public static function resolver($resolver) { @@ -19307,8 +19371,8 @@ namespace Illuminate\Support\Facades { /** * Get the Translator implementation. * - * @return \Illuminate\Contracts\Translation\Translator - * @static + * @return \Illuminate\Contracts\Translation\Translator + * @static */ public static function getTranslator() { @@ -19319,8 +19383,8 @@ namespace Illuminate\Support\Facades { /** * Get the Presence Verifier implementation. * - * @return \Illuminate\Validation\PresenceVerifierInterface - * @static + * @return \Illuminate\Validation\PresenceVerifierInterface + * @static */ public static function getPresenceVerifier() { @@ -19332,8 +19396,8 @@ namespace Illuminate\Support\Facades { * Set the Presence Verifier implementation. * * @param \Illuminate\Validation\PresenceVerifierInterface $presenceVerifier - * @return void - * @static + * @return void + * @static */ public static function setPresenceVerifier($presenceVerifier) { @@ -19344,8 +19408,8 @@ namespace Illuminate\Support\Facades { /** * Get the container instance used by the validation factory. * - * @return \Illuminate\Contracts\Container\Container|null - * @static + * @return \Illuminate\Contracts\Container\Container|null + * @static */ public static function getContainer() { @@ -19357,8 +19421,8 @@ namespace Illuminate\Support\Facades { * Set the container instance used by the validation factory. * * @param \Illuminate\Contracts\Container\Container $container - * @return \Illuminate\Validation\Factory - * @static + * @return \Illuminate\Validation\Factory + * @static */ public static function setContainer($container) { @@ -19368,8 +19432,6 @@ namespace Illuminate\Support\Facades { } /** - * - * * @see \Illuminate\View\Factory */ class View { @@ -19379,8 +19441,8 @@ namespace Illuminate\Support\Facades { * @param string $path * @param \Illuminate\Contracts\Support\Arrayable|array $data * @param array $mergeData - * @return \Illuminate\Contracts\View\View - * @static + * @return \Illuminate\Contracts\View\View + * @static */ public static function file($path, $data = [], $mergeData = []) { @@ -19394,8 +19456,8 @@ namespace Illuminate\Support\Facades { * @param string $view * @param \Illuminate\Contracts\Support\Arrayable|array $data * @param array $mergeData - * @return \Illuminate\Contracts\View\View - * @static + * @return \Illuminate\Contracts\View\View + * @static */ public static function make($view, $data = [], $mergeData = []) { @@ -19409,9 +19471,9 @@ namespace Illuminate\Support\Facades { * @param array $views * @param \Illuminate\Contracts\Support\Arrayable|array $data * @param array $mergeData - * @return \Illuminate\Contracts\View\View + * @return \Illuminate\Contracts\View\View * @throws \InvalidArgumentException - * @static + * @static */ public static function first($views, $data = [], $mergeData = []) { @@ -19426,8 +19488,8 @@ namespace Illuminate\Support\Facades { * @param string $view * @param \Illuminate\Contracts\Support\Arrayable|array $data * @param array $mergeData - * @return string - * @static + * @return string + * @static */ public static function renderWhen($condition, $view, $data = [], $mergeData = []) { @@ -19442,8 +19504,8 @@ namespace Illuminate\Support\Facades { * @param string $view * @param \Illuminate\Contracts\Support\Arrayable|array $data * @param array $mergeData - * @return string - * @static + * @return string + * @static */ public static function renderUnless($condition, $view, $data = [], $mergeData = []) { @@ -19458,8 +19520,8 @@ namespace Illuminate\Support\Facades { * @param array $data * @param string $iterator * @param string $empty - * @return string - * @static + * @return string + * @static */ public static function renderEach($view, $data, $iterator, $empty = 'raw|') { @@ -19471,8 +19533,8 @@ namespace Illuminate\Support\Facades { * Determine if a given view exists. * * @param string $view - * @return bool - * @static + * @return bool + * @static */ public static function exists($view) { @@ -19484,9 +19546,9 @@ namespace Illuminate\Support\Facades { * Get the appropriate view engine for the given path. * * @param string $path - * @return \Illuminate\Contracts\View\Engine + * @return \Illuminate\Contracts\View\Engine * @throws \InvalidArgumentException - * @static + * @static */ public static function getEngineFromPath($path) { @@ -19499,8 +19561,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $key * @param mixed|null $value - * @return mixed - * @static + * @return mixed + * @static */ public static function share($key, $value = null) { @@ -19511,8 +19573,8 @@ namespace Illuminate\Support\Facades { /** * Increment the rendering counter. * - * @return void - * @static + * @return void + * @static */ public static function incrementRender() { @@ -19523,8 +19585,8 @@ namespace Illuminate\Support\Facades { /** * Decrement the rendering counter. * - * @return void - * @static + * @return void + * @static */ public static function decrementRender() { @@ -19535,8 +19597,8 @@ namespace Illuminate\Support\Facades { /** * Check if there are no active render operations. * - * @return bool - * @static + * @return bool + * @static */ public static function doneRendering() { @@ -19548,8 +19610,8 @@ namespace Illuminate\Support\Facades { * Determine if the given once token has been rendered. * * @param string $id - * @return bool - * @static + * @return bool + * @static */ public static function hasRenderedOnce($id) { @@ -19561,8 +19623,8 @@ namespace Illuminate\Support\Facades { * Mark the given once token as having been rendered. * * @param string $id - * @return void - * @static + * @return void + * @static */ public static function markAsRenderedOnce($id) { @@ -19574,8 +19636,8 @@ namespace Illuminate\Support\Facades { * Add a location to the array of view locations. * * @param string $location - * @return void - * @static + * @return void + * @static */ public static function addLocation($location) { @@ -19587,8 +19649,8 @@ namespace Illuminate\Support\Facades { * Prepend a location to the array of view locations. * * @param string $location - * @return void - * @static + * @return void + * @static */ public static function prependLocation($location) { @@ -19601,8 +19663,8 @@ namespace Illuminate\Support\Facades { * * @param string $namespace * @param string|array $hints - * @return \Illuminate\View\Factory - * @static + * @return \Illuminate\View\Factory + * @static */ public static function addNamespace($namespace, $hints) { @@ -19615,8 +19677,8 @@ namespace Illuminate\Support\Facades { * * @param string $namespace * @param string|array $hints - * @return \Illuminate\View\Factory - * @static + * @return \Illuminate\View\Factory + * @static */ public static function prependNamespace($namespace, $hints) { @@ -19629,8 +19691,8 @@ namespace Illuminate\Support\Facades { * * @param string $namespace * @param string|array $hints - * @return \Illuminate\View\Factory - * @static + * @return \Illuminate\View\Factory + * @static */ public static function replaceNamespace($namespace, $hints) { @@ -19644,8 +19706,8 @@ namespace Illuminate\Support\Facades { * @param string $extension * @param string $engine * @param \Closure|null $resolver - * @return void - * @static + * @return void + * @static */ public static function addExtension($extension, $engine, $resolver = null) { @@ -19656,8 +19718,8 @@ namespace Illuminate\Support\Facades { /** * Flush all of the factory state like sections and stacks. * - * @return void - * @static + * @return void + * @static */ public static function flushState() { @@ -19668,8 +19730,8 @@ namespace Illuminate\Support\Facades { /** * Flush all of the section contents if done rendering. * - * @return void - * @static + * @return void + * @static */ public static function flushStateIfDoneRendering() { @@ -19680,8 +19742,8 @@ namespace Illuminate\Support\Facades { /** * Get the extension to engine bindings. * - * @return array - * @static + * @return array + * @static */ public static function getExtensions() { @@ -19692,8 +19754,8 @@ namespace Illuminate\Support\Facades { /** * Get the engine resolver instance. * - * @return \Illuminate\View\Engines\EngineResolver - * @static + * @return \Illuminate\View\Engines\EngineResolver + * @static */ public static function getEngineResolver() { @@ -19704,8 +19766,8 @@ namespace Illuminate\Support\Facades { /** * Get the view finder instance. * - * @return \Illuminate\View\ViewFinderInterface - * @static + * @return \Illuminate\View\ViewFinderInterface + * @static */ public static function getFinder() { @@ -19717,8 +19779,8 @@ namespace Illuminate\Support\Facades { * Set the view finder instance. * * @param \Illuminate\View\ViewFinderInterface $finder - * @return void - * @static + * @return void + * @static */ public static function setFinder($finder) { @@ -19729,8 +19791,8 @@ namespace Illuminate\Support\Facades { /** * Flush the cache of views located by the finder. * - * @return void - * @static + * @return void + * @static */ public static function flushFinderCache() { @@ -19741,8 +19803,8 @@ namespace Illuminate\Support\Facades { /** * Get the event dispatcher instance. * - * @return \Illuminate\Contracts\Events\Dispatcher - * @static + * @return \Illuminate\Contracts\Events\Dispatcher + * @static */ public static function getDispatcher() { @@ -19754,8 +19816,8 @@ namespace Illuminate\Support\Facades { * Set the event dispatcher instance. * * @param \Illuminate\Contracts\Events\Dispatcher $events - * @return void - * @static + * @return void + * @static */ public static function setDispatcher($events) { @@ -19766,8 +19828,8 @@ namespace Illuminate\Support\Facades { /** * Get the IoC container instance. * - * @return \Illuminate\Contracts\Container\Container - * @static + * @return \Illuminate\Contracts\Container\Container + * @static */ public static function getContainer() { @@ -19779,8 +19841,8 @@ namespace Illuminate\Support\Facades { * Set the IoC container instance. * * @param \Illuminate\Contracts\Container\Container $container - * @return void - * @static + * @return void + * @static */ public static function setContainer($container) { @@ -19793,8 +19855,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $default - * @return mixed - * @static + * @return mixed + * @static */ public static function shared($key, $default = null) { @@ -19805,8 +19867,8 @@ namespace Illuminate\Support\Facades { /** * Get all of the shared data for the environment. * - * @return array - * @static + * @return array + * @static */ public static function getShared() { @@ -19820,8 +19882,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -19833,9 +19895,9 @@ namespace Illuminate\Support\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -19846,8 +19908,8 @@ namespace Illuminate\Support\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -19857,8 +19919,8 @@ namespace Illuminate\Support\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -19870,8 +19932,8 @@ namespace Illuminate\Support\Facades { * * @param \Illuminate\Contracts\View\View|\Illuminate\Contracts\Support\Htmlable|\Closure|string $view * @param array $data - * @return void - * @static + * @return void + * @static */ public static function startComponent($view, $data = []) { @@ -19884,8 +19946,8 @@ namespace Illuminate\Support\Facades { * * @param array $names * @param array $data - * @return void - * @static + * @return void + * @static */ public static function startComponentFirst($names, $data = []) { @@ -19896,8 +19958,8 @@ namespace Illuminate\Support\Facades { /** * Render the current component. * - * @return string - * @static + * @return string + * @static */ public static function renderComponent() { @@ -19910,8 +19972,8 @@ namespace Illuminate\Support\Facades { * * @param string $key * @param mixed $default - * @return mixed|null - * @static + * @return mixed|null + * @static */ public static function getConsumableComponentData($key, $default = null) { @@ -19925,8 +19987,8 @@ namespace Illuminate\Support\Facades { * @param string $name * @param string|null $content * @param array $attributes - * @return void - * @static + * @return void + * @static */ public static function slot($name, $content = null, $attributes = []) { @@ -19937,8 +19999,8 @@ namespace Illuminate\Support\Facades { /** * Save the slot content for rendering. * - * @return void - * @static + * @return void + * @static */ public static function endSlot() { @@ -19951,8 +20013,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $views * @param \Closure|string $callback - * @return array - * @static + * @return array + * @static */ public static function creator($views, $callback) { @@ -19964,8 +20026,8 @@ namespace Illuminate\Support\Facades { * Register multiple view composers via an array. * * @param array $composers - * @return array - * @static + * @return array + * @static */ public static function composers($composers) { @@ -19978,8 +20040,8 @@ namespace Illuminate\Support\Facades { * * @param array|string $views * @param \Closure|string $callback - * @return array - * @static + * @return array + * @static */ public static function composer($views, $callback) { @@ -19991,8 +20053,8 @@ namespace Illuminate\Support\Facades { * Call the composer for a given view. * * @param \Illuminate\Contracts\View\View $view - * @return void - * @static + * @return void + * @static */ public static function callComposer($view) { @@ -20004,8 +20066,8 @@ namespace Illuminate\Support\Facades { * Call the creator for a given view. * * @param \Illuminate\Contracts\View\View $view - * @return void - * @static + * @return void + * @static */ public static function callCreator($view) { @@ -20017,8 +20079,8 @@ namespace Illuminate\Support\Facades { * Start injecting content into a fragment. * * @param string $fragment - * @return void - * @static + * @return void + * @static */ public static function startFragment($fragment) { @@ -20029,9 +20091,9 @@ namespace Illuminate\Support\Facades { /** * Stop injecting content into a fragment. * - * @return string + * @return string * @throws \InvalidArgumentException - * @static + * @static */ public static function stopFragment() { @@ -20044,8 +20106,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param string|null $default - * @return mixed - * @static + * @return mixed + * @static */ public static function getFragment($name, $default = null) { @@ -20056,8 +20118,8 @@ namespace Illuminate\Support\Facades { /** * Get the entire array of rendered fragments. * - * @return array - * @static + * @return array + * @static */ public static function getFragments() { @@ -20068,8 +20130,8 @@ namespace Illuminate\Support\Facades { /** * Flush all of the fragments. * - * @return void - * @static + * @return void + * @static */ public static function flushFragments() { @@ -20082,8 +20144,8 @@ namespace Illuminate\Support\Facades { * * @param string $section * @param string|null $content - * @return void - * @static + * @return void + * @static */ public static function startSection($section, $content = null) { @@ -20096,8 +20158,8 @@ namespace Illuminate\Support\Facades { * * @param string $section * @param string $content - * @return void - * @static + * @return void + * @static */ public static function inject($section, $content) { @@ -20108,8 +20170,8 @@ namespace Illuminate\Support\Facades { /** * Stop injecting content into a section and return its contents. * - * @return string - * @static + * @return string + * @static */ public static function yieldSection() { @@ -20121,9 +20183,9 @@ namespace Illuminate\Support\Facades { * Stop injecting content into a section. * * @param bool $overwrite - * @return string + * @return string * @throws \InvalidArgumentException - * @static + * @static */ public static function stopSection($overwrite = false) { @@ -20134,9 +20196,9 @@ namespace Illuminate\Support\Facades { /** * Stop injecting content into a section and append it. * - * @return string + * @return string * @throws \InvalidArgumentException - * @static + * @static */ public static function appendSection() { @@ -20149,8 +20211,8 @@ namespace Illuminate\Support\Facades { * * @param string $section * @param string $default - * @return string - * @static + * @return string + * @static */ public static function yieldContent($section, $default = '') { @@ -20162,8 +20224,8 @@ namespace Illuminate\Support\Facades { * Get the parent placeholder for the current request. * * @param string $section - * @return string - * @static + * @return string + * @static */ public static function parentPlaceholder($section = '') { @@ -20174,8 +20236,8 @@ namespace Illuminate\Support\Facades { * Check if section exists. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasSection($name) { @@ -20187,8 +20249,8 @@ namespace Illuminate\Support\Facades { * Check if section does not exist. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function sectionMissing($name) { @@ -20201,8 +20263,8 @@ namespace Illuminate\Support\Facades { * * @param string $name * @param string|null $default - * @return mixed - * @static + * @return mixed + * @static */ public static function getSection($name, $default = null) { @@ -20213,8 +20275,8 @@ namespace Illuminate\Support\Facades { /** * Get the entire array of sections. * - * @return array - * @static + * @return array + * @static */ public static function getSections() { @@ -20225,8 +20287,8 @@ namespace Illuminate\Support\Facades { /** * Flush all of the sections. * - * @return void - * @static + * @return void + * @static */ public static function flushSections() { @@ -20238,8 +20300,8 @@ namespace Illuminate\Support\Facades { * Add new loop to the stack. * * @param \Countable|array $data - * @return void - * @static + * @return void + * @static */ public static function addLoop($data) { @@ -20250,8 +20312,8 @@ namespace Illuminate\Support\Facades { /** * Increment the top loop's indices. * - * @return void - * @static + * @return void + * @static */ public static function incrementLoopIndices() { @@ -20262,8 +20324,8 @@ namespace Illuminate\Support\Facades { /** * Pop a loop from the top of the loop stack. * - * @return void - * @static + * @return void + * @static */ public static function popLoop() { @@ -20274,8 +20336,8 @@ namespace Illuminate\Support\Facades { /** * Get an instance of the last loop in the stack. * - * @return \stdClass|null - * @static + * @return \stdClass|null + * @static */ public static function getLastLoop() { @@ -20286,8 +20348,8 @@ namespace Illuminate\Support\Facades { /** * Get the entire loop stack. * - * @return array - * @static + * @return array + * @static */ public static function getLoopStack() { @@ -20300,8 +20362,8 @@ namespace Illuminate\Support\Facades { * * @param string $section * @param string $content - * @return void - * @static + * @return void + * @static */ public static function startPush($section, $content = '') { @@ -20312,9 +20374,9 @@ namespace Illuminate\Support\Facades { /** * Stop injecting content into a push section. * - * @return string + * @return string * @throws \InvalidArgumentException - * @static + * @static */ public static function stopPush() { @@ -20327,8 +20389,8 @@ namespace Illuminate\Support\Facades { * * @param string $section * @param string $content - * @return void - * @static + * @return void + * @static */ public static function startPrepend($section, $content = '') { @@ -20339,9 +20401,9 @@ namespace Illuminate\Support\Facades { /** * Stop prepending content into a push section. * - * @return string + * @return string * @throws \InvalidArgumentException - * @static + * @static */ public static function stopPrepend() { @@ -20354,8 +20416,8 @@ namespace Illuminate\Support\Facades { * * @param string $section * @param string $default - * @return string - * @static + * @return string + * @static */ public static function yieldPushContent($section, $default = '') { @@ -20366,8 +20428,8 @@ namespace Illuminate\Support\Facades { /** * Flush all of the stacks. * - * @return void - * @static + * @return void + * @static */ public static function flushStacks() { @@ -20379,8 +20441,8 @@ namespace Illuminate\Support\Facades { * Start a translation block. * * @param array $replacements - * @return void - * @static + * @return void + * @static */ public static function startTranslation($replacements = []) { @@ -20391,8 +20453,8 @@ namespace Illuminate\Support\Facades { /** * Render the current translation. * - * @return string - * @static + * @return string + * @static */ public static function renderTranslation() { @@ -20405,15 +20467,11 @@ namespace Illuminate\Support\Facades { namespace Alban\LaravelCollectiveSpatieHtmlParser { /** - * - * * @see \Collective\Html\HtmlBuilder */ class FormFacade { /** - * - * - * @static + * @static */ public static function checkbox($name, $value = 1, $checked = null, $options = []) { @@ -20422,9 +20480,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function open($options = []) { @@ -20433,9 +20489,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function label($name, $value = null, $options = [], $escape_html = true) { @@ -20444,9 +20498,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function text($name, $value = null, $options = []) { @@ -20455,9 +20507,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function password($name, $options = []) { @@ -20466,9 +20516,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function select($name, $list = [], $selected = null, $selectAttributes = [], $optionsAttributes = [], $optgroupsAttributes = []) { @@ -20477,9 +20525,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function radio($name, $value = null, $checked = null, $options = []) { @@ -20488,9 +20534,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function submit($value = null, $options = []) { @@ -20499,9 +20543,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function close() { @@ -20510,9 +20552,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function input($type, $name, $value = null, $options = []) { @@ -20521,9 +20561,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function search($name, $value = null, $options = []) { @@ -20532,9 +20570,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function model($model, $options = []) { @@ -20543,9 +20579,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function hidden($name, $value = null, $options = []) { @@ -20554,9 +20588,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function email($name, $value = null, $options = []) { @@ -20565,9 +20597,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function tel($name, $value = null, $options = []) { @@ -20576,9 +20606,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function number($name, $value = null, $options = []) { @@ -20587,9 +20615,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function date($name, $value = null, $options = []) { @@ -20598,9 +20624,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function datetime($name, $value = null, $options = []) { @@ -20609,9 +20633,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function datetimeLocal($name, $value = null, $options = []) { @@ -20620,9 +20642,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function time($name, $value = null, $options = []) { @@ -20631,9 +20651,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function url($name, $value = null, $options = []) { @@ -20642,9 +20660,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function file($name, $options = []) { @@ -20653,9 +20669,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function textarea($name, $value = null, $options = []) { @@ -20664,9 +20678,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function reset($value, $attributes = []) { @@ -20675,9 +20687,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function image($url, $name = null, $attributes = []) { @@ -20686,9 +20696,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function color($name, $value = null, $options = []) { @@ -20697,9 +20705,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function button($value = null, $options = []) { @@ -20708,9 +20714,7 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { } /** - * - * - * @static + * @static */ public static function mergeOptions($element, $options = []) { @@ -20723,21 +20727,17 @@ namespace Alban\LaravelCollectiveSpatieHtmlParser { namespace Maatwebsite\Excel\Facades { /** - * - * */ class Excel { /** - * - * * @param object $export * @param string|null $fileName * @param string $writerType * @param array $headers - * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse * @throws \PhpOffice\PhpSpreadsheet\Exception * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception - * @static + * @static */ public static function download($export, $fileName, $writerType = null, $headers = []) { @@ -20746,18 +20746,16 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param string|null $disk Fallback for usage with named properties * @param object $export * @param string $filePath * @param string|null $diskName * @param string $writerType * @param mixed $diskOptions - * @return bool + * @return bool * @throws \PhpOffice\PhpSpreadsheet\Exception * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception - * @static + * @static */ public static function store($export, $filePath, $diskName = null, $writerType = null, $diskOptions = [], $disk = null) { @@ -20766,15 +20764,13 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param object $export * @param string $filePath * @param string|null $disk * @param string $writerType * @param mixed $diskOptions - * @return \Illuminate\Foundation\Bus\PendingDispatch - * @static + * @return \Illuminate\Foundation\Bus\PendingDispatch + * @static */ public static function queue($export, $filePath, $disk = null, $writerType = null, $diskOptions = []) { @@ -20783,12 +20779,10 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param object $export * @param string $writerType - * @return string - * @static + * @return string + * @static */ public static function raw($export, $writerType) { @@ -20797,14 +20791,12 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param object $import * @param string|\Symfony\Component\HttpFoundation\File\UploadedFile $filePath * @param string|null $disk * @param string|null $readerType - * @return \Maatwebsite\Excel\Reader|\Illuminate\Foundation\Bus\PendingDispatch - * @static + * @return \Maatwebsite\Excel\Reader|\Illuminate\Foundation\Bus\PendingDispatch + * @static */ public static function import($import, $filePath, $disk = null, $readerType = null) { @@ -20813,14 +20805,12 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param object $import * @param string|\Symfony\Component\HttpFoundation\File\UploadedFile $filePath * @param string|null $disk * @param string|null $readerType - * @return array - * @static + * @return array + * @static */ public static function toArray($import, $filePath, $disk = null, $readerType = null) { @@ -20829,14 +20819,12 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param object $import * @param string|\Symfony\Component\HttpFoundation\File\UploadedFile $filePath * @param string|null $disk * @param string|null $readerType - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function toCollection($import, $filePath, $disk = null, $readerType = null) { @@ -20845,14 +20833,12 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param \Illuminate\Contracts\Queue\ShouldQueue $import * @param string|\Symfony\Component\HttpFoundation\File\UploadedFile $filePath * @param string|null $disk * @param string $readerType - * @return \Illuminate\Foundation\Bus\PendingDispatch - * @static + * @return \Illuminate\Foundation\Bus\PendingDispatch + * @static */ public static function queueImport($import, $filePath, $disk = null, $readerType = null) { @@ -20866,8 +20852,8 @@ namespace Maatwebsite\Excel\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -20879,9 +20865,9 @@ namespace Maatwebsite\Excel\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -20892,8 +20878,8 @@ namespace Maatwebsite\Excel\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -20903,8 +20889,8 @@ namespace Maatwebsite\Excel\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -20912,12 +20898,10 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param string $concern * @param callable $handler * @param string $event - * @static + * @static */ public static function extend($concern, $handler, $event = 'Maatwebsite\\Excel\\Events\\BeforeWriting') { @@ -20928,8 +20912,8 @@ namespace Maatwebsite\Excel\Facades { * When asserting downloaded, stored, queued or imported, use regular expression * to look for a matching file path. * - * @return void - * @static + * @return void + * @static */ public static function matchByRegex() { @@ -20941,8 +20925,8 @@ namespace Maatwebsite\Excel\Facades { * When asserting downloaded, stored, queued or imported, use regular string * comparison for matching file path. * - * @return void - * @static + * @return void + * @static */ public static function doNotMatchByRegex() { @@ -20951,11 +20935,9 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param string $fileName * @param callable|null $callback - * @static + * @static */ public static function assertDownloaded($fileName, $callback = null) { @@ -20964,12 +20946,10 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param string $filePath * @param string|callable|null $disk * @param callable|null $callback - * @static + * @static */ public static function assertStored($filePath, $disk = null, $callback = null) { @@ -20978,12 +20958,10 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param string $filePath * @param string|callable|null $disk * @param callable|null $callback - * @static + * @static */ public static function assertQueued($filePath, $disk = null, $callback = null) { @@ -20992,9 +20970,7 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * - * @static + * @static */ public static function assertQueuedWithChain($chain) { @@ -21003,11 +20979,9 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param string $classname * @param callable|null $callback - * @static + * @static */ public static function assertExportedInRaw($classname, $callback = null) { @@ -21016,12 +20990,10 @@ namespace Maatwebsite\Excel\Facades { } /** - * - * * @param string $filePath * @param string|callable|null $disk * @param callable|null $callback - * @static + * @static */ public static function assertImported($filePath, $disk = null, $callback = null) { @@ -21034,21 +21006,19 @@ namespace Maatwebsite\Excel\Facades { namespace Yajra\DataTables\Facades { /** - * - * * @mixin \Yajra\DataTables\DataTables * @see \Yajra\DataTables\DataTables */ class DataTables { /** * Make a DataTable instance from source. - * + * * Alias of make for backward compatibility. * * @param object $source - * @return \Yajra\DataTables\DataTableAbstract + * @return \Yajra\DataTables\DataTableAbstract * @throws \Exception - * @static + * @static */ public static function of($source) { @@ -21059,9 +21029,9 @@ namespace Yajra\DataTables\Facades { * Make a DataTable instance from source. * * @param object $source - * @return \Yajra\DataTables\DataTableAbstract + * @return \Yajra\DataTables\DataTableAbstract * @throws \Yajra\DataTables\Exceptions\Exception - * @static + * @static */ public static function make($source) { @@ -21071,7 +21041,7 @@ namespace Yajra\DataTables\Facades { /** * Get request object. * - * @static + * @static */ public static function getRequest() { @@ -21082,7 +21052,7 @@ namespace Yajra\DataTables\Facades { /** * Get config instance. * - * @static + * @static */ public static function getConfig() { @@ -21094,7 +21064,7 @@ namespace Yajra\DataTables\Facades { * DataTables using query builder. * * @throws \Yajra\DataTables\Exceptions\Exception - * @static + * @static */ public static function query($builder) { @@ -21106,7 +21076,7 @@ namespace Yajra\DataTables\Facades { * DataTables using Eloquent Builder. * * @throws \Yajra\DataTables\Exceptions\Exception - * @static + * @static */ public static function eloquent($builder) { @@ -21119,7 +21089,7 @@ namespace Yajra\DataTables\Facades { * * @param \Illuminate\Support\Collection|array $collection * @throws \Yajra\DataTables\Exceptions\Exception - * @static + * @static */ public static function collection($collection) { @@ -21131,8 +21101,8 @@ namespace Yajra\DataTables\Facades { * DataTables using Collection. * * @param \Illuminate\Http\Resources\Json\AnonymousResourceCollection|array $resource - * @return \Yajra\DataTables\ApiResourceDataTable|\Yajra\DataTables\DataTableAbstract - * @static + * @return \Yajra\DataTables\ApiResourceDataTable|\Yajra\DataTables\DataTableAbstract + * @static */ public static function resource($resource) { @@ -21141,10 +21111,8 @@ namespace Yajra\DataTables\Facades { } /** - * - * * @throws \Yajra\DataTables\Exceptions\Exception - * @static + * @static */ public static function validateDataTable($engine, $parent) { @@ -21158,8 +21126,8 @@ namespace Yajra\DataTables\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -21171,9 +21139,9 @@ namespace Yajra\DataTables\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -21184,8 +21152,8 @@ namespace Yajra\DataTables\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -21195,8 +21163,8 @@ namespace Yajra\DataTables\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -21208,14 +21176,10 @@ namespace Yajra\DataTables\Facades { namespace App\Services\Facade { /** - * - * */ - class Yard { + class Yard extends \Gloudemans\Shoppingcart\Cart { /** - * - * - * @static + * @static */ public static function getTaxRate() { @@ -21223,9 +21187,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function setGlobalTaxRate($value) { @@ -21234,9 +21196,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getGlobalTaxRate() { @@ -21245,9 +21205,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function setShippingOption($value) { @@ -21256,9 +21214,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getShippingOption() { @@ -21267,9 +21223,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function isQuickShipping() { @@ -21278,9 +21232,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function isWithPayments() { @@ -21289,9 +21241,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function putYardExtra($key, $value) { @@ -21300,9 +21250,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getYardExtra($key) { @@ -21311,9 +21259,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getShippingCountryName() { @@ -21322,9 +21268,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getShippingCountryCountryId() { @@ -21333,9 +21277,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getShippingCountryId() { @@ -21344,9 +21286,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getShippingPrice() { @@ -21355,9 +21295,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getYContent() { @@ -21366,9 +21304,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getCartContent() { @@ -21377,9 +21313,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function reCalculateShippingPrice() { @@ -21388,9 +21322,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function reCalculate() { @@ -21399,9 +21331,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function calculateMargins() { @@ -21410,9 +21340,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function setUser($user) { @@ -21421,9 +21349,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function sponsorHasCommisson() { @@ -21432,9 +21358,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getYardMargin() { @@ -21443,9 +21367,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getYardCommission() { @@ -21454,9 +21376,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function setShippingCountryWithPrice($shipping_country_id, $shipping_is_for = 'ot') { @@ -21465,9 +21385,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function setUserPriceInfos($setUserPriceInfos = []) { @@ -21476,9 +21394,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function setShoppingUser($user, $use_payment_credit = false) { @@ -21487,9 +21403,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getUserPriceInfos() { @@ -21498,9 +21412,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getUserCountryId() { @@ -21509,9 +21421,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getUserCountry() { @@ -21520,9 +21430,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getUserTaxFree() { @@ -21531,9 +21439,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getShippingFree() { @@ -21542,9 +21448,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getShippingFreeMissingValue() { @@ -21553,9 +21457,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function setReducePaymentCredit($reduce_payment_credit) { @@ -21564,9 +21466,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getReducePaymentCredit() { @@ -21575,9 +21475,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getPaymentCredit() { @@ -21586,9 +21484,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function hasActivePromotion() { @@ -21597,9 +21493,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function reducePaymentCredit() { @@ -21608,9 +21502,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function preCalcuShippingPrice() { @@ -21619,13 +21511,11 @@ namespace App\Services\Facade { } /** - * - * * @param null $decimals * @param null $decimalPoint * @param null $thousandSeperator - * @return string - * @static + * @return string + * @static */ public static function shipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21634,9 +21524,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function shippingNet($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21645,9 +21533,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function subtotalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21656,9 +21542,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function taxWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21667,9 +21551,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function totalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21678,9 +21560,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function totalWithShippingWithoutCredit($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21689,9 +21569,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function totalfromCredit($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21705,8 +21583,8 @@ namespace App\Services\Facade { * @param int $decimals * @param string $decimalPoint * @param string $thousandSeperator - * @return string - * @static + * @return string + * @static */ public static function weight($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21715,9 +21593,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function points() { @@ -21726,9 +21602,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function compCount() { @@ -21742,8 +21616,8 @@ namespace App\Services\Facade { * @param int $decimals * @param string $decimalPoint * @param string $thousandSeperator - * @return string - * @static + * @return string + * @static */ public static function total($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withFees = false) { @@ -21757,8 +21631,8 @@ namespace App\Services\Facade { * @param int $decimals * @param string $decimalPoint * @param string $thousandSeperator - * @return float - * @static + * @return float + * @static */ public static function tax($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withFees = false) { @@ -21772,8 +21646,8 @@ namespace App\Services\Facade { * @param int $decimals * @param string $decimalPoint * @param string $thousandSeperator - * @return float - * @static + * @return float + * @static */ public static function subtotal($decimals = null, $decimalPoint = null, $thousandSeperator = null, $discount = true) { @@ -21782,9 +21656,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getCartItemByProduct($product_id, $set_price = 'with', $commission = true) { @@ -21793,9 +21665,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getCartItem($id, $name = null, $qty = null, $price = null, $options = []) { @@ -21804,9 +21674,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function destroy() { @@ -21815,9 +21683,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function rowPrice($row, $decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21826,9 +21692,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function rowPriceNet($row, $decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21837,9 +21701,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function rowSubtotal($row, $decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21848,9 +21710,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function rowSubtotalNet($row, $decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -21859,9 +21719,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getNumComp() { @@ -21870,9 +21728,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getCompProductBy($comp, $product_id = false) { @@ -21881,9 +21737,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getFreeProductId() { @@ -21892,9 +21746,7 @@ namespace App\Services\Facade { } /** - * - * - * @static + * @static */ public static function getContentByOrder() { @@ -21906,8 +21758,8 @@ namespace App\Services\Facade { * Set the current cart instance. * * @param string|null $instance - * @return \Gloudemans\Shoppingcart\Cart - * @static + * @return \Gloudemans\Shoppingcart\Cart + * @static */ public static function instance($instance = null) { @@ -21919,8 +21771,8 @@ namespace App\Services\Facade { /** * Get the current cart instance. * - * @return string - * @static + * @return string + * @static */ public static function currentInstance() { @@ -21937,8 +21789,8 @@ namespace App\Services\Facade { * @param int|float $qty * @param float $price * @param array $options - * @return \Gloudemans\Shoppingcart\CartItem - * @static + * @return \Gloudemans\Shoppingcart\CartItem + * @static */ public static function add($id, $name = null, $qty = null, $price = null, $taxRate = null, $options = []) { @@ -21952,8 +21804,8 @@ namespace App\Services\Facade { * * @param string $rowId * @param mixed $qty - * @return \Gloudemans\Shoppingcart\CartItem - * @static + * @return \Gloudemans\Shoppingcart\CartItem + * @static */ public static function update($rowId, $qty) { @@ -21966,8 +21818,8 @@ namespace App\Services\Facade { * Remove the cart item with the given rowId from the cart. * * @param string $rowId - * @return void - * @static + * @return void + * @static */ public static function remove($rowId) { @@ -21980,8 +21832,8 @@ namespace App\Services\Facade { * Get a cart item from the cart by its rowId. * * @param string $rowId - * @return \Gloudemans\Shoppingcart\CartItem - * @static + * @return \Gloudemans\Shoppingcart\CartItem + * @static */ public static function get($rowId) { @@ -21993,8 +21845,8 @@ namespace App\Services\Facade { /** * Get the content of the cart. * - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function content() { @@ -22006,8 +21858,8 @@ namespace App\Services\Facade { /** * Get the number of items in the cart. * - * @return int|float - * @static + * @return int|float + * @static */ public static function count() { @@ -22022,8 +21874,8 @@ namespace App\Services\Facade { * @param int $decimals * @param string $decimalPoint * @param string $thousandSeperator - * @return float - * @static + * @return float + * @static */ public static function feeTax($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -22038,8 +21890,8 @@ namespace App\Services\Facade { * @param int $decimals * @param string $decimalPoint * @param string $thousandSeperator - * @return float - * @static + * @return float + * @static */ public static function subtotalTax($decimals = null, $decimalPoint = null, $thousandSeperator = null) { @@ -22052,8 +21904,8 @@ namespace App\Services\Facade { * Search the cart content for a cart item matching the given search closure. * * @param \Closure $search - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function search($search) { @@ -22067,8 +21919,8 @@ namespace App\Services\Facade { * * @param string $rowId * @param mixed $model - * @return void - * @static + * @return void + * @static */ public static function associate($rowId, $model) { @@ -22082,8 +21934,8 @@ namespace App\Services\Facade { * * @param string $rowId * @param int|float $taxRate - * @return void - * @static + * @return void + * @static */ public static function setTax($rowId, $taxRate) { @@ -22096,8 +21948,8 @@ namespace App\Services\Facade { * Store an the current instance of the cart. * * @param mixed $identifier - * @return void - * @static + * @return void + * @static */ public static function store($identifier) { @@ -22110,8 +21962,8 @@ namespace App\Services\Facade { * Restore the cart with the given identifier. * * @param mixed $identifier - * @return void - * @static + * @return void + * @static */ public static function restore($identifier) { @@ -22124,8 +21976,8 @@ namespace App\Services\Facade { * Gets a specific fee from the fees array. * * @param $name - * @return mixed - * @static + * @return mixed + * @static */ public static function getFee($name) { @@ -22137,14 +21989,14 @@ namespace App\Services\Facade { /** * Allows to charge for additional fees that may or may not be taxable * ex - service fee , delivery fee, tips. - * + * * Because it uses ->put, the name must be unique otherwise will be overwritten. * * @param $name * @param $amount * @param $taxRate * @param array $options - * @static + * @static */ public static function addFee($name, $amount, $taxRate = null, $options = []) { @@ -22158,7 +22010,7 @@ namespace App\Services\Facade { * * @todo test to see if i need to restore this * @param $name - * @static + * @static */ public static function removeFee($name) { @@ -22170,7 +22022,7 @@ namespace App\Services\Facade { /** * Removes all the fees set in the cart. * - * @static + * @static */ public static function removeFees() { @@ -22184,8 +22036,8 @@ namespace App\Services\Facade { * * @param bool $format * @param bool $withTax - * @return string - * @static + * @return string + * @static */ public static function feeTotal($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withTax = true) { @@ -22197,8 +22049,8 @@ namespace App\Services\Facade { /** * Gets all the fees on the cart object. * - * @return mixed - * @static + * @return mixed + * @static */ public static function getFees() { @@ -22208,10 +22060,8 @@ namespace App\Services\Facade { } /** - * - * - * @return array - * @static + * @return array + * @static */ public static function toArray() { @@ -22221,11 +22071,9 @@ namespace App\Services\Facade { } /** - * - * * @param $array - * @return \App\Services\Yard - * @static + * @return \App\Services\Yard + * @static */ public static function fromArray($array) { @@ -22239,8 +22087,6 @@ namespace App\Services\Facade { namespace Barryvdh\Debugbar\Facades { /** - * - * * @method static void alert(mixed $message) * @method static void critical(mixed $message) * @method static void debug(mixed $message) @@ -22252,14 +22098,14 @@ namespace Barryvdh\Debugbar\Facades { * @method static void warning(mixed $message) * @see \Barryvdh\Debugbar\LaravelDebugbar */ - class Debugbar { + class Debugbar extends \DebugBar\DebugBar { /** * Returns the HTTP driver - * + * * If no http driver where defined, a PhpHttpDriver is automatically created * - * @return \DebugBar\HttpDriverInterface - * @static + * @return \DebugBar\HttpDriverInterface + * @static */ public static function getHttpDriver() { @@ -22270,7 +22116,7 @@ namespace Barryvdh\Debugbar\Facades { /** * Enable the Debugbar and boot, if not already booted. * - * @static + * @static */ public static function enable() { @@ -22281,7 +22127,7 @@ namespace Barryvdh\Debugbar\Facades { /** * Boot the debugbar (add collectors, renderer and listener) * - * @static + * @static */ public static function boot() { @@ -22290,9 +22136,7 @@ namespace Barryvdh\Debugbar\Facades { } /** - * - * - * @static + * @static */ public static function shouldCollect($name, $default = false) { @@ -22305,8 +22149,8 @@ namespace Barryvdh\Debugbar\Facades { * * @param \DebugBar\DataCollector\DataCollectorInterface $collector * @throws DebugBarException - * @return \Barryvdh\Debugbar\LaravelDebugbar - * @static + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static */ public static function addCollector($collector) { @@ -22323,7 +22167,7 @@ namespace Barryvdh\Debugbar\Facades { * @param int $line * @param array $context * @throws \ErrorException - * @static + * @static */ public static function handleError($level, $message, $file = '', $line = 0, $context = []) { @@ -22337,19 +22181,20 @@ namespace Barryvdh\Debugbar\Facades { * @param string $name Internal name, used to stop the measure * @param string $label Public name * @param string|null $collector - * @static + * @param string|null $group + * @static */ - public static function startMeasure($name, $label = null, $collector = null) + public static function startMeasure($name, $label = null, $collector = null, $group = null) { /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ - return $instance->startMeasure($name, $label, $collector); + return $instance->startMeasure($name, $label, $collector, $group); } /** * Stops a measure * * @param string $name - * @static + * @static */ public static function stopMeasure($name) { @@ -22362,7 +22207,7 @@ namespace Barryvdh\Debugbar\Facades { * * @param \Exception $e * @deprecated in favor of addThrowable - * @static + * @static */ public static function addException($e) { @@ -22374,7 +22219,7 @@ namespace Barryvdh\Debugbar\Facades { * Adds an exception to be profiled in the debug bar * * @param \Throwable $e - * @static + * @static */ public static function addThrowable($e) { @@ -22387,8 +22232,8 @@ namespace Barryvdh\Debugbar\Facades { * * @param string $baseUrl * @param string $basePath - * @return \Barryvdh\Debugbar\JavascriptRenderer - * @static + * @return \Barryvdh\Debugbar\JavascriptRenderer + * @static */ public static function getJavascriptRenderer($baseUrl = null, $basePath = null) { @@ -22401,8 +22246,8 @@ namespace Barryvdh\Debugbar\Facades { * * @param \Symfony\Component\HttpFoundation\Request $request * @param \Symfony\Component\HttpFoundation\Response $response - * @return \Symfony\Component\HttpFoundation\Response - * @static + * @return \Symfony\Component\HttpFoundation\Response + * @static */ public static function modifyResponse($request, $response) { @@ -22413,8 +22258,8 @@ namespace Barryvdh\Debugbar\Facades { /** * Check if the Debugbar is enabled * - * @return boolean - * @static + * @return boolean + * @static */ public static function isEnabled() { @@ -22425,8 +22270,8 @@ namespace Barryvdh\Debugbar\Facades { /** * Collects the data from the collectors * - * @return array - * @static + * @return array + * @static */ public static function collect() { @@ -22439,7 +22284,7 @@ namespace Barryvdh\Debugbar\Facades { * * @param \Symfony\Component\HttpFoundation\Response $response A Response instance * Based on https://github.com/symfony/WebProfilerBundle/blob/master/EventListener/WebDebugToolbarListener.php - * @static + * @static */ public static function injectDebugbar($response) { @@ -22450,8 +22295,8 @@ namespace Barryvdh\Debugbar\Facades { /** * Checks if there is stacked data in the session * - * @return boolean - * @static + * @return boolean + * @static */ public static function hasStackedData() { @@ -22463,8 +22308,8 @@ namespace Barryvdh\Debugbar\Facades { * Returns the data stacked in the session * * @param boolean $delete Whether to delete the data in the session - * @return array - * @static + * @return array + * @static */ public static function getStackedData($delete = true) { @@ -22475,7 +22320,7 @@ namespace Barryvdh\Debugbar\Facades { /** * Disable the Debugbar * - * @static + * @static */ public static function disable() { @@ -22491,12 +22336,13 @@ namespace Barryvdh\Debugbar\Facades { * @param float $end * @param array|null $params * @param string|null $collector - * @static + * @param string|null $group + * @static */ - public static function addMeasure($label, $start, $end, $params = [], $collector = null) + public static function addMeasure($label, $start, $end, $params = [], $collector = null, $group = null) { /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ - return $instance->addMeasure($label, $start, $end, $params, $collector); + return $instance->addMeasure($label, $start, $end, $params, $collector, $group); } /** @@ -22505,20 +22351,21 @@ namespace Barryvdh\Debugbar\Facades { * @param string $label * @param \Closure $closure * @param string|null $collector - * @return mixed - * @static + * @param string|null $group + * @return mixed + * @static */ - public static function measure($label, $closure, $collector = null) + public static function measure($label, $closure, $collector = null, $group = null) { /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ - return $instance->measure($label, $closure, $collector); + return $instance->measure($label, $closure, $collector, $group); } /** * Collect data in a CLI request * - * @return array - * @static + * @return array + * @static */ public static function collectConsole() { @@ -22528,12 +22375,12 @@ namespace Barryvdh\Debugbar\Facades { /** * Adds a message to the MessagesCollector - * + * * A message can be anything from an object to a string * * @param mixed $message * @param string $label - * @static + * @static */ public static function addMessage($message, $label = 'info') { @@ -22545,8 +22392,8 @@ namespace Barryvdh\Debugbar\Facades { * Checks if a data collector has been added * * @param string $name - * @return boolean - * @static + * @return boolean + * @static */ public static function hasCollector($name) { @@ -22559,9 +22406,9 @@ namespace Barryvdh\Debugbar\Facades { * Returns a data collector * * @param string $name - * @return \DebugBar\DataCollector\DataCollectorInterface + * @return \DebugBar\DataCollector\DataCollectorInterface * @throws DebugBarException - * @static + * @static */ public static function getCollector($name) { @@ -22573,8 +22420,8 @@ namespace Barryvdh\Debugbar\Facades { /** * Returns an array of all data collectors * - * @return array[DataCollectorInterface] - * @static + * @return array[DataCollectorInterface] + * @static */ public static function getCollectors() { @@ -22587,8 +22434,8 @@ namespace Barryvdh\Debugbar\Facades { * Sets the request id generator * * @param \DebugBar\RequestIdGeneratorInterface $generator - * @return \Barryvdh\Debugbar\LaravelDebugbar - * @static + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static */ public static function setRequestIdGenerator($generator) { @@ -22598,10 +22445,8 @@ namespace Barryvdh\Debugbar\Facades { } /** - * - * - * @return \DebugBar\RequestIdGeneratorInterface - * @static + * @return \DebugBar\RequestIdGeneratorInterface + * @static */ public static function getRequestIdGenerator() { @@ -22613,8 +22458,8 @@ namespace Barryvdh\Debugbar\Facades { /** * Returns the id of the current request * - * @return string - * @static + * @return string + * @static */ public static function getCurrentRequestId() { @@ -22627,8 +22472,8 @@ namespace Barryvdh\Debugbar\Facades { * Sets the storage backend to use to store the collected data * * @param \DebugBar\StorageInterface $storage - * @return \Barryvdh\Debugbar\LaravelDebugbar - * @static + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static */ public static function setStorage($storage = null) { @@ -22638,10 +22483,8 @@ namespace Barryvdh\Debugbar\Facades { } /** - * - * - * @return \DebugBar\StorageInterface - * @static + * @return \DebugBar\StorageInterface + * @static */ public static function getStorage() { @@ -22653,8 +22496,8 @@ namespace Barryvdh\Debugbar\Facades { /** * Checks if the data will be persisted * - * @return boolean - * @static + * @return boolean + * @static */ public static function isDataPersisted() { @@ -22667,8 +22510,8 @@ namespace Barryvdh\Debugbar\Facades { * Sets the HTTP driver * * @param \DebugBar\HttpDriverInterface $driver - * @return \Barryvdh\Debugbar\LaravelDebugbar - * @static + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static */ public static function setHttpDriver($driver) { @@ -22679,11 +22522,11 @@ namespace Barryvdh\Debugbar\Facades { /** * Returns collected data - * + * * Will collect the data if none have been collected yet * - * @return array - * @static + * @return array + * @static */ public static function getData() { @@ -22697,8 +22540,8 @@ namespace Barryvdh\Debugbar\Facades { * * @param string $headerName * @param integer $maxHeaderLength - * @return array - * @static + * @return array + * @static */ public static function getDataAsHeaders($headerName = 'phpdebugbar', $maxHeaderLength = 4096, $maxTotalHeaderLength = 250000) { @@ -22713,8 +22556,8 @@ namespace Barryvdh\Debugbar\Facades { * @param bool $useOpenHandler * @param string $headerName * @param integer $maxHeaderLength - * @return \Barryvdh\Debugbar\LaravelDebugbar - * @static + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static */ public static function sendDataInHeaders($useOpenHandler = null, $headerName = 'phpdebugbar', $maxHeaderLength = 4096) { @@ -22726,7 +22569,7 @@ namespace Barryvdh\Debugbar\Facades { /** * Stacks the data in the session for later rendering * - * @static + * @static */ public static function stackData() { @@ -22739,8 +22582,8 @@ namespace Barryvdh\Debugbar\Facades { * Sets the key to use in the $_SESSION array * * @param string $ns - * @return \Barryvdh\Debugbar\LaravelDebugbar - * @static + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static */ public static function setStackDataSessionNamespace($ns) { @@ -22752,8 +22595,8 @@ namespace Barryvdh\Debugbar\Facades { /** * Returns the key used in the $_SESSION array * - * @return string - * @static + * @return string + * @static */ public static function getStackDataSessionNamespace() { @@ -22767,8 +22610,8 @@ namespace Barryvdh\Debugbar\Facades { * if a storage is enabled * * @param boolean $enabled - * @return \Barryvdh\Debugbar\LaravelDebugbar - * @static + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static */ public static function setStackAlwaysUseSessionStorage($enabled = true) { @@ -22781,8 +22624,8 @@ namespace Barryvdh\Debugbar\Facades { * Checks if the session is always used to store stacked data * even if a storage is enabled * - * @return boolean - * @static + * @return boolean + * @static */ public static function isStackAlwaysUseSessionStorage() { @@ -22792,9 +22635,7 @@ namespace Barryvdh\Debugbar\Facades { } /** - * - * - * @static + * @static */ public static function offsetSet($key, $value) { @@ -22804,9 +22645,7 @@ namespace Barryvdh\Debugbar\Facades { } /** - * - * - * @static + * @static */ public static function offsetGet($key) { @@ -22816,9 +22655,7 @@ namespace Barryvdh\Debugbar\Facades { } /** - * - * - * @static + * @static */ public static function offsetExists($key) { @@ -22828,9 +22665,7 @@ namespace Barryvdh\Debugbar\Facades { } /** - * - * - * @static + * @static */ public static function offsetUnset($key) { @@ -22844,8 +22679,6 @@ namespace Barryvdh\Debugbar\Facades { namespace Barryvdh\DomPDF\Facade { /** - * - * * @method static BasePDF setBaseHost(string $baseHost) * @method static BasePDF setBasePath(string $basePath) * @method static BasePDF setCanvas(\Dompdf\Canvas $canvas) @@ -22863,7 +22696,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Get the DomPDF instance * - * @static + * @static */ public static function getDomPDF() { @@ -22874,7 +22707,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Show or hide warnings * - * @static + * @static */ public static function setWarnings($warnings) { @@ -22886,7 +22719,7 @@ namespace Barryvdh\DomPDF\Facade { * Load a HTML string * * @param string|null $encoding Not used yet - * @static + * @static */ public static function loadHTML($string, $encoding = null) { @@ -22897,7 +22730,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Load a HTML file * - * @static + * @static */ public static function loadFile($file) { @@ -22909,7 +22742,7 @@ namespace Barryvdh\DomPDF\Facade { * Add metadata info * * @param array $info - * @static + * @static */ public static function addInfo($info) { @@ -22923,7 +22756,7 @@ namespace Barryvdh\DomPDF\Facade { * @param array $data * @param array $mergeData * @param string|null $encoding Not used yet - * @static + * @static */ public static function loadView($view, $data = [], $mergeData = [], $encoding = null) { @@ -22936,7 +22769,7 @@ namespace Barryvdh\DomPDF\Facade { * * @param array|string $attribute * @param null|mixed $value - * @static + * @static */ public static function setOption($attribute, $value = null) { @@ -22948,7 +22781,7 @@ namespace Barryvdh\DomPDF\Facade { * Replace all the Options from DomPDF * * @param array $options - * @static + * @static */ public static function setOptions($options, $mergeWithDefaults = false) { @@ -22958,15 +22791,15 @@ namespace Barryvdh\DomPDF\Facade { /** * Output the PDF as a string. - * + * * The options parameter controls the output. Accepted options are: - * + * * 'compress' = > 1 or 0 - apply content stream compression, this is * on (1) by default * * @param array $options * @return string The rendered PDF as string - * @static + * @static */ public static function output($options = []) { @@ -22977,7 +22810,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Save the PDF to a file * - * @static + * @static */ public static function save($filename, $disk = null) { @@ -22988,7 +22821,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Make the PDF downloadable by the user * - * @static + * @static */ public static function download($filename = 'document.pdf') { @@ -22999,7 +22832,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Return a response with the PDF to show in the browser * - * @static + * @static */ public static function stream($filename = 'document.pdf') { @@ -23010,7 +22843,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Render the PDF * - * @static + * @static */ public static function render() { @@ -23019,10 +22852,8 @@ namespace Barryvdh\DomPDF\Facade { } /** - * - * * @param array $pc - * @static + * @static */ public static function setEncryption($password, $ownerpassword = '', $pc = []) { @@ -23032,8 +22863,6 @@ namespace Barryvdh\DomPDF\Facade { } /** - * - * * @method static BasePDF setBaseHost(string $baseHost) * @method static BasePDF setBasePath(string $basePath) * @method static BasePDF setCanvas(\Dompdf\Canvas $canvas) @@ -23051,7 +22880,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Get the DomPDF instance * - * @static + * @static */ public static function getDomPDF() { @@ -23062,7 +22891,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Show or hide warnings * - * @static + * @static */ public static function setWarnings($warnings) { @@ -23074,7 +22903,7 @@ namespace Barryvdh\DomPDF\Facade { * Load a HTML string * * @param string|null $encoding Not used yet - * @static + * @static */ public static function loadHTML($string, $encoding = null) { @@ -23085,7 +22914,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Load a HTML file * - * @static + * @static */ public static function loadFile($file) { @@ -23097,7 +22926,7 @@ namespace Barryvdh\DomPDF\Facade { * Add metadata info * * @param array $info - * @static + * @static */ public static function addInfo($info) { @@ -23111,7 +22940,7 @@ namespace Barryvdh\DomPDF\Facade { * @param array $data * @param array $mergeData * @param string|null $encoding Not used yet - * @static + * @static */ public static function loadView($view, $data = [], $mergeData = [], $encoding = null) { @@ -23124,7 +22953,7 @@ namespace Barryvdh\DomPDF\Facade { * * @param array|string $attribute * @param null|mixed $value - * @static + * @static */ public static function setOption($attribute, $value = null) { @@ -23136,7 +22965,7 @@ namespace Barryvdh\DomPDF\Facade { * Replace all the Options from DomPDF * * @param array $options - * @static + * @static */ public static function setOptions($options, $mergeWithDefaults = false) { @@ -23146,15 +22975,15 @@ namespace Barryvdh\DomPDF\Facade { /** * Output the PDF as a string. - * + * * The options parameter controls the output. Accepted options are: - * + * * 'compress' = > 1 or 0 - apply content stream compression, this is * on (1) by default * * @param array $options * @return string The rendered PDF as string - * @static + * @static */ public static function output($options = []) { @@ -23165,7 +22994,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Save the PDF to a file * - * @static + * @static */ public static function save($filename, $disk = null) { @@ -23176,7 +23005,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Make the PDF downloadable by the user * - * @static + * @static */ public static function download($filename = 'document.pdf') { @@ -23187,7 +23016,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Return a response with the PDF to show in the browser * - * @static + * @static */ public static function stream($filename = 'document.pdf') { @@ -23198,7 +23027,7 @@ namespace Barryvdh\DomPDF\Facade { /** * Render the PDF * - * @static + * @static */ public static function render() { @@ -23207,10 +23036,8 @@ namespace Barryvdh\DomPDF\Facade { } /** - * - * * @param array $pc - * @static + * @static */ public static function setEncryption($password, $ownerpassword = '', $pc = []) { @@ -23223,16 +23050,14 @@ namespace Barryvdh\DomPDF\Facade { namespace Laracasts\Flash { /** - * - * */ class Flash { /** * Flash an information message. * * @param string|null $message - * @return \Laracasts\Flash\FlashNotifier - * @static + * @return \Laracasts\Flash\FlashNotifier + * @static */ public static function info($message = null) { @@ -23244,8 +23069,8 @@ namespace Laracasts\Flash { * Flash a success message. * * @param string|null $message - * @return \Laracasts\Flash\FlashNotifier - * @static + * @return \Laracasts\Flash\FlashNotifier + * @static */ public static function success($message = null) { @@ -23257,8 +23082,8 @@ namespace Laracasts\Flash { * Flash an error message. * * @param string|null $message - * @return \Laracasts\Flash\FlashNotifier - * @static + * @return \Laracasts\Flash\FlashNotifier + * @static */ public static function error($message = null) { @@ -23270,8 +23095,8 @@ namespace Laracasts\Flash { * Flash a warning message. * * @param string|null $message - * @return \Laracasts\Flash\FlashNotifier - * @static + * @return \Laracasts\Flash\FlashNotifier + * @static */ public static function warning($message = null) { @@ -23284,8 +23109,8 @@ namespace Laracasts\Flash { * * @param string|null $message * @param string|null $level - * @return \Laracasts\Flash\FlashNotifier - * @static + * @return \Laracasts\Flash\FlashNotifier + * @static */ public static function message($message = null, $level = null) { @@ -23298,8 +23123,8 @@ namespace Laracasts\Flash { * * @param string|null $message * @param string $title - * @return \Laracasts\Flash\FlashNotifier - * @static + * @return \Laracasts\Flash\FlashNotifier + * @static */ public static function overlay($message = null, $title = 'Notice') { @@ -23310,8 +23135,8 @@ namespace Laracasts\Flash { /** * Add an "important" flash to the session. * - * @return \Laracasts\Flash\FlashNotifier - * @static + * @return \Laracasts\Flash\FlashNotifier + * @static */ public static function important() { @@ -23322,8 +23147,8 @@ namespace Laracasts\Flash { /** * Clear all registered messages. * - * @return \Laracasts\Flash\FlashNotifier - * @static + * @return \Laracasts\Flash\FlashNotifier + * @static */ public static function clear() { @@ -23337,8 +23162,8 @@ namespace Laracasts\Flash { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -23350,9 +23175,9 @@ namespace Laracasts\Flash { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -23363,8 +23188,8 @@ namespace Laracasts\Flash { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -23374,8 +23199,8 @@ namespace Laracasts\Flash { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -23387,17 +23212,13 @@ namespace Laracasts\Flash { namespace Spatie\Html\Facades { /** - * - * */ class Html { /** - * - * * @param string|null $href * @param string|null $text - * @return \Spatie\Html\Elements\A - * @static + * @return \Spatie\Html\Elements\A + * @static */ public static function a($href = null, $contents = null) { @@ -23406,12 +23227,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $href * @param string|null $text - * @return \Spatie\Html\Elements\I - * @static + * @return \Spatie\Html\Elements\I + * @static */ public static function i($contents = null) { @@ -23420,11 +23239,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \Spatie\Html\HtmlElement|string|null $contents - * @return \Spatie\Html\Elements\P - * @static + * @return \Spatie\Html\Elements\P + * @static */ public static function p($contents = null) { @@ -23433,12 +23250,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $type * @param string|null $text - * @return \Spatie\Html\Elements\Button - * @static + * @return \Spatie\Html\Elements\Button + * @static */ public static function button($contents = null, $type = null, $name = null) { @@ -23447,11 +23262,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \Illuminate\Support\Collection|iterable|string $classes - * @return \Illuminate\Contracts\Support\Htmlable - * @static + * @return \Illuminate\Contracts\Support\Htmlable + * @static */ public static function class($classes) { @@ -23460,13 +23273,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param bool $checked * @param string|null $value - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function checkbox($name = null, $checked = null, $value = '1') { @@ -23475,11 +23286,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \Spatie\Html\HtmlElement|string|iterable|int|float|null $contents - * @return \Spatie\Html\Elements\Div - * @static + * @return \Spatie\Html\Elements\Div + * @static */ public static function div($contents = null) { @@ -23488,12 +23297,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function email($name = null, $value = null) { @@ -23502,12 +23309,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function search($name = null, $value = null) { @@ -23516,13 +23321,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value * @param bool $format - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function date($name = '', $value = null, $format = true) { @@ -23531,13 +23334,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value * @param bool $format - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function datetime($name = '', $value = null, $format = true) { @@ -23546,15 +23347,13 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value * @param string|null $min * @param string|null $max * @param string|null $step - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function range($name = '', $value = null, $min = null, $max = null, $step = null) { @@ -23563,13 +23362,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value * @param bool $format - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function time($name = '', $value = null, $format = true) { @@ -23578,11 +23375,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string $tag - * @return \Spatie\Html\Elements\Element - * @static + * @return \Spatie\Html\Elements\Element + * @static */ public static function element($tag) { @@ -23591,13 +23386,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $type * @param string|null $name * @param string|null $value - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function input($type = null, $name = null, $value = null) { @@ -23606,11 +23399,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \Spatie\Html\HtmlElement|string|null $legend - * @return \Spatie\Html\Elements\Fieldset - * @static + * @return \Spatie\Html\Elements\Fieldset + * @static */ public static function fieldset($legend = null) { @@ -23619,12 +23410,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string $method * @param string|null $action - * @return \Spatie\Html\Elements\Form - * @static + * @return \Spatie\Html\Elements\Form + * @static */ public static function form($method = 'POST', $action = null) { @@ -23633,12 +23422,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function hidden($name = null, $value = null) { @@ -23647,12 +23434,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $src * @param string|null $alt - * @return \Spatie\Html\Elements\Img - * @static + * @return \Spatie\Html\Elements\Img + * @static */ public static function img($src = null, $alt = null) { @@ -23661,12 +23446,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \Spatie\Html\HtmlElement|iterable|string|null $contents * @param string|null $for - * @return \Spatie\Html\Elements\Label - * @static + * @return \Spatie\Html\Elements\Label + * @static */ public static function label($contents = null, $for = null) { @@ -23675,11 +23458,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \Spatie\Html\HtmlElement|string|null $contents - * @return \Spatie\Html\Elements\Legend - * @static + * @return \Spatie\Html\Elements\Legend + * @static */ public static function legend($contents = null) { @@ -23688,12 +23469,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string $email * @param string|null $text - * @return \Spatie\Html\Elements\A - * @static + * @return \Spatie\Html\Elements\A + * @static */ public static function mailto($email, $text = null) { @@ -23702,13 +23481,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param iterable $options * @param string|iterable|null $value - * @return \Spatie\Html\Elements\Select - * @static + * @return \Spatie\Html\Elements\Select + * @static */ public static function multiselect($name = null, $options = [], $value = null) { @@ -23717,15 +23494,13 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value * @param string|null $min * @param string|null $max * @param string|null $step - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function number($name = null, $value = null, $min = null, $max = null, $step = null) { @@ -23734,13 +23509,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $text * @param string|null $value * @param bool $selected - * @return \Spatie\Html\Elements\Option - * @static + * @return \Spatie\Html\Elements\Option + * @static */ public static function option($text = null, $value = null, $selected = false) { @@ -23749,11 +23522,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $value - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function password($name = null) { @@ -23762,13 +23533,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param bool $checked * @param string|null $value - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function radio($name = null, $checked = null, $value = null) { @@ -23777,13 +23546,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param iterable $options * @param string|iterable|null $value - * @return \Spatie\Html\Elements\Select - * @static + * @return \Spatie\Html\Elements\Select + * @static */ public static function select($name = null, $options = [], $value = null) { @@ -23792,11 +23559,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \Spatie\Html\HtmlElement|string|null $contents - * @return \Spatie\Html\Elements\Span - * @static + * @return \Spatie\Html\Elements\Span + * @static */ public static function span($contents = null) { @@ -23805,11 +23570,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $text - * @return \Spatie\Html\Elements\Button - * @static + * @return \Spatie\Html\Elements\Button + * @static */ public static function submit($text = null) { @@ -23818,11 +23581,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $text - * @return \Spatie\Html\Elements\Button - * @static + * @return \Spatie\Html\Elements\Button + * @static */ public static function reset($text = null) { @@ -23831,12 +23592,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string $number * @param string|null $text - * @return \Spatie\Html\Elements\A - * @static + * @return \Spatie\Html\Elements\A + * @static */ public static function tel($number, $text = null) { @@ -23845,12 +23604,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function text($name = null, $value = null) { @@ -23859,11 +23616,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name - * @return \Spatie\Html\Elements\File - * @static + * @return \Spatie\Html\Elements\File + * @static */ public static function file($name = null) { @@ -23872,12 +23627,10 @@ namespace Spatie\Html\Facades { } /** - * - * * @param string|null $name * @param string|null $value - * @return \Spatie\Html\Elements\Textarea - * @static + * @return \Spatie\Html\Elements\Textarea + * @static */ public static function textarea($name = null, $value = null) { @@ -23886,10 +23639,8 @@ namespace Spatie\Html\Facades { } /** - * - * - * @return \Spatie\Html\Elements\Input - * @static + * @return \Spatie\Html\Elements\Input + * @static */ public static function token() { @@ -23898,11 +23649,9 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \ArrayAccess|array $model - * @return \Spatie\Html\Html - * @static + * @return \Spatie\Html\Html + * @static */ public static function model($model) { @@ -23911,13 +23660,11 @@ namespace Spatie\Html\Facades { } /** - * - * * @param \ArrayAccess|array $model * @param string|null $method * @param string|null $action - * @return \Spatie\Html\Elements\Form - * @static + * @return \Spatie\Html\Elements\Form + * @static */ public static function modelForm($model, $method = 'POST', $action = null) { @@ -23926,10 +23673,8 @@ namespace Spatie\Html\Facades { } /** - * - * - * @return \Spatie\Html\Html - * @static + * @return \Spatie\Html\Html + * @static */ public static function endModel() { @@ -23938,10 +23683,8 @@ namespace Spatie\Html\Facades { } /** - * - * - * @return \Illuminate\Contracts\Support\Htmlable - * @static + * @return \Illuminate\Contracts\Support\Htmlable + * @static */ public static function closeModelForm() { @@ -23955,8 +23698,8 @@ namespace Spatie\Html\Facades { * * @param string $name * @param mixed $value - * @return mixed - * @static + * @return mixed + * @static */ public static function value($name, $default = null) { @@ -23970,8 +23713,8 @@ namespace Spatie\Html\Facades { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -23983,9 +23726,9 @@ namespace Spatie\Html\Facades { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -23996,8 +23739,8 @@ namespace Spatie\Html\Facades { * Checks if macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -24007,8 +23750,8 @@ namespace Spatie\Html\Facades { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -24020,15 +23763,11 @@ namespace Spatie\Html\Facades { namespace Spatie\LaravelIgnition\Facades { /** - * - * * @see \Spatie\FlareClient\Flare */ class Flare { /** - * - * - * @static + * @static */ public static function make($apiKey = null, $contextDetector = null) { @@ -24036,9 +23775,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function setApiToken($apiToken) { @@ -24047,9 +23784,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function apiTokenSet() { @@ -24058,9 +23793,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function setBaseUrl($baseUrl) { @@ -24069,9 +23802,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function setStage($stage) { @@ -24080,9 +23811,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function sendReportsImmediately() { @@ -24091,9 +23820,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function determineVersionUsing($determineVersionCallable) { @@ -24102,9 +23829,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function reportErrorLevels($reportErrorLevels) { @@ -24113,9 +23838,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function filterExceptionsUsing($filterExceptionsCallable) { @@ -24124,9 +23847,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function filterReportsUsing($filterReportsCallable) { @@ -24135,10 +23856,8 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * * @param array|ArgumentReducer>|\Spatie\Backtrace\Arguments\ArgumentReducers|null $argumentReducers - * @static + * @static */ public static function argumentReducers($argumentReducers) { @@ -24147,9 +23866,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function withStackFrameArguments($withStackFrameArguments = true, $forcePHPIniSetting = false) { @@ -24158,10 +23875,8 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * * @param class-string $exceptionClass - * @static + * @static */ public static function overrideGrouping($exceptionClass, $type = 'exception_message_and_class') { @@ -24170,9 +23885,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function version() { @@ -24181,10 +23894,8 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @return array> - * @static + * @return array> + * @static */ public static function getMiddleware() { @@ -24193,9 +23904,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function setContextProviderDetector($contextDetector) { @@ -24204,9 +23913,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function setContainer($container) { @@ -24215,9 +23922,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function registerFlareHandlers() { @@ -24226,9 +23931,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function registerExceptionHandler() { @@ -24237,9 +23940,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function registerErrorHandler($errorLevels = null) { @@ -24248,11 +23949,9 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * * @param \Spatie\FlareClient\FlareMiddleware\FlareMiddleware|array|class-string|callable $middleware - * @return \Spatie\FlareClient\Flare - * @static + * @return \Spatie\FlareClient\Flare + * @static */ public static function registerMiddleware($middleware) { @@ -24261,10 +23960,8 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @return array> - * @static + * @return array> + * @static */ public static function getMiddlewares() { @@ -24273,13 +23970,11 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * * @param string $name * @param string $messageLevel * @param array $metaData - * @return \Spatie\FlareClient\Flare - * @static + * @return \Spatie\FlareClient\Flare + * @static */ public static function glow($name, $messageLevel = 'info', $metaData = []) { @@ -24288,9 +23983,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function handleException($throwable) { @@ -24299,10 +23992,8 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @return mixed - * @static + * @return mixed + * @static */ public static function handleError($code, $message, $file = '', $line = 0) { @@ -24311,9 +24002,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function applicationPath($applicationPath) { @@ -24322,9 +24011,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function report($throwable, $callback = null, $report = null, $handled = null) { @@ -24333,9 +24020,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function reportHandled($throwable) { @@ -24344,9 +24029,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function reportMessage($message, $logLevel, $callback = null) { @@ -24355,9 +24038,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function sendTestReport($throwable) { @@ -24366,9 +24047,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function reset() { @@ -24377,9 +24056,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function anonymizeIp() { @@ -24388,11 +24065,9 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * * @param array $fieldNames - * @return \Spatie\FlareClient\Flare - * @static + * @return \Spatie\FlareClient\Flare + * @static */ public static function censorRequestBodyFields($fieldNames) { @@ -24401,9 +24076,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function createReport($throwable) { @@ -24412,9 +24085,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function createReportFromMessage($message, $logLevel) { @@ -24423,9 +24094,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function stage($stage) { @@ -24434,9 +24103,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function messageLevel($messageLevel) { @@ -24445,12 +24112,10 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * * @param string $groupName * @param mixed $default - * @return array - * @static + * @return array + * @static */ public static function getGroup($groupName = 'context', $default = []) { @@ -24459,9 +24124,7 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * - * @static + * @static */ public static function context($key, $value) { @@ -24470,12 +24133,10 @@ namespace Spatie\LaravelIgnition\Facades { } /** - * - * * @param string $groupName * @param array $properties - * @return \Spatie\FlareClient\Flare - * @static + * @return \Spatie\FlareClient\Flare + * @static */ public static function group($groupName, $properties) { @@ -24488,16 +24149,14 @@ namespace Spatie\LaravelIgnition\Facades { namespace Srmklive\PayPal\Facades { /** - * - * */ class PayPal { /** * Get specific PayPal API provider object to use. * * @throws Exception - * @return \Srmklive\PayPal\Services\PayPal - * @static + * @return \Srmklive\PayPal\Services\PayPal + * @static */ public static function getProvider() { @@ -24508,8 +24167,8 @@ namespace Srmklive\PayPal\Facades { * Set PayPal API Client to use. * * @throws \Exception - * @return \Srmklive\PayPal\Services\PayPal - * @static + * @return \Srmklive\PayPal\Services\PayPal + * @static */ public static function setProvider() { @@ -24521,8 +24180,6 @@ namespace Srmklive\PayPal\Facades { namespace Illuminate\Support { /** - * - * * @template TKey of array-key * @template-covariant TValue * @implements \ArrayAccess @@ -24530,10 +24187,8 @@ namespace Illuminate\Support { */ class Collection { /** - * - * * @see \Barryvdh\Debugbar\ServiceProvider::register() - * @static + * @static */ public static function debug() { @@ -24541,14 +24196,12 @@ namespace Illuminate\Support { } /** - * - * * @see \Maatwebsite\Excel\Mixins\DownloadCollectionMixin::downloadExcel() * @param string $fileName * @param string|null $writerType * @param mixed $withHeadings * @param array $responseHeaders - * @static + * @static */ public static function downloadExcel($fileName, $writerType = null, $withHeadings = false, $responseHeaders = []) { @@ -24556,14 +24209,12 @@ namespace Illuminate\Support { } /** - * - * * @see \Maatwebsite\Excel\Mixins\StoreCollectionMixin::storeExcel() * @param string $filePath * @param string|null $disk * @param string|null $writerType * @param mixed $withHeadings - * @static + * @static */ public static function storeExcel($filePath, $disk = null, $writerType = null, $withHeadings = false) { @@ -24575,17 +24226,13 @@ namespace Illuminate\Support { namespace Illuminate\Http { /** - * - * */ - class Request { + class Request extends \Symfony\Component\HttpFoundation\Request { /** - * - * * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() * @param array $rules * @param mixed $params - * @static + * @static */ public static function validate($rules, ...$params) { @@ -24593,13 +24240,11 @@ namespace Illuminate\Http { } /** - * - * * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() * @param string $errorBag * @param array $rules * @param mixed $params - * @static + * @static */ public static function validateWithBag($errorBag, $rules, ...$params) { @@ -24607,11 +24252,9 @@ namespace Illuminate\Http { } /** - * - * * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() * @param mixed $absolute - * @static + * @static */ public static function hasValidSignature($absolute = true) { @@ -24619,10 +24262,8 @@ namespace Illuminate\Http { } /** - * - * * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() - * @static + * @static */ public static function hasValidRelativeSignature() { @@ -24630,12 +24271,10 @@ namespace Illuminate\Http { } /** - * - * * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() * @param mixed $ignoreQuery * @param mixed $absolute - * @static + * @static */ public static function hasValidSignatureWhileIgnoring($ignoreQuery = [], $absolute = true) { @@ -24643,11 +24282,9 @@ namespace Illuminate\Http { } /** - * - * * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() * @param mixed $ignoreQuery - * @static + * @static */ public static function hasValidRelativeSignatureWhileIgnoring($ignoreQuery = []) { @@ -24659,17 +24296,13 @@ namespace Illuminate\Http { namespace Illuminate\Routing { /** - * - * * @mixin \Illuminate\Routing\RouteRegistrar */ class Router { /** - * - * * @see \Laravel\Ui\AuthRouteMethods::auth() * @param mixed $options - * @static + * @static */ public static function auth($options = []) { @@ -24677,10 +24310,8 @@ namespace Illuminate\Routing { } /** - * - * * @see \Laravel\Ui\AuthRouteMethods::resetPassword() - * @static + * @static */ public static function resetPassword() { @@ -24688,10 +24319,8 @@ namespace Illuminate\Routing { } /** - * - * * @see \Laravel\Ui\AuthRouteMethods::confirmPassword() - * @static + * @static */ public static function confirmPassword() { @@ -24699,10 +24328,8 @@ namespace Illuminate\Routing { } /** - * - * * @see \Laravel\Ui\AuthRouteMethods::emailVerification() - * @static + * @static */ public static function emailVerification() { @@ -24714,54 +24341,11 @@ namespace Illuminate\Routing { namespace Illuminate\Database\Eloquent { /** - * - * * @template TKey of array-key * @template TModel of \Illuminate\Database\Eloquent\Model * @extends \Illuminate\Support\Collection */ - class Collection { - /** - * - * - * @see \Barryvdh\Debugbar\ServiceProvider::register() - * @static - */ - public static function debug() - { - return \Illuminate\Database\Eloquent\Collection::debug(); - } - - /** - * - * - * @see \Maatwebsite\Excel\Mixins\DownloadCollectionMixin::downloadExcel() - * @param string $fileName - * @param string|null $writerType - * @param mixed $withHeadings - * @param array $responseHeaders - * @static - */ - public static function downloadExcel($fileName, $writerType = null, $withHeadings = false, $responseHeaders = []) - { - return \Illuminate\Database\Eloquent\Collection::downloadExcel($fileName, $writerType, $withHeadings, $responseHeaders); - } - - /** - * - * - * @see \Maatwebsite\Excel\Mixins\StoreCollectionMixin::storeExcel() - * @param string $filePath - * @param string|null $disk - * @param string|null $writerType - * @param mixed $withHeadings - * @static - */ - public static function storeExcel($filePath, $disk = null, $writerType = null, $withHeadings = false) - { - return \Illuminate\Database\Eloquent\Collection::storeExcel($filePath, $disk, $writerType, $withHeadings); - } - + class Collection extends \Illuminate\Support\Collection { } } @@ -24781,8 +24365,6 @@ namespace { class DB extends \Illuminate\Support\Facades\DB {} /** - * - * * @template TCollection of static * @template TModel of static * @template TValue of static @@ -24792,8 +24374,8 @@ namespace { * Create and return an un-saved model instance. * * @param array $attributes - * @return TModel - * @static + * @return TModel + * @static */ public static function make($attributes = []) { @@ -24806,8 +24388,8 @@ namespace { * * @param string $identifier * @param \Illuminate\Database\Eloquent\Scope|\Closure $scope - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withGlobalScope($identifier, $scope) { @@ -24819,8 +24401,8 @@ namespace { * Remove a registered global scope. * * @param \Illuminate\Database\Eloquent\Scope|string $scope - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withoutGlobalScope($scope) { @@ -24832,8 +24414,8 @@ namespace { * Remove all or passed registered global scopes. * * @param array|null $scopes - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withoutGlobalScopes($scopes = null) { @@ -24844,8 +24426,8 @@ namespace { /** * Get an array of global scopes that were removed from the query. * - * @return array - * @static + * @return array + * @static */ public static function removedScopes() { @@ -24857,8 +24439,8 @@ namespace { * Add a where clause on the primary key to the query. * * @param mixed $id - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereKey($id) { @@ -24870,8 +24452,8 @@ namespace { * Add a where clause on the primary key to the query. * * @param mixed $id - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereKeyNot($id) { @@ -24886,8 +24468,8 @@ namespace { * @param mixed $operator * @param mixed $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function where($column, $operator = null, $value = null, $boolean = 'and') { @@ -24902,8 +24484,8 @@ namespace { * @param mixed $operator * @param mixed $value * @param string $boolean - * @return TModel|null - * @static + * @return TModel|null + * @static */ public static function firstWhere($column, $operator = null, $value = null, $boolean = 'and') { @@ -24917,8 +24499,8 @@ namespace { * @param (\Closure(static): mixed)|array|string|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhere($column, $operator = null, $value = null) { @@ -24933,8 +24515,8 @@ namespace { * @param mixed $operator * @param mixed $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNot($column, $operator = null, $value = null, $boolean = 'and') { @@ -24948,8 +24530,8 @@ namespace { * @param (\Closure(static): mixed)|array|string|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNot($column, $operator = null, $value = null) { @@ -24961,8 +24543,8 @@ namespace { * Add an "order by" clause for a timestamp to the query. * * @param string|\Illuminate\Contracts\Database\Query\Expression $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function latest($column = null) { @@ -24974,8 +24556,8 @@ namespace { * Add an "order by" clause for a timestamp to the query. * * @param string|\Illuminate\Contracts\Database\Query\Expression $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function oldest($column = null) { @@ -24987,8 +24569,8 @@ namespace { * Create a collection of models from plain arrays. * * @param array $items - * @return \Illuminate\Database\Eloquent\Collection - * @static + * @return \Illuminate\Database\Eloquent\Collection + * @static */ public static function hydrate($items) { @@ -25001,8 +24583,8 @@ namespace { * * @param string $query * @param array $bindings - * @return \Illuminate\Database\Eloquent\Collection - * @static + * @return \Illuminate\Database\Eloquent\Collection + * @static */ public static function fromQuery($query, $bindings = []) { @@ -25016,7 +24598,7 @@ namespace { * @param mixed $id * @param array|string $columns * @return ($id is (\Illuminate\Contracts\Support\Arrayable|array) ? \Illuminate\Database\Eloquent\Collection : TModel|null) - * @static + * @static */ public static function find($id, $columns = []) { @@ -25029,10 +24611,10 @@ namespace { * * @param mixed $id * @param array|string $columns - * @return TModel + * @return TModel * @throws \Illuminate\Database\Eloquent\ModelNotFoundException * @throws \Illuminate\Database\MultipleRecordsFoundException - * @static + * @static */ public static function findSole($id, $columns = []) { @@ -25045,8 +24627,8 @@ namespace { * * @param \Illuminate\Contracts\Support\Arrayable|array $ids * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Collection - * @static + * @return \Illuminate\Database\Eloquent\Collection + * @static */ public static function findMany($ids, $columns = []) { @@ -25061,7 +24643,7 @@ namespace { * @param array|string $columns * @return ($id is (\Illuminate\Contracts\Support\Arrayable|array) ? \Illuminate\Database\Eloquent\Collection : TModel) * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - * @static + * @static */ public static function findOrFail($id, $columns = []) { @@ -25075,7 +24657,7 @@ namespace { * @param mixed $id * @param array|string $columns * @return ($id is (\Illuminate\Contracts\Support\Arrayable|array) ? \Illuminate\Database\Eloquent\Collection : TModel) - * @static + * @static */ public static function findOrNew($id, $columns = []) { @@ -25094,7 +24676,7 @@ namespace { * ? \Illuminate\Database\Eloquent\Collection * : TModel|TValue * ) - * @static + * @static */ public static function findOr($id, $columns = [], $callback = null) { @@ -25107,8 +24689,8 @@ namespace { * * @param array $attributes * @param array $values - * @return TModel - * @static + * @return TModel + * @static */ public static function firstOrNew($attributes = [], $values = []) { @@ -25121,8 +24703,8 @@ namespace { * * @param array $attributes * @param array $values - * @return TModel - * @static + * @return TModel + * @static */ public static function firstOrCreate($attributes = [], $values = []) { @@ -25135,8 +24717,8 @@ namespace { * * @param array $attributes * @param array $values - * @return TModel - * @static + * @return TModel + * @static */ public static function createOrFirst($attributes = [], $values = []) { @@ -25149,8 +24731,8 @@ namespace { * * @param array $attributes * @param array $values - * @return TModel - * @static + * @return TModel + * @static */ public static function updateOrCreate($attributes, $values = []) { @@ -25166,8 +24748,8 @@ namespace { * @param int|float $default * @param int|float $step * @param array $extra - * @return TModel - * @static + * @return TModel + * @static */ public static function incrementOrCreate($attributes, $column = 'count', $default = 1, $step = 1, $extra = []) { @@ -25179,9 +24761,9 @@ namespace { * Execute the query and get the first result or throw an exception. * * @param array|string $columns - * @return TModel + * @return TModel * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - * @static + * @static */ public static function firstOrFail($columns = []) { @@ -25195,8 +24777,8 @@ namespace { * @template TValue * @param (\Closure(): TValue)|list $columns * @param (\Closure(): TValue)|null $callback - * @return TModel|TValue - * @static + * @return TModel|TValue + * @static */ public static function firstOr($columns = [], $callback = null) { @@ -25208,10 +24790,10 @@ namespace { * Execute the query and get the first result if it's the sole matching record. * * @param array|string $columns - * @return TModel + * @return TModel * @throws \Illuminate\Database\Eloquent\ModelNotFoundException * @throws \Illuminate\Database\MultipleRecordsFoundException - * @static + * @static */ public static function sole($columns = []) { @@ -25223,8 +24805,8 @@ namespace { * Get a single column's value from the first result of a query. * * @param string|\Illuminate\Contracts\Database\Query\Expression $column - * @return mixed - * @static + * @return mixed + * @static */ public static function value($column) { @@ -25236,10 +24818,10 @@ namespace { * Get a single column's value from the first result of a query if it's the sole matching record. * * @param string|\Illuminate\Contracts\Database\Query\Expression $column - * @return mixed + * @return mixed * @throws \Illuminate\Database\Eloquent\ModelNotFoundException * @throws \Illuminate\Database\MultipleRecordsFoundException - * @static + * @static */ public static function soleValue($column) { @@ -25251,9 +24833,9 @@ namespace { * Get a single column's value from the first result of the query or throw an exception. * * @param string|\Illuminate\Contracts\Database\Query\Expression $column - * @return mixed + * @return mixed * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - * @static + * @static */ public static function valueOrFail($column) { @@ -25265,8 +24847,8 @@ namespace { * Execute the query as a "select" statement. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Collection - * @static + * @return \Illuminate\Database\Eloquent\Collection + * @static */ public static function get($columns = []) { @@ -25278,8 +24860,8 @@ namespace { * Get the hydrated models without eager loading. * * @param array|string $columns - * @return array - * @static + * @return array + * @static */ public static function getModels($columns = []) { @@ -25291,8 +24873,8 @@ namespace { * Eager load the relationships for the models. * * @param array $models - * @return array - * @static + * @return array + * @static */ public static function eagerLoadRelations($models) { @@ -25304,8 +24886,8 @@ namespace { * Register a closure to be invoked after the query is executed. * * @param \Closure $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function afterQuery($callback) { @@ -25317,8 +24899,8 @@ namespace { * Invoke the "after query" modification callbacks. * * @param mixed $result - * @return mixed - * @static + * @return mixed + * @static */ public static function applyAfterQueryCallbacks($result) { @@ -25329,8 +24911,8 @@ namespace { /** * Get a lazy collection for the given query. * - * @return \Illuminate\Support\LazyCollection - * @static + * @return \Illuminate\Support\LazyCollection + * @static */ public static function cursor() { @@ -25343,8 +24925,8 @@ namespace { * * @param string|\Illuminate\Contracts\Database\Query\Expression $column * @param string|null $key - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function pluck($column, $key = null) { @@ -25360,9 +24942,9 @@ namespace { * @param string $pageName * @param int|null $page * @param \Closure|int|null $total - * @return \Illuminate\Pagination\LengthAwarePaginator + * @return \Illuminate\Pagination\LengthAwarePaginator * @throws \InvalidArgumentException - * @static + * @static */ public static function paginate($perPage = null, $columns = [], $pageName = 'page', $page = null, $total = null) { @@ -25377,8 +24959,8 @@ namespace { * @param array|string $columns * @param string $pageName * @param int|null $page - * @return \Illuminate\Contracts\Pagination\Paginator - * @static + * @return \Illuminate\Contracts\Pagination\Paginator + * @static */ public static function simplePaginate($perPage = null, $columns = [], $pageName = 'page', $page = null) { @@ -25393,8 +24975,8 @@ namespace { * @param array|string $columns * @param string $cursorName * @param \Illuminate\Pagination\Cursor|string|null $cursor - * @return \Illuminate\Contracts\Pagination\CursorPaginator - * @static + * @return \Illuminate\Contracts\Pagination\CursorPaginator + * @static */ public static function cursorPaginate($perPage = null, $columns = [], $cursorName = 'cursor', $cursor = null) { @@ -25406,8 +24988,8 @@ namespace { * Save a new model and return the instance. * * @param array $attributes - * @return TModel - * @static + * @return TModel + * @static */ public static function create($attributes = []) { @@ -25419,8 +25001,8 @@ namespace { * Save a new model and return the instance without raising model events. * * @param array $attributes - * @return TModel - * @static + * @return TModel + * @static */ public static function createQuietly($attributes = []) { @@ -25432,8 +25014,8 @@ namespace { * Save a new model and return the instance. Allow mass-assignment. * * @param array $attributes - * @return TModel - * @static + * @return TModel + * @static */ public static function forceCreate($attributes) { @@ -25445,8 +25027,8 @@ namespace { * Save a new model instance with mass assignment without raising model events. * * @param array $attributes - * @return TModel - * @static + * @return TModel + * @static */ public static function forceCreateQuietly($attributes = []) { @@ -25460,8 +25042,8 @@ namespace { * @param array $values * @param array|string $uniqueBy * @param array|null $update - * @return int - * @static + * @return int + * @static */ public static function upsert($values, $uniqueBy, $update = null) { @@ -25473,8 +25055,8 @@ namespace { * Register a replacement for the default delete function. * * @param \Closure $callback - * @return void - * @static + * @return void + * @static */ public static function onDelete($callback) { @@ -25486,8 +25068,8 @@ namespace { * Call the given local model scopes. * * @param array|string $scopes - * @return static|mixed - * @static + * @return static|mixed + * @static */ public static function scopes($scopes) { @@ -25498,8 +25080,8 @@ namespace { /** * Apply the scopes to the Eloquent builder instance and return it. * - * @return static - * @static + * @return static + * @static */ public static function applyScopes() { @@ -25511,8 +25093,8 @@ namespace { * Prevent the specified relations from being eager loaded. * * @param mixed $relations - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function without($relations) { @@ -25524,8 +25106,8 @@ namespace { * Set the relationships that should be eager loaded while removing any previously added eager loading specifications. * * @param array): mixed)|string>|string $relations - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withOnly($relations) { @@ -25537,8 +25119,8 @@ namespace { * Create a new instance of the model being queried. * * @param array $attributes - * @return TModel - * @static + * @return TModel + * @static */ public static function newModelInstance($attributes = []) { @@ -25548,13 +25130,13 @@ namespace { /** * Specify attributes that should be added to any new models created by this builder. - * + * * The given key / value pairs will also be added as where conditions to the query. * * @param \Illuminate\Contracts\Database\Query\Expression|array|string $attributes * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withAttributes($attributes, $value = null) { @@ -25566,8 +25148,8 @@ namespace { * Apply query-time casts to the model instance. * * @param array $casts - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withCasts($casts) { @@ -25580,8 +25162,8 @@ namespace { * * @template TModelValue * @param \Closure(): TModelValue $scope - * @return TModelValue - * @static + * @return TModelValue + * @static */ public static function withSavepointIfNeeded($scope) { @@ -25592,8 +25174,8 @@ namespace { /** * Get the underlying query builder instance. * - * @return \Illuminate\Database\Query\Builder - * @static + * @return \Illuminate\Database\Query\Builder + * @static */ public static function getQuery() { @@ -25605,8 +25187,8 @@ namespace { * Set the underlying query builder instance. * * @param \Illuminate\Database\Query\Builder $query - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function setQuery($query) { @@ -25617,8 +25199,8 @@ namespace { /** * Get a base query builder instance. * - * @return \Illuminate\Database\Query\Builder - * @static + * @return \Illuminate\Database\Query\Builder + * @static */ public static function toBase() { @@ -25629,8 +25211,8 @@ namespace { /** * Get the relationships being eagerly loaded. * - * @return array - * @static + * @return array + * @static */ public static function getEagerLoads() { @@ -25642,8 +25224,8 @@ namespace { * Set the relationships being eagerly loaded. * * @param array $eagerLoad - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function setEagerLoads($eagerLoad) { @@ -25655,8 +25237,8 @@ namespace { * Indicate that the given relationships should not be eagerly loaded. * * @param array $relations - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withoutEagerLoad($relations) { @@ -25667,8 +25249,8 @@ namespace { /** * Flush the relationships being eagerly loaded. * - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withoutEagerLoads() { @@ -25679,8 +25261,8 @@ namespace { /** * Get the model instance being queried. * - * @return TModel - * @static + * @return TModel + * @static */ public static function getModel() { @@ -25693,8 +25275,8 @@ namespace { * * @template TModelNew of \Illuminate\Database\Eloquent\Model * @param TModelNew $model - * @return static - * @static + * @return static + * @static */ public static function setModel($model) { @@ -25706,8 +25288,8 @@ namespace { * Get the given macro by name. * * @param string $name - * @return \Closure - * @static + * @return \Closure + * @static */ public static function getMacro($name) { @@ -25719,8 +25301,8 @@ namespace { * Checks if a macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasMacro($name) { @@ -25732,8 +25314,8 @@ namespace { * Get the given global macro by name. * * @param string $name - * @return \Closure - * @static + * @return \Closure + * @static */ public static function getGlobalMacro($name) { @@ -25744,8 +25326,8 @@ namespace { * Checks if a global macro is registered. * * @param string $name - * @return bool - * @static + * @return bool + * @static */ public static function hasGlobalMacro($name) { @@ -25755,8 +25337,8 @@ namespace { /** * Clone the Eloquent query builder. * - * @return static - * @static + * @return static + * @static */ public static function clone() { @@ -25768,8 +25350,8 @@ namespace { * Register a closure to be invoked on a clone. * * @param \Closure $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function onClone($callback) { @@ -25782,8 +25364,8 @@ namespace { * * @param int $count * @param callable(\Illuminate\Support\Collection, int): mixed $callback - * @return bool - * @static + * @return bool + * @static */ public static function chunk($count, $callback) { @@ -25797,8 +25379,8 @@ namespace { * @template TReturn * @param callable(TValue): TReturn $callback * @param int $count - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function chunkMap($callback, $count = 1000) { @@ -25811,9 +25393,9 @@ namespace { * * @param callable(TValue, int): mixed $callback * @param int $count - * @return bool + * @return bool * @throws \RuntimeException - * @static + * @static */ public static function each($callback, $count = 1000) { @@ -25828,8 +25410,8 @@ namespace { * @param callable(\Illuminate\Support\Collection, int): mixed $callback * @param string|null $column * @param string|null $alias - * @return bool - * @static + * @return bool + * @static */ public static function chunkById($count, $callback, $column = null, $alias = null) { @@ -25844,8 +25426,8 @@ namespace { * @param callable(\Illuminate\Support\Collection, int): mixed $callback * @param string|null $column * @param string|null $alias - * @return bool - * @static + * @return bool + * @static */ public static function chunkByIdDesc($count, $callback, $column = null, $alias = null) { @@ -25861,9 +25443,9 @@ namespace { * @param string|null $column * @param string|null $alias * @param bool $descending - * @return bool + * @return bool * @throws \RuntimeException - * @static + * @static */ public static function orderedChunkById($count, $callback, $column = null, $alias = null, $descending = false) { @@ -25878,8 +25460,8 @@ namespace { * @param int $count * @param string|null $column * @param string|null $alias - * @return bool - * @static + * @return bool + * @static */ public static function eachById($callback, $count = 1000, $column = null, $alias = null) { @@ -25891,9 +25473,9 @@ namespace { * Query lazily, by chunks of the given size. * * @param int $chunkSize - * @return \Illuminate\Support\LazyCollection + * @return \Illuminate\Support\LazyCollection * @throws \InvalidArgumentException - * @static + * @static */ public static function lazy($chunkSize = 1000) { @@ -25907,9 +25489,9 @@ namespace { * @param int $chunkSize * @param string|null $column * @param string|null $alias - * @return \Illuminate\Support\LazyCollection + * @return \Illuminate\Support\LazyCollection * @throws \InvalidArgumentException - * @static + * @static */ public static function lazyById($chunkSize = 1000, $column = null, $alias = null) { @@ -25923,9 +25505,9 @@ namespace { * @param int $chunkSize * @param string|null $column * @param string|null $alias - * @return \Illuminate\Support\LazyCollection + * @return \Illuminate\Support\LazyCollection * @throws \InvalidArgumentException - * @static + * @static */ public static function lazyByIdDesc($chunkSize = 1000, $column = null, $alias = null) { @@ -25937,8 +25519,8 @@ namespace { * Execute the query and get the first result. * * @param array|string $columns - * @return TValue|null - * @static + * @return TValue|null + * @static */ public static function first($columns = []) { @@ -25950,10 +25532,10 @@ namespace { * Execute the query and get the first result if it's the sole matching record. * * @param array|string $columns - * @return TValue + * @return TValue * @throws \Illuminate\Database\RecordsNotFoundException * @throws \Illuminate\Database\MultipleRecordsFoundException - * @static + * @static */ public static function baseSole($columns = []) { @@ -25965,8 +25547,8 @@ namespace { * Pass the query to a given callback. * * @param callable($this): mixed $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function tap($callback) { @@ -25982,8 +25564,8 @@ namespace { * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default - * @return $this|TWhenReturnType - * @static + * @return $this|TWhenReturnType + * @static */ public static function when($value = null, $callback = null, $default = null) { @@ -25999,8 +25581,8 @@ namespace { * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default - * @return $this|TUnlessReturnType - * @static + * @return $this|TUnlessReturnType + * @static */ public static function unless($value = null, $callback = null, $default = null) { @@ -26017,9 +25599,9 @@ namespace { * @param int $count * @param string $boolean * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \RuntimeException - * @static + * @static */ public static function has($relation, $operator = '>=', $count = 1, $boolean = 'and', $callback = null) { @@ -26033,8 +25615,8 @@ namespace { * @param \Illuminate\Database\Eloquent\Relations\Relation<*, *, *>|string $relation * @param string $operator * @param int $count - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orHas($relation, $operator = '>=', $count = 1) { @@ -26049,8 +25631,8 @@ namespace { * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation * @param string $boolean * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function doesntHave($relation, $boolean = 'and', $callback = null) { @@ -26062,8 +25644,8 @@ namespace { * Add a relationship count / exists condition to the query with an "or". * * @param \Illuminate\Database\Eloquent\Relations\Relation<*, *, *>|string $relation - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orDoesntHave($relation) { @@ -26079,8 +25661,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback * @param string $operator * @param int $count - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereHas($relation, $callback = null, $operator = '>=', $count = 1) { @@ -26090,15 +25672,15 @@ namespace { /** * Add a relationship count / exists condition to the query with where clauses. - * + * * Also load the relationship with the same condition. * * @param string $relation * @param (\Closure(\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Database\Eloquent\Relations\Relation<*, *, *>): mixed)|null $callback * @param string $operator * @param int $count - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withWhereHas($relation, $callback = null, $operator = '>=', $count = 1) { @@ -26114,8 +25696,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback * @param string $operator * @param int $count - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereHas($relation, $callback = null, $operator = '>=', $count = 1) { @@ -26129,8 +25711,8 @@ namespace { * @template TRelatedModel of \Illuminate\Database\Eloquent\Model * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereDoesntHave($relation, $callback = null) { @@ -26144,8 +25726,8 @@ namespace { * @template TRelatedModel of \Illuminate\Database\Eloquent\Model * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereDoesntHave($relation, $callback = null) { @@ -26163,8 +25745,8 @@ namespace { * @param int $count * @param string $boolean * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function hasMorph($relation, $types, $operator = '>=', $count = 1, $boolean = 'and', $callback = null) { @@ -26179,8 +25761,8 @@ namespace { * @param string|array $types * @param string $operator * @param int $count - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orHasMorph($relation, $types, $operator = '>=', $count = 1) { @@ -26196,8 +25778,8 @@ namespace { * @param string|array $types * @param string $boolean * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function doesntHaveMorph($relation, $types, $boolean = 'and', $callback = null) { @@ -26210,8 +25792,8 @@ namespace { * * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation * @param string|array $types - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orDoesntHaveMorph($relation, $types) { @@ -26228,8 +25810,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback * @param string $operator * @param int $count - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1) { @@ -26246,8 +25828,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback * @param string $operator * @param int $count - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1) { @@ -26262,8 +25844,8 @@ namespace { * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation * @param string|array $types * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereDoesntHaveMorph($relation, $types, $callback = null) { @@ -26278,8 +25860,8 @@ namespace { * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation * @param string|array $types * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereDoesntHaveMorph($relation, $types, $callback = null) { @@ -26295,8 +25877,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereRelation($relation, $column, $operator = null, $value = null) { @@ -26311,8 +25893,8 @@ namespace { * @param \Closure|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withWhereRelation($relation, $column, $operator = null, $value = null) { @@ -26328,8 +25910,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereRelation($relation, $column, $operator = null, $value = null) { @@ -26345,8 +25927,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereDoesntHaveRelation($relation, $column, $operator = null, $value = null) { @@ -26362,8 +25944,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereDoesntHaveRelation($relation, $column, $operator = null, $value = null) { @@ -26380,8 +25962,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereMorphRelation($relation, $types, $column, $operator = null, $value = null) { @@ -26398,8 +25980,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereMorphRelation($relation, $types, $column, $operator = null, $value = null) { @@ -26416,8 +25998,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereMorphDoesntHaveRelation($relation, $types, $column, $operator = null, $value = null) { @@ -26434,8 +26016,8 @@ namespace { * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereMorphDoesntHaveRelation($relation, $types, $column, $operator = null, $value = null) { @@ -26448,8 +26030,8 @@ namespace { * * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation * @param \Illuminate\Database\Eloquent\Model|iterable|string|null $model - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereMorphedTo($relation, $model, $boolean = 'and') { @@ -26462,8 +26044,8 @@ namespace { * * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation * @param \Illuminate\Database\Eloquent\Model|iterable|string $model - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNotMorphedTo($relation, $model, $boolean = 'and') { @@ -26476,8 +26058,8 @@ namespace { * * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation * @param \Illuminate\Database\Eloquent\Model|iterable|string|null $model - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereMorphedTo($relation, $model) { @@ -26490,8 +26072,8 @@ namespace { * * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation * @param \Illuminate\Database\Eloquent\Model|iterable|string $model - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNotMorphedTo($relation, $model) { @@ -26505,9 +26087,9 @@ namespace { * @param \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection $related * @param string|null $relationshipName * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \Illuminate\Database\Eloquent\RelationNotFoundException - * @static + * @static */ public static function whereBelongsTo($related, $relationshipName = null, $boolean = 'and') { @@ -26520,9 +26102,9 @@ namespace { * * @param \Illuminate\Database\Eloquent\Model $related * @param string|null $relationshipName - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \RuntimeException - * @static + * @static */ public static function orWhereBelongsTo($related, $relationshipName = null) { @@ -26536,8 +26118,8 @@ namespace { * @param mixed $relations * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param string $function - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withAggregate($relations, $column, $function = null) { @@ -26549,8 +26131,8 @@ namespace { * Add subselect queries to count the relations. * * @param mixed $relations - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withCount($relations) { @@ -26563,8 +26145,8 @@ namespace { * * @param string|array $relation * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withMax($relation, $column) { @@ -26577,8 +26159,8 @@ namespace { * * @param string|array $relation * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withMin($relation, $column) { @@ -26591,8 +26173,8 @@ namespace { * * @param string|array $relation * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withSum($relation, $column) { @@ -26605,8 +26187,8 @@ namespace { * * @param string|array $relation * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withAvg($relation, $column) { @@ -26618,8 +26200,8 @@ namespace { * Add subselect queries to include the existence of related models. * * @param string|array $relation - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function withExists($relation) { @@ -26631,8 +26213,8 @@ namespace { * Merge the where constraints from another query to the current query. * * @param \Illuminate\Database\Eloquent\Builder<*> $from - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function mergeConstraintsFrom($from) { @@ -26641,13 +26223,11 @@ namespace { } /** - * - * * @see \Maatwebsite\Excel\Mixins\DownloadQueryMacro::__invoke() * @param string $fileName * @param string|null $writerType * @param mixed $withHeadings - * @static + * @static */ public static function downloadExcel($fileName, $writerType = null, $withHeadings = false) { @@ -26655,14 +26235,12 @@ namespace { } /** - * - * * @see \Maatwebsite\Excel\Mixins\StoreQueryMacro::__invoke() * @param string $filePath * @param string|null $disk * @param string|null $writerType * @param mixed $withHeadings - * @static + * @static */ public static function storeExcel($filePath, $disk = null, $writerType = null, $withHeadings = false) { @@ -26670,13 +26248,11 @@ namespace { } /** - * - * * @see \Maatwebsite\Excel\Mixins\ImportMacro::__invoke() * @param string $filename * @param string|null $disk * @param string|null $readerType - * @static + * @static */ public static function import($filename, $disk = null, $readerType = null) { @@ -26684,14 +26260,12 @@ namespace { } /** - * - * * @see \Maatwebsite\Excel\Mixins\ImportAsMacro::__invoke() * @param string $filename * @param callable $mapping * @param string|null $disk * @param string|null $readerType - * @static + * @static */ public static function importAs($filename, $mapping, $disk = null, $readerType = null) { @@ -26702,8 +26276,8 @@ namespace { * Set the columns to be selected. * * @param array|mixed $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function select($columns = []) { @@ -26716,9 +26290,9 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query * @param string $as - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \InvalidArgumentException - * @static + * @static */ public static function selectSub($query, $as) { @@ -26730,8 +26304,8 @@ namespace { * Add a new "raw" select expression to the query. * * @param string $expression - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function selectRaw($expression, $bindings = []) { @@ -26744,9 +26318,9 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query * @param string $as - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \InvalidArgumentException - * @static + * @static */ public static function fromSub($query, $as) { @@ -26759,8 +26333,8 @@ namespace { * * @param string $expression * @param mixed $bindings - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function fromRaw($expression, $bindings = []) { @@ -26772,8 +26346,8 @@ namespace { * Add a new select column to the query. * * @param array|mixed $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function addSelect($column) { @@ -26784,8 +26358,8 @@ namespace { /** * Force the query to only return distinct results. * - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function distinct() { @@ -26798,8 +26372,8 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $table * @param string|null $as - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function from($table, $as = null) { @@ -26811,8 +26385,8 @@ namespace { * Add an index hint to suggest a query index. * * @param string $index - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function useIndex($index) { @@ -26824,8 +26398,8 @@ namespace { * Add an index hint to force a query index. * * @param string $index - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function forceIndex($index) { @@ -26837,8 +26411,8 @@ namespace { * Add an index hint to ignore a query index. * * @param string $index - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function ignoreIndex($index) { @@ -26855,8 +26429,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second * @param string $type * @param bool $where - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false) { @@ -26872,8 +26446,8 @@ namespace { * @param string $operator * @param \Illuminate\Contracts\Database\Query\Expression|string $second * @param string $type - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function joinWhere($table, $first, $operator, $second, $type = 'inner') { @@ -26891,9 +26465,9 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second * @param string $type * @param bool $where - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \InvalidArgumentException - * @static + * @static */ public static function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false) { @@ -26905,8 +26479,8 @@ namespace { * Add a lateral join clause to the query. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function joinLateral($query, $as, $type = 'inner') { @@ -26918,8 +26492,8 @@ namespace { * Add a lateral left join to the query. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function leftJoinLateral($query, $as) { @@ -26934,8 +26508,8 @@ namespace { * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first * @param string|null $operator * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function leftJoin($table, $first, $operator = null, $second = null) { @@ -26950,8 +26524,8 @@ namespace { * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first * @param string $operator * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function leftJoinWhere($table, $first, $operator, $second) { @@ -26967,8 +26541,8 @@ namespace { * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first * @param string|null $operator * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function leftJoinSub($query, $as, $first, $operator = null, $second = null) { @@ -26983,8 +26557,8 @@ namespace { * @param \Closure|string $first * @param string|null $operator * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function rightJoin($table, $first, $operator = null, $second = null) { @@ -26999,8 +26573,8 @@ namespace { * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first * @param string $operator * @param \Illuminate\Contracts\Database\Query\Expression|string $second - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function rightJoinWhere($table, $first, $operator, $second) { @@ -27016,8 +26590,8 @@ namespace { * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first * @param string|null $operator * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function rightJoinSub($query, $as, $first, $operator = null, $second = null) { @@ -27032,8 +26606,8 @@ namespace { * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string|null $first * @param string|null $operator * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function crossJoin($table, $first = null, $operator = null, $second = null) { @@ -27046,8 +26620,8 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query * @param string $as - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function crossJoinSub($query, $as) { @@ -27060,8 +26634,8 @@ namespace { * * @param array $wheres * @param array $bindings - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function mergeWheres($wheres, $bindings) { @@ -27075,9 +26649,9 @@ namespace { * @param string $value * @param string $operator * @param bool $useDefault - * @return array + * @return array * @throws \InvalidArgumentException - * @static + * @static */ public static function prepareValueAndOperator($value, $operator, $useDefault = false) { @@ -27092,8 +26666,8 @@ namespace { * @param string|null $operator * @param string|null $second * @param string|null $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereColumn($first, $operator = null, $second = null, $boolean = 'and') { @@ -27107,8 +26681,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string|array $first * @param string|null $operator * @param string|null $second - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereColumn($first, $operator = null, $second = null) { @@ -27122,8 +26696,8 @@ namespace { * @param string $sql * @param mixed $bindings * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereRaw($sql, $bindings = [], $boolean = 'and') { @@ -27136,8 +26710,8 @@ namespace { * * @param string $sql * @param mixed $bindings - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereRaw($sql, $bindings = []) { @@ -27153,8 +26727,8 @@ namespace { * @param bool $caseSensitive * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereLike($column, $value, $caseSensitive = false, $boolean = 'and', $not = false) { @@ -27168,8 +26742,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param string $value * @param bool $caseSensitive - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereLike($column, $value, $caseSensitive = false) { @@ -27184,8 +26758,8 @@ namespace { * @param string $value * @param bool $caseSensitive * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNotLike($column, $value, $caseSensitive = false, $boolean = 'and') { @@ -27199,8 +26773,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param string $value * @param bool $caseSensitive - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNotLike($column, $value, $caseSensitive = false) { @@ -27215,8 +26789,8 @@ namespace { * @param mixed $values * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereIn($column, $values, $boolean = 'and', $not = false) { @@ -27229,8 +26803,8 @@ namespace { * * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param mixed $values - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereIn($column, $values) { @@ -27244,8 +26818,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param mixed $values * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNotIn($column, $values, $boolean = 'and') { @@ -27258,8 +26832,8 @@ namespace { * * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param mixed $values - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNotIn($column, $values) { @@ -27274,8 +26848,8 @@ namespace { * @param \Illuminate\Contracts\Support\Arrayable|array $values * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false) { @@ -27288,8 +26862,8 @@ namespace { * * @param string $column * @param \Illuminate\Contracts\Support\Arrayable|array $values - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereIntegerInRaw($column, $values) { @@ -27303,8 +26877,8 @@ namespace { * @param string $column * @param \Illuminate\Contracts\Support\Arrayable|array $values * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereIntegerNotInRaw($column, $values, $boolean = 'and') { @@ -27317,8 +26891,8 @@ namespace { * * @param string $column * @param \Illuminate\Contracts\Support\Arrayable|array $values - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereIntegerNotInRaw($column, $values) { @@ -27332,8 +26906,8 @@ namespace { * @param string|array|\Illuminate\Contracts\Database\Query\Expression $columns * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNull($columns, $boolean = 'and', $not = false) { @@ -27345,8 +26919,8 @@ namespace { * Add an "or where null" clause to the query. * * @param string|array|\Illuminate\Contracts\Database\Query\Expression $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNull($column) { @@ -27359,8 +26933,8 @@ namespace { * * @param string|array|\Illuminate\Contracts\Database\Query\Expression $columns * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNotNull($columns, $boolean = 'and') { @@ -27374,8 +26948,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereBetween($column, $values, $boolean = 'and', $not = false) { @@ -27389,8 +26963,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereBetweenColumns($column, $values, $boolean = 'and', $not = false) { @@ -27402,8 +26976,8 @@ namespace { * Add an or where between statement to the query. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereBetween($column, $values) { @@ -27415,8 +26989,8 @@ namespace { * Add an or where between statement using columns to the query. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereBetweenColumns($column, $values) { @@ -27429,8 +27003,8 @@ namespace { * * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNotBetween($column, $values, $boolean = 'and') { @@ -27443,8 +27017,8 @@ namespace { * * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNotBetweenColumns($column, $values, $boolean = 'and') { @@ -27456,8 +27030,8 @@ namespace { * Add an or where not between statement to the query. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNotBetween($column, $values) { @@ -27469,8 +27043,8 @@ namespace { * Add an or where not between statement using columns to the query. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNotBetweenColumns($column, $values) { @@ -27482,8 +27056,8 @@ namespace { * Add an "or where not null" clause to the query. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNotNull($column) { @@ -27498,8 +27072,8 @@ namespace { * @param \DateTimeInterface|string|null $operator * @param \DateTimeInterface|string|null $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereDate($column, $operator, $value = null, $boolean = 'and') { @@ -27513,8 +27087,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param \DateTimeInterface|string|null $operator * @param \DateTimeInterface|string|null $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereDate($column, $operator, $value = null) { @@ -27529,8 +27103,8 @@ namespace { * @param \DateTimeInterface|string|null $operator * @param \DateTimeInterface|string|null $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereTime($column, $operator, $value = null, $boolean = 'and') { @@ -27544,8 +27118,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param \DateTimeInterface|string|null $operator * @param \DateTimeInterface|string|null $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereTime($column, $operator, $value = null) { @@ -27560,8 +27134,8 @@ namespace { * @param \DateTimeInterface|string|int|null $operator * @param \DateTimeInterface|string|int|null $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereDay($column, $operator, $value = null, $boolean = 'and') { @@ -27575,8 +27149,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param \DateTimeInterface|string|int|null $operator * @param \DateTimeInterface|string|int|null $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereDay($column, $operator, $value = null) { @@ -27591,8 +27165,8 @@ namespace { * @param \DateTimeInterface|string|int|null $operator * @param \DateTimeInterface|string|int|null $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereMonth($column, $operator, $value = null, $boolean = 'and') { @@ -27606,8 +27180,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param \DateTimeInterface|string|int|null $operator * @param \DateTimeInterface|string|int|null $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereMonth($column, $operator, $value = null) { @@ -27622,8 +27196,8 @@ namespace { * @param \DateTimeInterface|string|int|null $operator * @param \DateTimeInterface|string|int|null $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereYear($column, $operator, $value = null, $boolean = 'and') { @@ -27637,8 +27211,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|string $column * @param \DateTimeInterface|string|int|null $operator * @param \DateTimeInterface|string|int|null $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereYear($column, $operator, $value = null) { @@ -27650,8 +27224,8 @@ namespace { * Add a nested where statement to the query. * * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNested($callback, $boolean = 'and') { @@ -27662,8 +27236,8 @@ namespace { /** * Create a new query instance for nested where condition. * - * @return \Illuminate\Database\Query\Builder - * @static + * @return \Illuminate\Database\Query\Builder + * @static */ public static function forNestedWhere() { @@ -27676,8 +27250,8 @@ namespace { * * @param \Illuminate\Database\Query\Builder $query * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function addNestedWhereQuery($query, $boolean = 'and') { @@ -27691,8 +27265,8 @@ namespace { * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $callback * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereExists($callback, $boolean = 'and', $not = false) { @@ -27705,8 +27279,8 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $callback * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereExists($callback, $not = false) { @@ -27719,8 +27293,8 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $callback * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNotExists($callback, $boolean = 'and') { @@ -27732,8 +27306,8 @@ namespace { * Add a where not exists clause to the query. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $callback - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNotExists($callback) { @@ -27746,8 +27320,8 @@ namespace { * * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function addWhereExistsQuery($query, $boolean = 'and', $not = false) { @@ -27762,9 +27336,9 @@ namespace { * @param string $operator * @param array $values * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \InvalidArgumentException - * @static + * @static */ public static function whereRowValues($columns, $operator, $values, $boolean = 'and') { @@ -27778,8 +27352,8 @@ namespace { * @param array $columns * @param string $operator * @param array $values - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereRowValues($columns, $operator, $values) { @@ -27794,8 +27368,8 @@ namespace { * @param mixed $value * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereJsonContains($column, $value, $boolean = 'and', $not = false) { @@ -27808,8 +27382,8 @@ namespace { * * @param string $column * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereJsonContains($column, $value) { @@ -27823,8 +27397,8 @@ namespace { * @param string $column * @param mixed $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereJsonDoesntContain($column, $value, $boolean = 'and') { @@ -27837,8 +27411,8 @@ namespace { * * @param string $column * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereJsonDoesntContain($column, $value) { @@ -27853,8 +27427,8 @@ namespace { * @param mixed $value * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereJsonOverlaps($column, $value, $boolean = 'and', $not = false) { @@ -27867,8 +27441,8 @@ namespace { * * @param string $column * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereJsonOverlaps($column, $value) { @@ -27882,8 +27456,8 @@ namespace { * @param string $column * @param mixed $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereJsonDoesntOverlap($column, $value, $boolean = 'and') { @@ -27896,8 +27470,8 @@ namespace { * * @param string $column * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereJsonDoesntOverlap($column, $value) { @@ -27911,8 +27485,8 @@ namespace { * @param string $column * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereJsonContainsKey($column, $boolean = 'and', $not = false) { @@ -27924,8 +27498,8 @@ namespace { * Add an "or" clause that determines if a JSON path exists to the query. * * @param string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereJsonContainsKey($column) { @@ -27938,8 +27512,8 @@ namespace { * * @param string $column * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereJsonDoesntContainKey($column, $boolean = 'and') { @@ -27951,8 +27525,8 @@ namespace { * Add an "or" clause that determines if a JSON path does not exist to the query. * * @param string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereJsonDoesntContainKey($column) { @@ -27967,8 +27541,8 @@ namespace { * @param mixed $operator * @param mixed $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereJsonLength($column, $operator, $value = null, $boolean = 'and') { @@ -27982,8 +27556,8 @@ namespace { * @param string $column * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereJsonLength($column, $operator, $value = null) { @@ -27996,8 +27570,8 @@ namespace { * * @param string $method * @param array $parameters - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function dynamicWhere($method, $parameters) { @@ -28011,8 +27585,8 @@ namespace { * @param string|string[] $columns * @param string $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereFullText($columns, $value, $options = [], $boolean = 'and') { @@ -28025,8 +27599,8 @@ namespace { * * @param string|string[] $columns * @param string $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereFullText($columns, $value, $options = []) { @@ -28041,8 +27615,8 @@ namespace { * @param mixed $operator * @param mixed $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereAll($columns, $operator = null, $value = null, $boolean = 'and') { @@ -28056,8 +27630,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereAll($columns, $operator = null, $value = null) { @@ -28072,8 +27646,8 @@ namespace { * @param mixed $operator * @param mixed $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereAny($columns, $operator = null, $value = null, $boolean = 'and') { @@ -28087,8 +27661,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereAny($columns, $operator = null, $value = null) { @@ -28103,8 +27677,8 @@ namespace { * @param mixed $operator * @param mixed $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNone($columns, $operator = null, $value = null, $boolean = 'and') { @@ -28118,8 +27692,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNone($columns, $operator = null, $value = null) { @@ -28131,8 +27705,8 @@ namespace { * Add a "group by" clause to the query. * * @param array|\Illuminate\Contracts\Database\Query\Expression|string $groups - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function groupBy(...$groups) { @@ -28144,8 +27718,8 @@ namespace { * Add a raw groupBy clause to the query. * * @param string $sql - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function groupByRaw($sql, $bindings = []) { @@ -28160,8 +27734,8 @@ namespace { * @param string|int|float|null $operator * @param string|int|float|null $value * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function having($column, $operator = null, $value = null, $boolean = 'and') { @@ -28175,8 +27749,8 @@ namespace { * @param \Illuminate\Contracts\Database\Query\Expression|\Closure|string $column * @param string|int|float|null $operator * @param string|int|float|null $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orHaving($column, $operator = null, $value = null) { @@ -28188,8 +27762,8 @@ namespace { * Add a nested having statement to the query. * * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function havingNested($callback, $boolean = 'and') { @@ -28202,8 +27776,8 @@ namespace { * * @param \Illuminate\Database\Query\Builder $query * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function addNestedHavingQuery($query, $boolean = 'and') { @@ -28217,8 +27791,8 @@ namespace { * @param array|string $columns * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function havingNull($columns, $boolean = 'and', $not = false) { @@ -28230,8 +27804,8 @@ namespace { * Add an "or having null" clause to the query. * * @param string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orHavingNull($column) { @@ -28244,8 +27818,8 @@ namespace { * * @param array|string $columns * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function havingNotNull($columns, $boolean = 'and') { @@ -28257,8 +27831,8 @@ namespace { * Add an "or having not null" clause to the query. * * @param string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orHavingNotNull($column) { @@ -28272,8 +27846,8 @@ namespace { * @param string $column * @param string $boolean * @param bool $not - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function havingBetween($column, $values, $boolean = 'and', $not = false) { @@ -28286,8 +27860,8 @@ namespace { * * @param string $sql * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function havingRaw($sql, $bindings = [], $boolean = 'and') { @@ -28299,8 +27873,8 @@ namespace { * Add a raw or having clause to the query. * * @param string $sql - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orHavingRaw($sql, $bindings = []) { @@ -28313,9 +27887,9 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column * @param string $direction - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \InvalidArgumentException - * @static + * @static */ public static function orderBy($column, $direction = 'asc') { @@ -28327,8 +27901,8 @@ namespace { * Add a descending "order by" clause to the query. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orderByDesc($column) { @@ -28340,8 +27914,8 @@ namespace { * Put the query's results in random order. * * @param string|int $seed - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function inRandomOrder($seed = '') { @@ -28354,8 +27928,8 @@ namespace { * * @param string $sql * @param array $bindings - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orderByRaw($sql, $bindings = []) { @@ -28367,8 +27941,8 @@ namespace { * Alias to set the "offset" value of the query. * * @param int $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function skip($value) { @@ -28380,8 +27954,8 @@ namespace { * Set the "offset" value of the query. * * @param int $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function offset($value) { @@ -28393,8 +27967,8 @@ namespace { * Alias to set the "limit" value of the query. * * @param int $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function take($value) { @@ -28406,8 +27980,8 @@ namespace { * Set the "limit" value of the query. * * @param int $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function limit($value) { @@ -28420,8 +27994,8 @@ namespace { * * @param int $value * @param string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function groupLimit($value, $column) { @@ -28434,8 +28008,8 @@ namespace { * * @param int $page * @param int $perPage - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function forPage($page, $perPage = 15) { @@ -28449,8 +28023,8 @@ namespace { * @param int $perPage * @param int|null $lastId * @param string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id') { @@ -28464,8 +28038,8 @@ namespace { * @param int $perPage * @param int|null $lastId * @param string $column - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id') { @@ -28478,8 +28052,8 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Contracts\Database\Query\Expression|string|null $column * @param string $direction - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function reorder($column = null, $direction = 'asc') { @@ -28492,8 +28066,8 @@ namespace { * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $query * @param bool $all - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function union($query, $all = false) { @@ -28505,8 +28079,8 @@ namespace { * Add a union all statement to the query. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $query - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function unionAll($query) { @@ -28518,8 +28092,8 @@ namespace { * Lock the selected rows in the table. * * @param string|bool $value - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function lock($value = true) { @@ -28530,8 +28104,8 @@ namespace { /** * Lock the selected rows in the table for updating. * - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function lockForUpdate() { @@ -28542,8 +28116,8 @@ namespace { /** * Share lock the selected rows in the table. * - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function sharedLock() { @@ -28554,8 +28128,8 @@ namespace { /** * Register a closure to be invoked before the query is executed. * - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function beforeQuery($callback) { @@ -28566,8 +28140,8 @@ namespace { /** * Invoke the "before query" modification callbacks. * - * @return void - * @static + * @return void + * @static */ public static function applyBeforeQueryCallbacks() { @@ -28578,8 +28152,8 @@ namespace { /** * Get the SQL representation of the query. * - * @return string - * @static + * @return string + * @static */ public static function toSql() { @@ -28590,8 +28164,8 @@ namespace { /** * Get the raw SQL representation of the query with embedded bindings. * - * @return string - * @static + * @return string + * @static */ public static function toRawSql() { @@ -28602,8 +28176,8 @@ namespace { /** * Get a single expression value from the first result of a query. * - * @return mixed - * @static + * @return mixed + * @static */ public static function rawValue($expression, $bindings = []) { @@ -28615,8 +28189,8 @@ namespace { * Get the count of the total records for the paginator. * * @param array $columns - * @return int - * @static + * @return int + * @static */ public static function getCountForPagination($columns = []) { @@ -28629,8 +28203,8 @@ namespace { * * @param string $column * @param string $glue - * @return string - * @static + * @return string + * @static */ public static function implode($column, $glue = '') { @@ -28641,8 +28215,8 @@ namespace { /** * Determine if any rows exist for the current query. * - * @return bool - * @static + * @return bool + * @static */ public static function exists() { @@ -28653,8 +28227,8 @@ namespace { /** * Determine if no rows exist for the current query. * - * @return bool - * @static + * @return bool + * @static */ public static function doesntExist() { @@ -28665,8 +28239,8 @@ namespace { /** * Execute the given callback if no rows exist for the current query. * - * @return mixed - * @static + * @return mixed + * @static */ public static function existsOr($callback) { @@ -28677,8 +28251,8 @@ namespace { /** * Execute the given callback if rows exist for the current query. * - * @return mixed - * @static + * @return mixed + * @static */ public static function doesntExistOr($callback) { @@ -28690,8 +28264,8 @@ namespace { * Retrieve the "count" result of the query. * * @param \Illuminate\Contracts\Database\Query\Expression|string $columns - * @return int - * @static + * @return int + * @static */ public static function count($columns = '*') { @@ -28703,8 +28277,8 @@ namespace { * Retrieve the minimum value of a given column. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return mixed - * @static + * @return mixed + * @static */ public static function min($column) { @@ -28716,8 +28290,8 @@ namespace { * Retrieve the maximum value of a given column. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return mixed - * @static + * @return mixed + * @static */ public static function max($column) { @@ -28729,8 +28303,8 @@ namespace { * Retrieve the sum of the values of a given column. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return mixed - * @static + * @return mixed + * @static */ public static function sum($column) { @@ -28742,8 +28316,8 @@ namespace { * Retrieve the average of the values of a given column. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return mixed - * @static + * @return mixed + * @static */ public static function avg($column) { @@ -28755,8 +28329,8 @@ namespace { * Alias for the "avg" method. * * @param \Illuminate\Contracts\Database\Query\Expression|string $column - * @return mixed - * @static + * @return mixed + * @static */ public static function average($column) { @@ -28769,8 +28343,8 @@ namespace { * * @param string $function * @param array $columns - * @return mixed - * @static + * @return mixed + * @static */ public static function aggregate($function, $columns = []) { @@ -28783,8 +28357,8 @@ namespace { * * @param string $function * @param array $columns - * @return float|int - * @static + * @return float|int + * @static */ public static function numericAggregate($function, $columns = []) { @@ -28795,8 +28369,8 @@ namespace { /** * Insert new records into the database. * - * @return bool - * @static + * @return bool + * @static */ public static function insert($values) { @@ -28807,8 +28381,8 @@ namespace { /** * Insert new records into the database while ignoring errors. * - * @return int - * @static + * @return int + * @static */ public static function insertOrIgnore($values) { @@ -28820,8 +28394,8 @@ namespace { * Insert a new record and get the value of the primary key. * * @param string|null $sequence - * @return int - * @static + * @return int + * @static */ public static function insertGetId($values, $sequence = null) { @@ -28833,8 +28407,8 @@ namespace { * Insert new records into the table using a subquery. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query - * @return int - * @static + * @return int + * @static */ public static function insertUsing($columns, $query) { @@ -28846,8 +28420,8 @@ namespace { * Insert new records into the table using a subquery while ignoring errors. * * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query - * @return int - * @static + * @return int + * @static */ public static function insertOrIgnoreUsing($columns, $query) { @@ -28858,8 +28432,8 @@ namespace { /** * Update records in a PostgreSQL database using the update from syntax. * - * @return int - * @static + * @return int + * @static */ public static function updateFrom($values) { @@ -28870,8 +28444,8 @@ namespace { /** * Insert or update a record matching the attributes, and fill it with values. * - * @return bool - * @static + * @return bool + * @static */ public static function updateOrInsert($attributes, $values = []) { @@ -28884,9 +28458,9 @@ namespace { * * @param array $columns * @param array $extra - * @return int + * @return int * @throws \InvalidArgumentException - * @static + * @static */ public static function incrementEach($columns, $extra = []) { @@ -28899,9 +28473,9 @@ namespace { * * @param array $columns * @param array $extra - * @return int + * @return int * @throws \InvalidArgumentException - * @static + * @static */ public static function decrementEach($columns, $extra = []) { @@ -28912,8 +28486,8 @@ namespace { /** * Run a truncate statement on the table. * - * @return void - * @static + * @return void + * @static */ public static function truncate() { @@ -28924,8 +28498,8 @@ namespace { /** * Get all of the query builder's columns in a text-only array with all expressions evaluated. * - * @return array - * @static + * @return array + * @static */ public static function getColumns() { @@ -28937,8 +28511,8 @@ namespace { * Create a raw database expression. * * @param mixed $value - * @return \Illuminate\Contracts\Database\Query\Expression - * @static + * @return \Illuminate\Contracts\Database\Query\Expression + * @static */ public static function raw($value) { @@ -28949,8 +28523,8 @@ namespace { /** * Get the current query value bindings in a flattened array. * - * @return array - * @static + * @return array + * @static */ public static function getBindings() { @@ -28961,8 +28535,8 @@ namespace { /** * Get the raw array of bindings. * - * @return array - * @static + * @return array + * @static */ public static function getRawBindings() { @@ -28974,9 +28548,9 @@ namespace { * Set the bindings on the query builder. * * @param string $type - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \InvalidArgumentException - * @static + * @static */ public static function setBindings($bindings, $type = 'where') { @@ -28989,9 +28563,9 @@ namespace { * * @param mixed $value * @param string $type - * @return \Illuminate\Database\Eloquent\Builder + * @return \Illuminate\Database\Eloquent\Builder * @throws \InvalidArgumentException - * @static + * @static */ public static function addBinding($value, $type = 'where') { @@ -29003,8 +28577,8 @@ namespace { * Cast the given binding value. * * @param mixed $value - * @return mixed - * @static + * @return mixed + * @static */ public static function castBinding($value) { @@ -29015,8 +28589,8 @@ namespace { /** * Merge an array of bindings into our bindings. * - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function mergeBindings($query) { @@ -29027,8 +28601,8 @@ namespace { /** * Remove all of the expressions from a list of bindings. * - * @return array - * @static + * @return array + * @static */ public static function cleanBindings($bindings) { @@ -29039,8 +28613,8 @@ namespace { /** * Get the database query processor instance. * - * @return \Illuminate\Database\Query\Processors\Processor - * @static + * @return \Illuminate\Database\Query\Processors\Processor + * @static */ public static function getProcessor() { @@ -29051,8 +28625,8 @@ namespace { /** * Get the query grammar instance. * - * @return \Illuminate\Database\Query\Grammars\Grammar - * @static + * @return \Illuminate\Database\Query\Grammars\Grammar + * @static */ public static function getGrammar() { @@ -29063,8 +28637,8 @@ namespace { /** * Use the "write" PDO connection when executing the query. * - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function useWritePdo() { @@ -29075,8 +28649,8 @@ namespace { /** * Clone the query without the given properties. * - * @return static - * @static + * @return static + * @static */ public static function cloneWithout($properties) { @@ -29087,8 +28661,8 @@ namespace { /** * Clone the query without the given bindings. * - * @return static - * @static + * @return static + * @static */ public static function cloneWithoutBindings($except) { @@ -29100,8 +28674,8 @@ namespace { * Dump the current SQL and bindings. * * @param mixed $args - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function dump(...$args) { @@ -29112,8 +28686,8 @@ namespace { /** * Dump the raw current SQL with embedded bindings. * - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function dumpRawSql() { @@ -29124,8 +28698,8 @@ namespace { /** * Die and dump the current SQL and bindings. * - * @return never - * @static + * @return never + * @static */ public static function dd() { @@ -29136,8 +28710,8 @@ namespace { /** * Die and dump the current SQL with embedded bindings. * - * @return never - * @static + * @return never + * @static */ public static function ddRawSql() { @@ -29149,8 +28723,8 @@ namespace { * Add a where clause to determine if a "date" column is in the past to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function wherePast($columns) { @@ -29162,8 +28736,8 @@ namespace { * Add a where clause to determine if a "date" column is in the past or now to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNowOrPast($columns) { @@ -29175,8 +28749,8 @@ namespace { * Add an "or where" clause to determine if a "date" column is in the past to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWherePast($columns) { @@ -29188,8 +28762,8 @@ namespace { * Add a where clause to determine if a "date" column is in the past or now to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNowOrPast($columns) { @@ -29201,8 +28775,8 @@ namespace { * Add a where clause to determine if a "date" column is in the future to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereFuture($columns) { @@ -29214,8 +28788,8 @@ namespace { * Add a where clause to determine if a "date" column is in the future or now to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereNowOrFuture($columns) { @@ -29227,8 +28801,8 @@ namespace { * Add an "or where" clause to determine if a "date" column is in the future to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereFuture($columns) { @@ -29240,8 +28814,8 @@ namespace { * Add an "or where" clause to determine if a "date" column is in the future or now to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereNowOrFuture($columns) { @@ -29254,8 +28828,8 @@ namespace { * * @param array|string $columns * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereToday($columns, $boolean = 'and') { @@ -29267,8 +28841,8 @@ namespace { * Add a "where date" clause to determine if a "date" column is before today. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereBeforeToday($columns) { @@ -29280,8 +28854,8 @@ namespace { * Add a "where date" clause to determine if a "date" column is today or before to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereTodayOrBefore($columns) { @@ -29293,8 +28867,8 @@ namespace { * Add a "where date" clause to determine if a "date" column is after today. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereAfterToday($columns) { @@ -29306,8 +28880,8 @@ namespace { * Add a "where date" clause to determine if a "date" column is today or after to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function whereTodayOrAfter($columns) { @@ -29319,8 +28893,8 @@ namespace { * Add an "or where date" clause to determine if a "date" column is today to the query. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereToday($columns) { @@ -29332,8 +28906,8 @@ namespace { * Add an "or where date" clause to determine if a "date" column is before today. * * @param array|string $columns - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereBeforeToday($columns) { @@ -29346,8 +28920,8 @@ namespace { * * @param array|string $columns * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereTodayOrBefore($columns) { @@ -29360,8 +28934,8 @@ namespace { * * @param array|string $columns * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereAfterToday($columns) { @@ -29374,8 +28948,8 @@ namespace { * * @param array|string $columns * @param string $boolean - * @return \Illuminate\Database\Eloquent\Builder - * @static + * @return \Illuminate\Database\Eloquent\Builder + * @static */ public static function orWhereTodayOrAfter($columns) { @@ -29386,8 +28960,8 @@ namespace { /** * Explains the query. * - * @return \Illuminate\Support\Collection - * @static + * @return \Illuminate\Support\Collection + * @static */ public static function explain() { @@ -29401,8 +28975,8 @@ namespace { * @param string $name * @param object|callable $macro * @param-closure-this static $macro - * @return void - * @static + * @return void + * @static */ public static function macro($name, $macro) { @@ -29414,9 +28988,9 @@ namespace { * * @param object $mixin * @param bool $replace - * @return void + * @return void * @throws \ReflectionException - * @static + * @static */ public static function mixin($mixin, $replace = true) { @@ -29426,8 +29000,8 @@ namespace { /** * Flush the existing macros. * - * @return void - * @static + * @return void + * @static */ public static function flushMacros() { @@ -29439,9 +29013,9 @@ namespace { * * @param string $method * @param array $parameters - * @return mixed + * @return mixed * @throws \BadMethodCallException - * @static + * @static */ public static function macroCall($method, $parameters) { diff --git a/_ide_helper_models.php b/_ide_helper_models.php new file mode 100644 index 0000000..c1fe6e9 --- /dev/null +++ b/_ide_helper_models.php @@ -0,0 +1,2267 @@ + + */ + + +namespace App\Models{ +/** + * App\Models\Attribute + * + * @property int $id + * @property int|null $parent_id + * @property string $name + * @property array|null $trans_name + * @property int|null $pos + * @property int $active + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Attribute[] $childrens + * @property-read \App\Models\Attribute|null $parent + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute whereParentId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute whereTransName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute whereUpdatedAt($value) + * @property string|null $slug + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Attribute query() + * @property-read int|null $childrens_count + * @property int $attribute_type_id + * @property string|null $value + * @property-read \App\Models\AttributeType $attribute_type + * @method static \Illuminate\Database\Eloquent\Builder|Attribute whereAttributeTypeId($value) + * @method static \Illuminate\Database\Eloquent\Builder|Attribute whereValue($value) + * @mixin \Eloquent + */ + class Attribute extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class AttributeType + * + * @property int $id + * @property int|null $parent_id + * @property string $name + * @property string|null $trans_name + * @property int|null $pos + * @property bool $active + * @property string $slug + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Attribute|null $attribute + * @property Collection|Attribute[] $attributes + * @package App\Models + * @property string|null $description + * @property-read Collection $childrens + * @property-read int|null $childrens_count + * @property-read \App\Models\Attribute|null $parent + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType query() + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereParentId($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereTransName($value) + * @method static \Illuminate\Database\Eloquent\Builder|AttributeType whereUpdatedAt($value) + * @mixin \Eloquent + */ + class AttributeType extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\Category + * + * @property int $id + * @property int|null $parent_id + * @property string $name + * @property array|null $trans_name + * @property int|null $pos + * @property int $active + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Category[] $childrens + * @property-read \App\Models\Category|null $parent + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereParentId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereTransName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereUpdatedAt($value) + * @property string|null $slug + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductCategory[] $product_categories + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category findSimilarSlugs($attribute, $config, $slug) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category query() + * @property string|null $headline + * @property int|null $headline_image_id + * @property array|null $trans_headline + * @property-read int|null $childrens_count + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Image[] $image + * @property-read int|null $image_count + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereHeadline($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereHeadlineImageId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Category whereTransHeadline($value) + * @property-read \App\Models\IqImage|null $iq_image + * @property-read int|null $product_categories_count + * @method static \Illuminate\Database\Eloquent\Builder|Category withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) + * @property array|null $show_on + * @method static \Illuminate\Database\Eloquent\Builder|Category whereShowOn($value) + * @mixin \Eloquent + */ + class Category extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\Country + * + * @property int $id + * @property string $code + * @property string $phone + * @property string $en + * @property string $de + * @property string $es + * @property string $fr + * @property string $it + * @property string $ru + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereCode($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereDe($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereEn($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereEs($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereFr($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereIt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country wherePhone($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereRu($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country query() + * @property int|null $active + * @property array|null $trans + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereTrans($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereUpdatedAt($value) + * @property string|null $trans_name + * @property array|null $attr + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereAttr($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereTransName($value) + * @property bool|null $switch + * @property bool|null $own_eur + * @property bool|null $currency + * @property string|null $currency_unit + * @property bool|null $currency_calc + * @property float|null $currency_faktor + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereCurrency($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereCurrencyCalc($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereCurrencyFaktor($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereCurrencyName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereOwnEur($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereSwitch($value) + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CountryPrice[] $country_prices + * @property-read int|null $country_prices_count + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereCurrencyUnit($value) + * @property bool|null $translate + * @property bool|null $eu_country + * @property bool|null $supply_country + * @method static \Illuminate\Database\Eloquent\Builder|Country whereEuCountry($value) + * @method static \Illuminate\Database\Eloquent\Builder|Country whereSupplyCountry($value) + * @method static \Illuminate\Database\Eloquent\Builder|Country whereTranslate($value) + * @mixin \Eloquent + */ + class Country extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class CountryPrice + * + * @property int $id + * @property int $country_id + * @property int $product_id + * @property float $c_price + * @property float $c_tax + * @property float $c_price_old + * @property float $c_currency + * @property Carbon $created_at + * @property Carbon $updated_at + * @property Country $country + * @property Product $product + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereCOwnEur($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereCPrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereCPriceOld($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereCTax($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereCountryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CountryPrice whereCCurrency($value) + * @mixin \Eloquent + */ + class CountryPrice extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class File + * + * @property int $id + * @property int $user_id + * @property string $filename + * @property string $dir + * @property string $original_name + * @property string $ext + * @property string $mine + * @property int $size + * @property Carbon $created_at + * @property Carbon $updated_at + * @property User $user + * @package App\Models + * @property string $identifier + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereDir($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereExt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereFilename($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereIdentifier($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereMine($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereOriginalName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereSize($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\File whereUserId($value) + * @mixin \Eloquent + */ + class File extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\Import + * + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Import newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Import newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Import query() + * @mixin \Eloquent + */ + class Import extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class Ingredient + * + * @property int $id + * @property string $name + * @property string $trans_name + * @property string $inci + * @property string $trans_inci + * @property string $effect + * @property string $trans_effect + * @property bool $active + * @property int $pos + * @property Carbon $created_at + * @property Carbon $updated_at + * @property Collection|Product[] $products + * @package App\Models + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductIngredient[] $product_ingredients + * @property-read int|null $product_ingredients_count + * @property-read int|null $products_count + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereEffect($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereInci($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereTransEffect($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereTransInci($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereTransName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereUpdatedAt($value) + * @mixin \Eloquent + */ + class Ingredient extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ProductImage + * + * @property int $id + * @property int|null $product_id + * @property string $filename + * @property string $original_name + * @property string $ext + * @property string $mine + * @property int $size + * @property int $active + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Models\Product|null $product + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereExt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereFilename($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereMine($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereOriginalName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereSize($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereUpdatedAt($value) + * @property string|null $slug + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage findSimilarSlugs($attribute, $config, $slug) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage query() + * @property int|null $pos + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqImage wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|IqImage withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) + * @mixin \Eloquent + */ + class IqImage extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\IqSite + * + * @property int $id + * @property string $slug + * @property string|null $headline + * @property string|null $copy + * @property array|null $products + * @property array|null $set_products + * @property int|null $iq_image_id + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Models\IqImage|null $iq_image + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereCopy($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereHeadline($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereIqImageId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereProducts($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereSetProducts($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IqSite whereUpdatedAt($value) + * @mixin \Eloquent + */ + class IqSite extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class LeadType + * + * @property int $id + * @property string $name + * @property bool $active + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|LeadType newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|LeadType newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|LeadType query() + * @method static \Illuminate\Database\Eloquent\Builder|LeadType whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|LeadType whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|LeadType whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|LeadType whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|LeadType whereUpdatedAt($value) + * @mixin \Eloquent + */ + class LeadType extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class Logger + * + * @property int $id + * @property int $user_id + * @property int $model_id + * @property string $model + * @property string $action + * @property string $channel + * @property string $message + * @property int $level + * @property Carbon $created_at + * @property Carbon $updated_at + * @property User $user + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereAction($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereChannel($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereLevel($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereModel($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereModelId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Logger whereUserId($value) + * @mixin \Eloquent + */ + class Logger extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class PaymentMethod + * + * @property int $id + * @property string $name + * @property string $short + * @property int $show_at + * @property int $pos + * @property bool $active + * @property bool $default + * @property Carbon $created_at + * @property Carbon $updated_at + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereDefault($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereShort($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereShowAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentMethod whereUpdatedAt($value) + * @property string|null $max_price + * @method static \Illuminate\Database\Eloquent\Builder|PaymentMethod whereMaxPrice($value) + * @property array $show_on + * @method static \Illuminate\Database\Eloquent\Builder|PaymentMethod whereShowOn($value) + * @mixin \Eloquent + */ + class PaymentMethod extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class PaymentReminder + * + * @property int $id + * @property string|null $title + * @property int|null $interval + * @property string|null $message + * @property string|null $action + * @property bool $active + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @package App\Models + * @property string|null $subject + * @property string|null $clearingtype + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder query() + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereAction($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereClearingtype($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereInterval($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereSubject($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereTitle($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereUpdatedAt($value) + * @mixin \Eloquent + */ + class PaymentReminder extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\PaymentTransaction + * + * @property int $id + * @property int $shopping_payment_id + * @property string $request + * @property int|null $txid + * @property int|null $userid + * @property string|null $status + * @property string|null $key + * @property string|null $txaction + * @property array|null $transmitted_data + * @property int|null $errorcode + * @property string|null $errormessage + * @property string|null $customermessage + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Models\ShoppingPayment $shopping_payment + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereCustomermessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereErrorcode($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereErrormessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereKey($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereRequest($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereShoppingPaymentId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereTransmittedData($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereTxaction($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereTxid($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereUserid($value) + * @property string|null $mode + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\PaymentTransaction whereMode($value) + * @mixin \Eloquent + */ + class PaymentTransaction extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\Product + * + * @property int $id + * @property string $name + * @property array|null $trans_name + * @property string $title + * @property array|null $trans_title + * @property string|null $copy + * @property array|null $trans_copy + * @property float|null $price + * @property float|null $price_ek + * @property float|null $tax + * @property float|null $price_old + * @property string|null $contents + * @property string|null $number + * @property array|null $icons + * @property string|null $description + * @property array|null $trans_description + * @property string|null $usage + * @property array|null $trans_usage + * @property string|null $ingredients + * @property array|null $trans_ingredients + * @property int|null $pos + * @property int $active + * @property int|null $amount + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductAttribute[] $attributes + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductCategory[] $categories + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductImage[] $images + * @property-write mixed $price_vk + * @method static bool|null forceDelete() + * @method static \Illuminate\Database\Query\Builder|\App\Models\Product onlyTrashed() + * @method static bool|null restore() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereAmount($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereContents($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereCopy($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereDeletedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereIcons($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereIngredients($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereNumber($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product wherePrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product wherePriceEk($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product wherePriceOld($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereTax($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereTitle($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereTransCopy($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereTransDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereTransIngredients($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereTransName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereTransTitle($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereTransUsage($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereUsage($value) + * @method static \Illuminate\Database\Query\Builder|\App\Models\Product withTrashed() + * @method static \Illuminate\Database\Query\Builder|\App\Models\Product withoutTrashed() + * @property string|null $slug + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product findSimilarSlugs($attribute, $config, $slug) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product query() + * @property int|null $weight + * @property int|null $show_at + * @property array|null $action + * @property-read int|null $attributes_count + * @property-read int|null $categories_count + * @property-read int|null $images_count + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereAction($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereShowAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereWeight($value) + * @property int|null $points + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductImage[] $imagesActive + * @property-read int|null $images_active_count + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product wherePoints($value) + * @property string|null $identifier + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereIdentifier($value) + * @property int|null $upgrade_to_id + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereUpgradeToId($value) + * @property int|null $contents_total + * @property int|null $unit + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereContentsTotal($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereUnit($value) + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CountryPrice[] $country_prices + * @property-read int|null $country_prices_count + * @property int|null $wp_number + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereWpNumber($value) + * @property bool|null $single_commission + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereShippingAddon($value) + * @property-read int|null $ingredients_count + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductIngredient[] $product_ingredients + * @property-read int|null $product_ingredients_count + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Ingredient[] $p_ingredients + * @property-read int|null $p_ingredients_count + * @property bool $amount_commission + * @property string|null $value_commission + * @property string|null $partner_commission + * @method static \Illuminate\Database\Eloquent\Builder|Product whereAmountCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product wherePartnerCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereSingleCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereValueCommission($value) + * @property bool|null $shipping_addon + * @property bool|null $max_buy + * @property int|null $max_buy_num + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductBuy[] $product_buys + * @property-read int|null $product_buys_count + * @method static \Illuminate\Database\Eloquent\Builder|Product whereMaxBuy($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereMaxBuyNum($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) + * @property string|null $short_copy + * @property array|null $show_on + * @method static \Illuminate\Database\Eloquent\Builder|Product whereShortCopy($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereShowOn($value) + * @property bool $exclude_stats_sales + * @property bool|null $whitelabel + * @property string|null $whitelabel_name + * @property-read \Illuminate\Database\Eloquent\Collection $attribute_variants + * @property-read int|null $attribute_variants_count + * @property-read \Illuminate\Database\Eloquent\Collection $whitelabel_images + * @property-read int|null $whitelabel_images_count + * @method static \Illuminate\Database\Eloquent\Builder|Product whereExcludeStatsSales($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereWhitelabel($value) + * @method static \Illuminate\Database\Eloquent\Builder|Product whereWhitelabelName($value) + * @mixin \Eloquent + */ + class Product extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class ProductAttribute + * + * @property int $id + * @property int $product_id + * @property int $attribute_id + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Attribute $attribute + * @property Product $product + * @package App\Models + * @property int $type_id + * @property-read \App\Models\AttributeType $attribute_type + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute query() + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute whereAttributeId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute whereTypeId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductAttribute whereUpdatedAt($value) + * @mixin \Eloquent + */ + class ProductAttribute extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class ProductBuy + * + * @property int $id + * @property int $auth_user_id + * @property int $product_id + * @property int $num + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Product $product + * @package App\Models + * @property-read \App\User $auth_user + * @property-read \App\User $user + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy query() + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereAuthUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereNum($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductBuy whereUpdatedAt($value) + * @mixin \Eloquent + */ + class ProductBuy extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ProductCategory + * + * @property int $id + * @property int $product_id + * @property int $category_id + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Models\Category $category + * @property-read \App\Models\Product $product + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductCategory whereCategoryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductCategory whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductCategory whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductCategory whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductCategory whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductCategory newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductCategory newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductCategory query() + * @property int|null $pos + * @property array|null $show_on + * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductCategory whereShowOn($value) + * @mixin \Eloquent + */ + class ProductCategory extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ProductImage + * + * @property int $id + * @property int|null $product_id + * @property string $filename + * @property string $original_name + * @property string $ext + * @property string $mine + * @property int $size + * @property int $active + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Models\Product|null $product + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereExt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereFilename($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereMine($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereOriginalName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereSize($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereUpdatedAt($value) + * @property string|null $slug + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage findSimilarSlugs($attribute, $config, $slug) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage query() + * @property int|null $pos + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductImage wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductImage withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) + * @property int|null $user_wl_product_id + * @property string|null $type + * @property object|null $attributes + * @property-read \App\Models\UserWhitelabelProduct|null $user_wl_product + * @method static \Illuminate\Database\Eloquent\Builder|ProductImage whereAttributes($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductImage whereType($value) + * @method static \Illuminate\Database\Eloquent\Builder|ProductImage whereUserWlProductId($value) + * @mixin \Eloquent + */ + class ProductImage extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class ProductIngredient + * + * @property int $id + * @property int $product_id + * @property int $ingredient_id + * @property Carbon $created_at + * @property Carbon $updated_at + * @property Ingredient $ingredient + * @property Product $product + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient whereIngredientId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient whereUpdatedAt($value) + * @mixin \Eloquent + */ + class ProductIngredient extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class PromotionAdmin + * + * @property int $id + * @property string $name + * @property string|null $description + * @property Carbon|null $from + * @property Carbon|null $to + * @property float|null $max_bugdet + * @property int|null $max_items + * @property bool $active + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Collection|Product[] $products + * @property Collection|PromotionUserProduct[] $promotion_user_products + * @property Collection|PromotionUser[] $promotion_users + * @package App\Models + * @property-read int|null $products_count + * @property-read int|null $promotion_user_products_count + * @property-read int|null $promotion_users_count + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin query() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereFrom($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereMaxBugdet($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereMaxItems($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereTo($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereUpdatedAt($value) + * @property int|null $type + * @property bool $shop + * @property-read Collection|\App\Models\PromotionAdminProduct[] $promotion_admin_products + * @property-read int|null $promotion_admin_products_count + * @property-read Collection|\App\Models\PromotionAdminProduct[] $promotion_admin_products_active + * @property-read int|null $promotion_admin_products_active_count + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereShop($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereType($value) + * @property string|null $user_description + * @property string|null $user_about + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereUserAbout($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdmin whereUserDescription($value) + * @mixin \Eloquent + */ + class PromotionAdmin extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class PromotionAdminProduct + * + * @property int $id + * @property int $promotion_admin_id + * @property int $product_id + * @property bool $own_price + * @property float|null $price + * @property float|null $tax + * @property float|null $price_old + * @property bool $calcu_commission + * @property int|null $max_items + * @property int|null $used_items + * @property bool $shipping + * @property bool $active + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Product $product + * @property PromotionAdmin $promotion_admin + * @property Collection|PromotionUserProduct[] $promotion_user_products + * @package App\Models + * @property-read int|null $promotion_user_products_count + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct query() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereCalcuCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereMaxItems($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereOwnPrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct wherePrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct wherePriceOld($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct wherePromotionAdminId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereShipping($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereTax($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionAdminProduct whereUsedItems($value) + * @mixin \Eloquent + */ + class PromotionAdminProduct extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class PromotionUser + * + * @property int $id + * @property int $promotion_admin_id + * @property string $name + * @property string|null $description + * @property string|null $url + * @property bool $pick_up + * @property float|null $used_budget_total + * @property int|null $sell_items_total + * @property bool $active + * @property Carbon|null $user_deleted_at + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property PromotionAdmin $promotion_admin + * @property Collection|Product[] $products + * @package App\Models + * @property-read int|null $products_count + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser query() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser wherePickUp($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser wherePromotionAdminId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereSellItemsTotal($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUrl($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUsedBudgetTotal($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUserDeletedAt($value) + * @property int $user_id + * @property string|null $user_address + * @property-read Collection|\App\Models\PromotionUserProduct[] $promotion_user_products + * @property-read int|null $promotion_user_products_count + * @property-read Collection|\App\Models\PromotionUserProduct[] $promotion_user_products_active + * @property-read int|null $promotion_user_products_active_count + * @property-read \App\User $user + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUserAddress($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereUserId($value) + * @property string|null $about_you + * @property string|null $internal_name + * @property string|null $internal_description + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereAboutYou($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereInternalDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUser whereInternalName($value) + * @property-read Collection $promotion_user_orders + * @property-read int|null $promotion_user_orders_count + * @mixin \Eloquent + */ + class PromotionUser extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class PromotionUserOrder + * + * @property int $id + * @property int $promotion_admin_id + * @property int $promotion_user_id + * @property int $promotion_user_product_id + * @property int $product_id + * @property int $shopping_order_item_id + * @property int $shopping_order_id + * @property int $shopping_user_id + * @property int|null $qty + * @property float|null $price + * @property float|null $price_net + * @property float|null $tax_rate + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Product $product + * @property PromotionAdmin $promotion_admin + * @property PromotionUser $promotion_user + * @property PromotionUserProduct $promotion_user_product + * @property ShoppingOrder $shopping_order + * @property ShoppingOrderItem $shopping_order_item + * @property ShoppingUser $shopping_user + * @package App\Models + * @property int|null $status + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder query() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder wherePrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder wherePriceNet($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder wherePromotionAdminId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder wherePromotionUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder wherePromotionUserProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereQty($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereShoppingOrderId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereShoppingOrderItemId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereShoppingUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereTaxRate($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder whereUpdatedAt($value) + * @property bool|null $pick_up + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserOrder wherePickUp($value) + * @mixin \Eloquent + */ + class PromotionUserOrder extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class PromotionUserProduct + * + * @property int $id + * @property int $promotion_admin_id + * @property int $promotion_user_id + * @property int $promotion_admin_product_id + * @property int $product_id + * @property int|null $open_items + * @property int|null $sell_items + * @property float|null $used_budget_total + * @property bool $active + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Product $product + * @property PromotionAdmin $promotion_admin + * @property PromotionAdminProduct $promotion_admin_product + * @property PromotionUser $promotion_user + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct query() + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct whereOpenItems($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct wherePromotionAdminId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct wherePromotionAdminProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct wherePromotionUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct whereSellItems($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PromotionUserProduct whereUsedBudgetTotal($value) + * @mixin \Eloquent + */ + class PromotionUserProduct extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class Setting + * + * @property int $id + * @property string|null $identifier + * @property string $slug + * @property int $referenz + * @property string|null $action + * @property string|null $object + * @property string|null $content + * @property int $status + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @package App\Models + * @property string|null $full_text + * @property string|null $text + * @property string|null $type + * @method static \Illuminate\Database\Eloquent\Builder|Setting findSimilarSlugs(string $attribute, array $config, string $slug) + * @method static \Illuminate\Database\Eloquent\Builder|Setting newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|Setting newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|Setting query() + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereAction($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereFullText($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereIdentifier($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereObject($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereReferenz($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereText($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereType($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereUpdatedAt($value) + * @property int|null $int + * @method static \Illuminate\Database\Eloquent\Builder|Setting whereInt($value) + * @method static \Illuminate\Database\Eloquent\Builder|Setting withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) + * @mixin \Eloquent + */ + class Setting extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\Shipping + * + * @property int $id + * @property string $name + * @property array|null $trans_name + * @property float|null $free + * @property int $active + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShippingCountry[] $countries + * @property-read int|null $countries_count + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShippingPrice[] $prices + * @property-read int|null $prices_count + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping whereFree($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping whereTransName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Shipping whereUpdatedAt($value) + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShippingPrice[] $shipping_prices + * @property-read int|null $shipping_prices_count + * @mixin \Eloquent + */ + class Shipping extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ShippingCountry + * + * @property int $id + * @property int $shipping_id + * @property int|null $country_id + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Models\Country|null $country + * @property-read \App\Models\Shipping $shipping + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingCountry newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingCountry newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingCountry query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingCountry whereCountryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingCountry whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingCountry whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingCountry whereShippingId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingCountry whereUpdatedAt($value) + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShoppingOrder[] $shopping_orders + * @property-read int|null $shopping_orders_count + * @mixin \Eloquent + */ + class ShippingCountry extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ShippingPrice + * + * @property int $id + * @property int $shipping_id + * @property float|null $price + * @property float|null $tax_rate + * @property float|null $factor + * @property float|null $total_from + * @property float|null $total_to + * @property int|null $weight_from + * @property int|null $weight_to + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Models\Shipping $shipping + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereFactor($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice wherePrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereShippingId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereTax($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereTotalFrom($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereTotalTo($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereWeightFrom($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereWeightTo($value) + * @property-write mixed $tax + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereTaxRate($value) + * @property float|null $price_comp + * @property int|null $num_comp + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice whereNumComp($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShippingPrice wherePriceComp($value) + * @property int|null $shipping_for + * @method static \Illuminate\Database\Eloquent\Builder|ShippingPrice whereShippingFor($value) + * @mixin \Eloquent + */ + class ShippingPrice extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ShoppingOrder + * + * @property int $id + * @property int $shopping_user_id + * @property int|null $auth_user_id + * @property int $country_id + * @property int $user_shop_id + * @property float|null $total + * @property float|null $shipping + * @property float|null $subtotal + * @property float|null $tax_rate + * @property float|null $tax + * @property float|null $total_shipping + * @property int|null $weight + * @property int|null $paid + * @property string|null $txaction + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\User|null $auth_user + * @property-read \App\Models\Country $country + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShoppingOrderItem[] $shopping_order_items + * @property-read int|null $shopping_order_items_count + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShoppingPayment[] $shopping_payments + * @property-read int|null $shopping_payments_count + * @property-read \App\Models\ShoppingUser $shopping_user + * @property-read \App\Models\UserShop $user_shop + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereAuthUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereCountryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder wherePaid($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereShipping($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereShoppingUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereSubtotal($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereTax($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereTaxRate($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereTotal($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereTotalShipping($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereTxaction($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereUserShopId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereWeight($value) + * @property int|null $payment_for + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder wherePaymentFor($value) + * @property int|null $member_id + * @property string|null $mode + * @property-read \App\User|null $member + * @property-read \App\Models\UserHistory|null $user_history + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereMemberId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereMode($value) + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property string|null $user_deleted_at + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrder onlyTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereDeletedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereUserDeletedAt($value) + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrder withTrashed() + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrder withoutTrashed() + * @property-read \App\Models\ShippingCountry $shipping_country + * @property float|null $shipping_net + * @property float|null $subtotal_shipping + * @property int|null $points + * @property int|null $shipped + * @property string|null $tracking + * @property string|null $wp_invoice_path + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder wherePoints($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereShipped($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereShippingNet($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereSubtotalWs($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereTracking($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereWpInvoicePath($value) + * @property array|null $wp_notice + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereWpNotice($value) + * @property string|null $subtotal_full + * @property-read \App\Models\ShoppingOrderMargin|null $shopping_order_margin + * @property-read \App\Models\ShoppingPayment|null $shopping_payment_last + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereSubtotalFull($value) + * @property string|null $discount + * @property string|null $payment_credit + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereDiscount($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder wherePaymentCredit($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereSubtotalShipping($value) + * @property string|null $total_without_credit + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereTotalWithoutCredit($value) + * @property array|null $invoice + * @property \Illuminate\Support\Carbon|null $shipped_at + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereInvoice($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereShippedAt($value) + * @property string|null $invoice_number + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereInvoiceNumber($value) + * @property int|null $promotion_user_id + * @property string|null $shipping_option + * @property-read \App\Models\PromotionUser|null $promotion_user + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder wherePromotionUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereShippingOption($value) + * @property array|null $delivery + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereDelivery($value) + * @property bool $user_white_label + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereUserWhiteLabel($value) + * @property array|null $cancellation_invoice + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereCancellationInvoice($value) + * @mixin \Eloquent + */ + class ShoppingOrder extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ShoppingOrderItem + * + * @property int $id + * @property int $shopping_order_id + * @property string|null $row_id + * @property int $product_id + * @property int|null $qty + * @property float|null $price + * @property string|null $slug + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \App\Models\Product $product + * @property-read \App\Models\ShoppingOrder $shopping_order + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem wherePrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereQty($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereRowId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereShoppingOrderId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereUpdatedAt($value) + * @property float|null $tax_rate + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property string|null $user_deleted_at + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrderItem onlyTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereDeletedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereTaxRate($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereUserDeletedAt($value) + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrderItem withTrashed() + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrderItem withoutTrashed() + * @property int|null $comp + * @property float|null $price_net + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem whereComp($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrderItem wherePriceNet($value) + * @property int|null $free_product_id + * @property-read \App\Models\PromotionUserProduct|null $promotion_user_product + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderItem whereFreeProductId($value) + * @property bool|null $handle + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderItem whereHandle($value) + * @mixin \Eloquent + */ + class ShoppingOrderItem extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class ShoppingOrderMargin + * + * @property int $id + * @property int $shopping_order_id + * @property int $user_id + * @property float|null $net_price + * @property float|null $net_discount + * @property float|null $net_amount + * @property int|null $m_sponsor_id + * @property float|null $net_partner_commission + * @property Carbon|null $from + * @property bool $paid + * @property bool $cancellation + * @property int $status + * @property string|null $content + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property User $user + * @property ShoppingOrder $shopping_order + * @package App\Models + * @property float|null $from_payment_credit + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin query() + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereCancellation($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereContent($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereFrom($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereFromPaymentCredit($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereMSponsorId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereNetAmount($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereNetDiscount($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereNetPartnerCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereNetPrice($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin wherePaid($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereShoppingOrderId($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereUserId($value) + * @property \Illuminate\Support\Carbon|null $partner_commission_pending_to + * @property bool|null $partner_commission_paid + * @property-read User|null $m_sponsor + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin wherePartnerCommissionPaid($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin wherePartnerCommissionPendingTo($value) + * @property int|null $user_credit_id + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereUserCreditId($value) + * @property bool $order_paid + * @property bool $out_paid + * @property \Illuminate\Support\Carbon|null $margin_pending_to + * @property bool|null $margin_paid + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereMarginPaid($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereMarginPendingTo($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereOrderPaid($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrderMargin whereOutPaid($value) + * @mixin \Eloquent + */ + class ShoppingOrderMargin extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ShoppingPayment + * + * @property int $id + * @property int $shopping_order_id + * @property string $clearingtype + * @property string|null $wallettype + * @property string|null $onlinebanktransfertype + * @property string $reference + * @property int $amount + * @property string $currency + * @property string|null $status + * @property string|null $txaction + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\PaymentTransaction[] $payment_transactions + * @property-read int|null $payment_transactions_count + * @property-read \App\Models\ShoppingOrder $shopping_order + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereAmount($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereClearingtype($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereCurrency($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereOnlinebanktransfertype($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereReference($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereShoppingOrderId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereTxaction($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereWallettype($value) + * @property string|null $mode + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereMode($value) + * @property int|null $reminder + * @property \Illuminate\Support\Carbon|null $reminder_date + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingPayment whereReminder($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingPayment whereReminderDate($value) + * @mixin \Eloquent + */ + class ShoppingPayment extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\ShoppingUser + * + * @property int $id + * @property int|null $auth_user_id + * @property string|null $billing_salutation + * @property string|null $billing_company + * @property string|null $billing_firstname + * @property string|null $billing_lastname + * @property string|null $billing_address + * @property string|null $billing_address_2 + * @property string|null $billing_zipcode + * @property string|null $billing_city + * @property int $billing_country_id + * @property string|null $billing_phone + * @property string|null $billing_email + * @property int $accepted_data_checkbox + * @property int $same_as_billing + * @property string|null $shipping_salutation + * @property string|null $shipping_company + * @property string|null $shipping_firstname + * @property string|null $shipping_lastname + * @property string|null $shipping_address + * @property string|null $shipping_address_2 + * @property string|null $shipping_zipcode + * @property string|null $shipping_city + * @property int $shipping_country_id + * @property string|null $shipping_phone + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShoppingOrder[] $Shopping_orders + * @property-read int|null $shopping_orders_count + * @property-read \App\Models\Country $billing_country + * @property-read \App\Models\Country $shipping_country + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereAcceptedDataCheckbox($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereAuthUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingAddress($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingAddress2($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingCity($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingCompany($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingCountryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingEmail($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingFirstname($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingLastname($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingPhone($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingSalutation($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereBillingZipcode($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereSameAsBilling($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingAddress($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingAddress2($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingCity($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingCompany($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingCountryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingFirstname($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingLastname($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingPhone($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingSalutation($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingZipcode($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereUpdatedAt($value) + * @property int|null $orders + * @property-read \App\Models\ShoppingOrder $shopping_order + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShoppingOrder[] $shopping_orders + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereOrders($value) + * @property int|null $abo_options + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereAboOptions($value) + * @property int|null $member_id + * @property int|null $number + * @property bool $is_like + * @property array|null $notice + * @property-read \App\User|null $auth_user + * @property-read \App\User|null $member + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereIsLike($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereMemberId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereNotice($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereNumber($value) + * @property bool|null $has_buyed + * @property bool|null $subscribed + * @property int|null $wp_order_number + * @property string|null $wp_order_date + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereHasBuyed($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereSubscribed($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereWpOrderDate($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereWpOrderNumber($value) + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property string|null $user_deleted_at + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingUser onlyTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereDeletedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereUserDeletedAt($value) + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingUser withTrashed() + * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingUser withoutTrashed() + * @property string|null $mode + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereMode($value) + * @property bool|null $faker_mail + * @property string|null $shipping_email + * @property string|null $is_for + * @property string|null $is_from + * @property int|null $shopping_user_id + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereFakerMail($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereIsFor($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereIsFrom($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShippingEmail($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingUser whereShoppingUserId($value) + * @mixin \Eloquent + */ + class ShoppingUser extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class SySetting + * + * @property int $id + * @property string $name + * @property string $slug + * @property string $message + * @property string $action + * @property int $status + * @property bool $active + * @property Carbon $created_at + * @property Carbon $updated_at + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting findSimilarSlugs($attribute, $config, $slug) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereAction($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereSlug($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SySetting whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|SySetting withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) + * @mixin \Eloquent + */ + class SySetting extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\UserAccount + * + * @property-read \App\Models\Country $company_country + * @property-read \App\Models\Country $company_pre_phone + * @property-read \App\Models\Country $country + * @property mixed $birthday + * @property-read mixed $company + * @property-read \App\Models\Country $pre_mobil + * @property-read \App\Models\Country $pre_phone + * @property-read \App\User $user + * @method static bool|null forceDelete() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount newQuery() + * @method static \Illuminate\Database\Query\Builder|\App\Models\UserAccount onlyTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount query() + * @method static bool|null restore() + * @method static \Illuminate\Database\Query\Builder|\App\Models\UserAccount withTrashed() + * @method static \Illuminate\Database\Query\Builder|\App\Models\UserAccount withoutTrashed() + * @property int $id + * @property string|null $salutation + * @property string|null $first_name + * @property string|null $last_name + * @property string|null $address + * @property string|null $address_2 + * @property string|null $zipcode + * @property string|null $city + * @property int $country_id + * @property int|null $pre_phone_id + * @property string|null $phone + * @property int|null $pre_mobil_id + * @property string|null $mobil + * @property string|null $tax_number + * @property string|null $tax_identification_number + * @property int $same_as_billing + * @property string|null $shipping_salutation + * @property string|null $shipping_company + * @property string|null $shipping_firstname + * @property string|null $shipping_lastname + * @property string|null $shipping_address + * @property string|null $shipping_address_2 + * @property string|null $shipping_zipcode + * @property string|null $shipping_city + * @property int $shipping_country_id + * @property int|null $shipping_pre_phone_id + * @property string|null $shipping_phone + * @property string|null $website + * @property string|null $facebook + * @property string|null $facebook_fanpage + * @property string|null $instagram + * @property string|null $data_protection + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property-read \App\Models\Country $shipping_country + * @property-read \App\Models\Country|null $shipping_pre_phone + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereAddress($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereAddress2($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereBirthday($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereCity($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereCompany($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereCountryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereDataProtection($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereDeletedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereFacebook($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereFacebookFanpage($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereFirstName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereInstagram($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereLastName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereMobil($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount wherePhone($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount wherePreMobilId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount wherePrePhoneId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereSalutation($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereSameAsBilling($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingAddress($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingAddress2($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingCity($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingCompany($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingCountryId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingFirstname($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingLastname($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingPhone($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingPrePhoneId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingSalutation($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereShippingZipcode($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereTaxIdentificationNumber($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereTaxNumber($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereWebsite($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereZipcode($value) + * @property string|null $m_account + * @property string|null $m_salutation + * @property string|null $m_first_name + * @property string|null $m_last_name + * @property string|null $m_notes + * @property int|null $taxable_sales + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereMAccount($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereMFirstName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereMLastName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereMNotes($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereMSalutation($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereTaxableSales($value) + * @property array|null $payment_data + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount wherePaymentData($value) + * @property string|null $accepted_contract + * @property array|null $notice + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereAcceptedContract($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserAccount whereNotice($value) + * @property string|null $about_you + * @method static \Illuminate\Database\Eloquent\Builder|UserAccount whereAboutYou($value) + * @property int $reverse_charge + * @property string|null $reverse_charge_code + * @property string|null $reverse_charge_valid + * @method static \Illuminate\Database\Eloquent\Builder|UserAccount whereReverseCharge($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserAccount whereReverseChargeCode($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserAccount whereReverseChargeValid($value) + * @mixin \Eloquent + */ + class UserAccount extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserCredit + * + * @property int $id + * @property int $auth_user_id + * @property float|null $net + * @property float|null $tax_rate + * @property float|null $tax + * @property float|null $total + * @property string|null $credit + * @property string|null $user_margins + * @property bool $paid_out + * @property bool $cancellation + * @property int $status + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property User $user + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit query() + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereAuthUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereCancellation($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereCredit($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereNet($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit wherePaidOut($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereTax($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereTaxRate($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereTotal($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereUserMargins($value) + * @property string|null $credit_number + * @property string|null $date + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereCreditNumber($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereDate($value) + * @property object|null $user_credits + * @method static \Illuminate\Database\Eloquent\Builder|UserCredit whereUserCredits($value) + * @mixin \Eloquent + */ + class UserCredit extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserCreditMargin + * + * @property int $id + * @property int $user_id + * @property float|null $credit + * @property string|null $message + * @property int $status + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property User $user + * @package App\Models + * @property bool|null $paid + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin query() + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereCredit($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin wherePaid($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereUserId($value) + * @property int|null $user_credit_id + * @method static \Illuminate\Database\Eloquent\Builder|UserCreditMargin whereUserCreditId($value) + * @mixin \Eloquent + */ + class UserCreditMargin extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserHistory + * + * @property int $id + * @property int $user_id + * @property int $shopping_order_id + * @property int $product_id + * @property string $action + * @property int $referenz + * @property int $status + * @property Carbon $created_at + * @property Carbon $updated_at + * @property Product $product + * @property ShoppingOrder $shopping_order + * @property User $user + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereAction($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereReferenz($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereShoppingOrderId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereUserId($value) + * @property string|null $identifier + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereIdentifier($value) + * @property int|null $abo_options + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserHistory whereAboOptions($value) + * @mixin \Eloquent + */ + class UserHistory extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\UserLevel + * + * @property int $id + * @property string $name + * @property array|null $trans_name + * @property float|null $margin + * @property int|null $pos + * @property int $active + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel whereMargin($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel wherePos($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel whereTransName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserLevel whereUpdatedAt($value) + * @property string|null $content + * @property array|null $trans_content + * @method static \Illuminate\Database\Eloquent\Builder|UserLevel whereContent($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserLevel whereTransContent($value) + * @property bool $partner_provision + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\UserLevelMargin[] $user_level_margins + * @property-read int|null $user_level_margins_count + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\UserLevelMargin[] $user_level_margins_re + * @property-read int|null $user_level_margins_re_count + * @method static \Illuminate\Database\Eloquent\Builder|UserLevel wherePartnerProvision($value) + * @property bool $payment_year + * @method static \Illuminate\Database\Eloquent\Builder|UserLevel wherePaymentYear($value) + * @mixin \Eloquent + */ + class UserLevel extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserLevelMargin + * + * @property int $id + * @property int $user_level_id + * @property float|null $price_from + * @property float|null $trading_margin + * @property float|null $commission + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property UserLevel $user_level + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin query() + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin whereCommission($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin wherePriceFrom($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin whereTradingMargin($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserLevelMargin whereUserLevelId($value) + * @mixin \Eloquent + */ + class UserLevelMargin extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserMessage + * + * @property int $id + * @property int $user_id + * @property int $send_user_id + * @property string $email + * @property string $subject + * @property string $message + * @property bool $send + * @property bool $fail + * @property string $error + * @property Carbon $sent_at + * @property Carbon $scheduled_at + * @property Carbon $delivered_at + * @property Carbon $created_at + * @property Carbon $updated_at + * @property User $user + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereDeliveredAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereEmail($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereError($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereFail($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereScheduledAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereSend($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereSendUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereSentAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereSubject($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserMessage whereUserId($value) + * @mixin \Eloquent + */ + class UserMessage extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserPayCredit + * + * @property int $id + * @property int $user_id + * @property float|null $credit + * @property float|null $old_credit_total + * @property float|null $new_credit_total + * @property string|null $message + * @property int $status + * @property int|null $shopping_order_id + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property ShoppingOrder|null $shopping_order + * @property User $user + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit query() + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereCredit($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereNewCreditTotal($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereOldCreditTotal($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereShoppingOrderId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereStatus($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserPayCredit whereUserId($value) + * @mixin \Eloquent + */ + class UserPayCredit extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserRegister + * + * @property string $identifier + * @property string $instance + * @property string $content + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|UserRegister newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserRegister newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserRegister query() + * @method static \Illuminate\Database\Eloquent\Builder|UserRegister whereContent($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserRegister whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserRegister whereIdentifier($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserRegister whereInstance($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserRegister whereUpdatedAt($value) + * @mixin \Eloquent + */ + class UserRegister extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserShop + * + * @property int $id + * @property int $user_id + * @property string|null $url + * @property string|null $name + * @property string|null $description + * @property string|null $about_you + * @property string|null $user_address + * @property string|null $trans + * @property bool $pick_up + * @property bool $active + * @property Carbon|null $active_date + * @property string|null $featured + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property string|null $deleted_at + * @property User $user + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|UserShop newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserShop newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserShop onlyTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|UserShop query() + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereAboutYou($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereActiveDate($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereDeletedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereDescription($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereFeatured($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop wherePickUp($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereTrans($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereUrl($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereUserAddress($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop whereUserId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserShop withTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|UserShop withoutTrashed() + * @mixin \Eloquent + */ + class UserShop extends \Eloquent {} +} + +namespace App\Models{ +/** + * App\Models\UserUpdateEmail + * + * @property-read \App\User $user + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail query() + * @property int $user_id + * @property string $email + * @property string $token + * @property \Illuminate\Support\Carbon $created_at + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail whereEmail($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail whereToken($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail whereUserId($value) + * @mixin \Eloquent + */ + class UserUpdateEmail extends \Eloquent {} +} + +namespace App\Models{ +/** + * Class UserWhitelabelProduct + * + * @property int $id + * @property int $user_id + * @property int $product_id + * @property string|null $info + * @property string|null $attributes + * @property string|null $options + * @property bool $active + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Product $product + * @property User $user + * @package App\Models + * @property-read \Illuminate\Database\Eloquent\Collection $whitelabel_images + * @property-read int|null $whitelabel_images_count + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct query() + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereAttributes($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereInfo($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereOptions($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereProductId($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|UserWhitelabelProduct whereUserId($value) + * @mixin \Eloquent + */ + class UserWhitelabelProduct extends \Eloquent {} +} + +namespace App{ +/** + * App\User + * + * @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications + * @property-read int|null $notifications_count + * @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|User newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|User query() + * @property int $id + * @property string $email + * @property \Illuminate\Support\Carbon|null $email_verified_at + * @property string $password + * @property int|null $account_id + * @property int|null $m_level + * @property int|null $m_sponsor + * @property int $admin + * @property int $wizard + * @property int $blocked + * @property int $confirmed + * @property string|null $confirmation_code + * @property string|null $confirmation_date + * @property string|null $confirmation_code_to + * @property int $confirmation_code_remider + * @property int $active + * @property string|null $active_date + * @property string|null $agreement + * @property string $lang + * @property string|null $notes + * @property string|null $last_login + * @property string|null $release_account + * @property string|null $account_payment + * @property string|null $payment_methods + * @property int|null $next_m_level + * @property int $abo_options + * @property int $test_mode + * @property string|null $settings + * @property string|null $remember_token + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property string|null $deleted_at + * @method static \Illuminate\Database\Eloquent\Builder|User whereAboOptions($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereAccountId($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereAccountPayment($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereActiveDate($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereAdmin($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereAgreement($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereBlocked($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereConfirmationCode($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereConfirmationCodeRemider($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereConfirmationCodeTo($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereConfirmationDate($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereConfirmed($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereDeletedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereEmailVerifiedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereLang($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereLastLogin($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereMLevel($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereMSponsor($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereNextMLevel($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereNotes($value) + * @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value) + * @method static \Illuminate\Database\Eloquent\Builder|User wherePaymentMethods($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereReleaseAccount($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereRememberToken($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereSettings($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereTestMode($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereWizard($value) + * @property-read \App\Models\UserAccount|null $account + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\File[] $files + * @property-read int|null $files_count + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\UserHistory[] $user_histories + * @property-read int|null $user_histories_count + * @property-read \App\Models\UserLevel|null $user_level + * @property-read User|null $user_sponsor + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\UserUpdateEmail[] $user_update_email + * @property-read int|null $user_update_email_count + * @property string|null $payment_account + * @property-read \App\Models\UserLevel|null $next_user_level + * @method static \Illuminate\Database\Eloquent\Builder|User wherePaymentAccount($value) + * @property string|null $payment_credit + * @method static \Illuminate\Database\Eloquent\Builder|User wherePaymentCredit($value) + * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\UserPayCredit[] $user_pay_credits + * @property-read int|null $user_pay_credits_count + * @property-read \Illuminate\Database\Eloquent\Collection|\Laravel\Passport\Client[] $clients + * @property-read int|null $clients_count + * @property-read \Illuminate\Database\Eloquent\Collection|\Laravel\Passport\Token[] $tokens + * @property-read int|null $tokens_count + * @property-read \App\Models\UserShop|null $shop + * @property int|null $lead_type_id + * @property-read \App\Models\LeadType|null $lead_type + * @property-read \Illuminate\Database\Eloquent\Collection $whitelabel_products + * @property-read int|null $whitelabel_products_count + * @method static \Illuminate\Database\Eloquent\Builder|User whereLeadTypeId($value) + * @mixin \Eloquent + */ + class User extends \Eloquent {} +} + diff --git a/app/Console/Commands/PaymentsReminders.php b/app/Console/Commands/PaymentsReminders.php index f3bf219..c5d8956 100644 --- a/app/Console/Commands/PaymentsReminders.php +++ b/app/Console/Commands/PaymentsReminders.php @@ -10,19 +10,19 @@ use Illuminate\Console\Command; /** * Command für automatische Zahlungserinnerungen - * + * * Dieser Command wird als Cron-Job ausgeführt und sendet automatisch * Zahlungserinnerungen basierend auf den konfigurierten Intervallen. - * + * * Verwendung: * php artisan payments:reminders - * + * * Cron-Job Konfiguration (täglich um 9:00 Uhr): * 0 9 * * * cd /path/to/project && php artisan payments:reminders >> /dev/null 2>&1 - * + * * Oder für stündliche Ausführung: * 0 * * * * cd /path/to/project && php artisan payments:reminders >> /dev/null 2>&1 - * + * * Logs werden automatisch in storage/logs/laravel.log geschrieben */ class PaymentsReminders extends Command @@ -33,16 +33,20 @@ class PaymentsReminders extends Command * @var string */ protected $signature = 'payments:reminders'; + protected $description = 'Run Payments Reminders'; private $timeStart; + private $dev = false; + private $paymentReminderService; + private $stats = [ 'total_processed' => 0, 'reminders_sent' => 0, 'errors' => 0, - 'skipped' => 0 + 'skipped' => 0, ]; public function __construct(PaymentReminderService $paymentReminderService) @@ -64,27 +68,29 @@ class PaymentsReminders extends Command try { $this->functionReminder(); - + $executionTime = round(microtime(true) - $this->timeStart, 2); $this->info("\n=== PAYMENT REMINDERS ABGESCHLOSSEN ==="); $this->info("Ausführungszeit: {$executionTime} Sekunden"); - $this->info("Statistiken:"); + $this->info('Statistiken:'); $this->info(" - Gesamt verarbeitet: {$this->stats['total_processed']}"); $this->info(" - Erinnerungen gesendet: {$this->stats['reminders_sent']}"); $this->info(" - Fehler: {$this->stats['errors']}"); $this->info(" - Übersprungen: {$this->stats['skipped']}"); - + \Log::info('PaymentsReminders Command completed successfully', [ 'execution_time' => $executionTime, - 'stats' => $this->stats + 'stats' => $this->stats, ]); + return 0; } catch (\Exception $e) { \Log::error('PaymentsReminders Command failed', [ 'error' => $e->getMessage(), - 'trace' => $e->getTraceAsString() + 'trace' => $e->getTraceAsString(), ]); - $this->error('Command failed: ' . $e->getMessage()); + $this->error('Command failed: '.$e->getMessage()); + return 1; } } @@ -95,43 +101,47 @@ class PaymentsReminders extends Command private function functionReminder() { $this->info('=== STARTE PAYMENT REMINDERS ==='); - + // Hole alle aktiven PaymentReminder und gruppiere sie nach clearingtype $payment_reminders = PaymentReminder::where('active', true)->get(); - $this->info("Gefundene aktive PaymentReminder: " . $payment_reminders->count()); - + $this->info('Gefundene aktive PaymentReminder: '.$payment_reminders->count()); + if ($payment_reminders->isEmpty()) { - $this->warn("Keine aktiven PaymentReminder gefunden!"); + $this->warn('Keine aktiven PaymentReminder gefunden!'); + return; } - + // Finde für jeden clearingtype das kleinste Intervall (in Tagen) $intervals = $this->paymentReminderService->getActiveIntervals(); - $this->info("Gefundene clearingtypes mit kleinsten Intervallen:"); - foreach($intervals as $clearingtype => $interval){ + $this->info('Gefundene clearingtypes mit kleinsten Intervallen:'); + foreach ($intervals as $clearingtype => $interval) { $this->line(" - {$clearingtype}: {$interval} Tage"); } // Verarbeite jeden clearingtype mit seinem kleinsten Intervall - foreach($intervals as $clearingtype => $interval){ + foreach ($intervals as $clearingtype => $interval) { $this->info("\n--- Verarbeite clearingtype: {$clearingtype} mit Intervall: {$interval} Tage ---"); - + $date = Carbon::now()->subDays($interval); - $this->line("Suche Zahlungen vor: " . $date->format('d.m.Y H:i:s')); + $this->line('Suche Zahlungen vor: '.$date->format('d.m.Y H:i:s')); // Hole nur die neueste ShoppingPayment pro shopping_order_id $shopping_payments = $this->paymentReminderService->getOpenPaymentsForClearingType($clearingtype, $interval); - - $this->info("Gefundene offene Zahlungen für {$clearingtype}: " . $shopping_payments->count()); - + + $this->info("Gefundene offene Zahlungen für {$clearingtype}: ".$shopping_payments->count()); + if ($shopping_payments->isEmpty()) { - $this->line(" Keine Zahlungen für {$clearingtype} gefunden."); + $this->line("Keine Zahlungen für {$clearingtype} gefunden."); + continue; } - + // Verarbeite jede Zahlung - foreach($shopping_payments as $shopping_payment){ + $this->line('--- START processPayment VERARBEITUNG'); + + foreach ($shopping_payments as $shopping_payment) { $this->processPayment($shopping_payment, $clearingtype); } } @@ -143,33 +153,32 @@ class PaymentsReminders extends Command private function processPayment($shopping_payment, $clearingtype) { $this->stats['total_processed']++; - + try { - $this->line(" Verarbeite Order ID: {$shopping_payment->shopping_order_id}, Created: {$shopping_payment->created_at->format('d.m.Y H:i:s')}, Amount: {$shopping_payment->amount}, Reminder: {$shopping_payment->reminder}"); - + $this->line("Verarbeite Order ID: {$shopping_payment->shopping_order_id}, Created: {$shopping_payment->created_at->format('d.m.Y H:i:s')}, Amount: {$shopping_payment->amount}, Reminder: {$shopping_payment->reminder}"); + // Prüfe ob eine Erinnerung gesendet werden soll if ($this->shouldSendReminder($shopping_payment, $clearingtype)) { $this->sendReminderForPayment($shopping_payment); } else { - $this->line(" ⏭️ Übersprungen - Keine Erinnerung fällig"); + $this->line('Übersprungen - Keine Erinnerung fällig'); $this->stats['skipped']++; } - } catch (\Exception $e) { - $this->error(" ❌ Fehler bei Order ID {$shopping_payment->shopping_order_id}: " . $e->getMessage()); + $this->error("Fehler bei Order ID {$shopping_payment->shopping_order_id}: ".$e->getMessage()); $this->stats['errors']++; - + \Log::error('Error processing payment reminder', [ 'order_id' => $shopping_payment->shopping_order_id, 'payment_id' => $shopping_payment->id, - 'error' => $e->getMessage() + 'error' => $e->getMessage(), ]); } } /** * Prüft ob eine Erinnerung für diese Zahlung gesendet werden soll - * + * * Logik: * - Erste Erinnerung: Nach X Tagen ab Bestelldatum * - Weitere Erinnerungen: Nach Y Tagen ab letzter Erinnerung @@ -179,36 +188,55 @@ class PaymentsReminders extends Command // Hole alle aktiven Erinnerungen für diesen Clearingtype $payment_reminders = PaymentReminder::where('active', true) ->where('clearingtype', $clearingtype) - ->orderBy('interval', 'asc') + ->orderBy('interval', 'asc') // von kein nach gross ->get(); if ($payment_reminders->isEmpty()) { + $this->line('shouldSendReminder - keine PaymentReminders'); + return false; } // Wenn alle Erinnerungen bereits gesendet wurden if ($shopping_payment->reminder >= $payment_reminders->count()) { + $this->line('shouldSendReminder - alle Erinnerungen wurden bereits gesendet'); + return false; } - // Hole die nächste Erinnerung - $next_reminder = $payment_reminders[$shopping_payment->reminder]; - + $next_reminder = isset($payment_reminders[$shopping_payment->reminder]) ? $payment_reminders[$shopping_payment->reminder] : null; + if ($next_reminder == null) { + $next_reminder = isset($payment_reminders[0]) ? $payment_reminders[0] : null; + if ($next_reminder == null) { + $this->line('shouldSendReminder - keine Erinnerung gefunden'); + + return false; + } + } + $this->line("shouldSendReminder - nächste Erinnerung: {$next_reminder->interval} Tage"); + // Wenn noch keine Erinnerung gesendet wurde, prüfe das erste Intervall - if ($shopping_payment->reminder == 0) { + if ($shopping_payment->reminder == null || $shopping_payment->reminder == 0) { $daysSinceOrder = $shopping_payment->created_at->diffInDays(now()); + $this->line("shouldSendReminder - no reminder send first intervall - Tage seit Bestellung: {$daysSinceOrder} : Next intervall: {$next_reminder->interval}"); + return $daysSinceOrder >= $next_reminder->interval; } - + + // Hole die nächste Erinnerung + // Wenn bereits Erinnerungen gesendet wurden, prüfe das nächste Intervall if ($shopping_payment->reminder_date) { $current_reminder = $payment_reminders[$shopping_payment->reminder - 1]; + $this->line("shouldSendReminder - letzte Erinnerung: {$current_reminder->interval} Tage"); $interval_difference = $next_reminder->interval - $current_reminder->interval; - + $next_reminder_date = Carbon::parse($shopping_payment->reminder_date)->addDays($interval_difference); + $this->line("shouldSendReminder - next reminder date: {$next_reminder_date->format('d.m.Y H:i:s')}"); + return now()->gte($next_reminder_date); } - + return false; } @@ -218,35 +246,34 @@ class PaymentsReminders extends Command private function sendReminderForPayment($shopping_payment) { try { - $this->line(" 📧 Sende Erinnerung..."); - + $this->line('Sende Erinnerung...'); + $result = $this->paymentReminderService->sendReminder($shopping_payment); - + if ($result) { - $this->line(" ✅ Erinnerung erfolgreich gesendet"); + $this->line('Erinnerung erfolgreich gesendet'); $this->stats['reminders_sent']++; - + // Log für Cron-Job \Log::info('Payment reminder sent via cron', [ 'order_id' => $shopping_payment->shopping_order_id, 'payment_id' => $shopping_payment->id, 'reminder_count' => $shopping_payment->reminder + 1, - 'email' => $shopping_payment->shopping_order->shopping_user->billing_email ?? 'N/A' + 'email' => $shopping_payment->shopping_order->shopping_user->billing_email ?? 'N/A', ]); } else { - $this->line(" ⚠️ Keine Erinnerung gesendet (keine weitere Erinnerung verfügbar)"); + $this->line('Keine Erinnerung gesendet (keine weitere Erinnerung verfügbar)'); $this->stats['skipped']++; } - } catch (\Exception $e) { - $this->error(" ❌ Fehler beim Senden der Erinnerung: " . $e->getMessage()); + $this->error('Fehler beim Senden der Erinnerung: '.$e->getMessage()); $this->stats['errors']++; - + \Log::error('Error sending payment reminder', [ 'order_id' => $shopping_payment->shopping_order_id, 'payment_id' => $shopping_payment->id, - 'error' => $e->getMessage() + 'error' => $e->getMessage(), ]); } } -} \ No newline at end of file +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 527823f..665e914 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -19,27 +19,27 @@ class Kernel extends ConsoleKernel /** * Define the application's command schedule. * - * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { - /*$schedule->command('payments:accounts') + if (config('app.debug') == false) { + $schedule->command('payments:accounts') ->sendOutputTo(storage_path('logs/cron.log')) ->appendOutputTo(storage_path('logs/cron-history.log')) ->emailOutputOnFailure(config('app.exception_mail')) ->onFailure(function () { \Log::error('Payments:accounts command failed'); }); - */ + } $schedule->command('payments:reminders') - ->sendOutputTo(storage_path('logs/cron.log')) - ->appendOutputTo(storage_path('logs/cron-reminders.log')) - ->emailOutputOnFailure(config('app.exception_mail')) - ->onFailure(function () { - \Log::error('Payments:reminders command failed'); - }); + ->sendOutputTo(storage_path('logs/cron.log')) + ->appendOutputTo(storage_path('logs/cron-reminders.log')) + ->emailOutputOnFailure(config('app.exception_mail')) + ->onFailure(function () { + \Log::error('Payments:reminders command failed'); + }); } /** diff --git a/app/Cron/UserCheckPaymentsAccounts.php b/app/Cron/UserCheckPaymentsAccounts.php index 30b7c97..1e9da50 100644 --- a/app/Cron/UserCheckPaymentsAccounts.php +++ b/app/Cron/UserCheckPaymentsAccounts.php @@ -1,21 +1,17 @@ 29 renewal_days > set next_m_level to m_level @@ -27,53 +23,56 @@ class UserCheckPaymentsAccounts > 0 deaktiv = reminder_deaktiv //status 35 */ - public static function userReminderPayments(User $user, $dev){ - //35 reminder_deaktiv - if(!$user->isActiveAccount()){ // payment_account gt now + public static function userReminderPayments(User $user, $dev) + { + // 35 reminder_deaktiv + if (! $user->isActiveAccount()) { // payment_account gt now return self::checkIsReminderSend($user, 35, $dev); } - //34 reminder_last - if($user->daysActiveAccount() <= config('main.remind_last_days')){ + // 34 reminder_last + if ($user->daysActiveAccount() <= config('main.remind_last_days')) { return self::checkIsReminderSend($user, 34, $dev); } - //33 reminder_sec - if($user->daysActiveAccount() <= config('main.remind_sec_days')){ + // 33 reminder_sec + if ($user->daysActiveAccount() <= config('main.remind_sec_days')) { return self::checkIsReminderSend($user, 33, $dev); } - //31 reminder_first - if($user->daysActiveAccount() > config('main.remind_sec_days')){ + // 31 reminder_first + if ($user->daysActiveAccount() > config('main.remind_sec_days')) { return self::checkIsReminderSend($user, 31, $dev); } + return 0; } - - private static function checkIsReminderSend(User $user, $status, $dev){ + private static function checkIsReminderSend(User $user, $status, $dev) + { $isSend = UserHistory::whereUserId($user->id) - ->whereAction('reminder_payments') - ->whereIdentifier($user->payment_account) - ->whereStatus($status) - ->get()->last(); + ->whereAction('reminder_payments') + ->whereIdentifier($user->payment_account) + ->whereStatus($status) + ->get()->last(); - if($isSend){ + if ($isSend) { return 0; } - if($dev){ + if ($dev) { $referenz = 0; - }else{ + } else { $referenz = self::sendReminderMail($user, $status); } - UserHistory::create(['user_id' => $user->id, 'action'=>'reminder_payments', 'referenz'=>$referenz, 'identifier'=>$user->payment_account, 'status'=>$status]); - return $status; + UserHistory::create(['user_id' => $user->id, 'action' => 'reminder_payments', 'referenz' => $referenz, 'identifier' => $user->payment_account, 'status' => $status]); + return $status; } - private function sendReminderMail(User $user, $status){ + private static function sendReminderMail(User $user, $status) + { $days = $user->daysActiveAccount(); - if($days < 0){ - $days = $days*-1; + if ($days < 0) { + $days = $days * -1; } $datetime = $user->getPaymentAccountDateFormat(); @@ -85,77 +84,75 @@ class UserCheckPaymentsAccounts $price = 'von '.$user->payment_order_product->getFormattedPrice().' EUR'; }*/ - $message = __('reminder.copy_first_'.$status, ['days'=>$days, 'datetime'=>$datetime, 'price' =>$price, 'pay_date'=>$pay_date]); - $message_last = __('reminder.copy_last_'.$status, ['days'=>$days, 'datetime'=>$datetime, 'price' =>$price, 'pay_date'=>$pay_date]); + $message = __('reminder.copy_first_'.$status, ['days' => $days, 'datetime' => $datetime, 'price' => $price, 'pay_date' => $pay_date]); + $message_last = __('reminder.copy_last_'.$status, ['days' => $days, 'datetime' => $datetime, 'price' => $price, 'pay_date' => $pay_date]); $button = __('reminder.button_'.$status); - $message = preg_replace("/[\n\r]/","",$message); - $message_last = preg_replace("/[\n\r]/","",$message_last); + $message = preg_replace("/[\n\r]/", '', $message); + $message_last = preg_replace("/[\n\r]/", '', $message_last); $data = [ - 'subject' => __('reminder.subject')." | ID: ".$status, + 'subject' => __('reminder.subject').' | ID: '.$status, 'message' => $message, 'message_last' => $message_last, 'url' => route('user_membership'), 'button' => $button, ]; - //dump($data); + // dump($data); $sender = User::find(1); $customer_mail = UserMessage::create([ - 'user_id' => $user->id, + 'user_id' => $user->id, 'send_user_id' => $sender->id, 'email' => $user->email, 'subject' => $data['subject'], - 'message' => $data['message']." ".$data['message_last'], + 'message' => $data['message'].' '.$data['message_last'], ]); - try{ - if($status >= 34){ - //Mail::to($user->email)->bcc(config('app.info_mail'))->send(new MailCustomMessage($user, $data, $sender, false)); - }else{ - //Mail::to($user->email)->send(new MailCustomMessage($user, $data, $sender, false)); + try { + if ($status >= 34) { + // Mail::to($user->email)->bcc(config('app.info_mail'))->send(new MailCustomMessage($user, $data, $sender, false)); + } else { + // Mail::to($user->email)->send(new MailCustomMessage($user, $data, $sender, false)); } - } - catch(\Exception $e){ + } catch (\Exception $e) { \Log::channel('cron')->error('Mail Error: '.$e->getMessage()); // Never reached $customer_mail->fail = true; $customer_mail->error = $e->getMessage(); $customer_mail->save(); + return 0; } $customer_mail->send = true; $customer_mail->sent_at = now(); $customer_mail->save(); + return 1; } - } +/*public function checkConfirmation() + { + User Register sind in der DB UserRegister, erst bei bestätigung wird es in die User DB übertragen - /*public function checkConfirmation() - { - User Register sind in der DB UserRegister, erst bei bestätigung wird es in die User DB übertragen + $now = date('Y-m-d H:i:s'); + $next = date('Y-m-d H:i:s', strtotime('+3 week')); - $now = date('Y-m-d H:i:s'); - $next = date('Y-m-d H:i:s', strtotime('+3 week')); - - $users = User::where('confirmed', '=', 0)->where('confirmation_code_to', '<', $now)->get(); - - foreach ($users as $user) { - - //delete user - if ($user->confirmation_code_remider == 1) { - $this->userRepo->deleteUser($user); - - } - //send new remider - if ($user->confirmation_code_remider == 0) { - Mail::to($user->email)->bcc(config('app.info_mail'))->send(new MailVerifyAccount($user->confirmation_code, $user)); - $user->confirmation_code_to = $next; - $user->confirmation_code_remider = 1; - $user->save(); - } - } - return "TOSK"; - }*/ + $users = User::where('confirmed', '=', 0)->where('confirmation_code_to', '<', $now)->get(); + foreach ($users as $user) { + + //delete user + if ($user->confirmation_code_remider == 1) { + $this->userRepo->deleteUser($user); + + } + //send new remider + if ($user->confirmation_code_remider == 0) { + Mail::to($user->email)->bcc(config('app.info_mail'))->send(new MailVerifyAccount($user->confirmation_code, $user)); + $user->confirmation_code_to = $next; + $user->confirmation_code_remider = 1; + $user->save(); + } + } + return "TOSK"; + }*/ diff --git a/app/Http/Controllers/Admin/Inventory/LocationController.php b/app/Http/Controllers/Admin/Inventory/LocationController.php new file mode 100644 index 0000000..48dc547 --- /dev/null +++ b/app/Http/Controllers/Admin/Inventory/LocationController.php @@ -0,0 +1,59 @@ + Location::query()->orderBy('name')->get(), + ]); + } + + public function create() + { + return view('admin.inventory.locations.form', [ + 'model' => new Location(['active' => true]), + ]); + } + + public function store(StoreLocationRequest $request) + { + Location::create($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.locations.index'); + } + + public function edit(Location $location) + { + return view('admin.inventory.locations.form', [ + 'model' => $location, + ]); + } + + public function update(UpdateLocationRequest $request, Location $location) + { + $location->update($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.locations.index'); + } + + public function destroy(Location $location) + { + $location->delete(); + + \Session::flash('alert-success', __('Eintrag gelöscht')); + + return redirect()->route('admin.inventory.locations.index'); + } +} diff --git a/app/Http/Controllers/Admin/Inventory/MaterialQualityController.php b/app/Http/Controllers/Admin/Inventory/MaterialQualityController.php new file mode 100644 index 0000000..61a6a8d --- /dev/null +++ b/app/Http/Controllers/Admin/Inventory/MaterialQualityController.php @@ -0,0 +1,59 @@ + MaterialQuality::query()->orderBy('pos')->orderBy('name')->get(), + ]); + } + + public function create() + { + return view('admin.inventory.material-qualities.form', [ + 'model' => new MaterialQuality(['pos' => 0]), + ]); + } + + public function store(StoreMaterialQualityRequest $request) + { + MaterialQuality::create($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.material-qualities.index'); + } + + public function edit(MaterialQuality $materialQuality) + { + return view('admin.inventory.material-qualities.form', [ + 'model' => $materialQuality, + ]); + } + + public function update(UpdateMaterialQualityRequest $request, MaterialQuality $materialQuality) + { + $materialQuality->update($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.material-qualities.index'); + } + + public function destroy(MaterialQuality $materialQuality) + { + $materialQuality->delete(); + + \Session::flash('alert-success', __('Eintrag gelöscht')); + + return redirect()->route('admin.inventory.material-qualities.index'); + } +} diff --git a/app/Http/Controllers/Admin/Inventory/PackagingItemController.php b/app/Http/Controllers/Admin/Inventory/PackagingItemController.php new file mode 100644 index 0000000..6123802 --- /dev/null +++ b/app/Http/Controllers/Admin/Inventory/PackagingItemController.php @@ -0,0 +1,98 @@ +get('category', 'packaging'); + $isShipping = $category === 'shipping'; + + $query = PackagingItem::query() + ->with(['packagingMaterial', 'supplier']) + ->orderBy('name'); + + if ($isShipping) { + $query->whereIn('category', ['shipping', 'label', 'shipping_office']); + } else { + $query->where('category', 'packaging'); + } + + return view('admin.inventory.packaging-items.index', [ + 'values' => $query->get(), + 'category' => $category, + 'pageTitle' => $isShipping ? __('Versandverpackung') : __('Produktverpackung'), + ]); + } + + public function create(Request $request) + { + $category = $request->get('category', 'packaging'); + + return view('admin.inventory.packaging-items.form', [ + 'model' => new PackagingItem(['active' => true, 'category' => $category === 'shipping' ? 'shipping' : 'packaging', 'weight_grams' => 0]), + 'packagingMaterials' => PackagingMaterial::query()->orderBy('pos')->orderBy('name')->get(), + 'suppliers' => Supplier::query()->orderBy('name')->get(), + 'category' => $category, + ]); + } + + public function store(StorePackagingItemRequest $request) + { + $item = $this->packagingItemRepository->create($request->validated()); + + \Session::flash('alert-save', '1'); + + $category = in_array($item->category, ['shipping', 'label', 'shipping_office']) ? 'shipping' : 'packaging'; + + return redirect()->route('admin.inventory.packaging-items.index', ['category' => $category]); + } + + public function edit(PackagingItem $packagingItem) + { + $category = in_array($packagingItem->category, ['shipping', 'label', 'shipping_office']) ? 'shipping' : 'packaging'; + + return view('admin.inventory.packaging-items.form', [ + 'model' => $packagingItem, + 'packagingMaterials' => PackagingMaterial::query()->orderBy('pos')->orderBy('name')->get(), + 'suppliers' => Supplier::query()->orderBy('name')->get(), + 'category' => $category, + ]); + } + + public function update(UpdatePackagingItemRequest $request, PackagingItem $packagingItem) + { + $this->packagingItemRepository->update($packagingItem, $request->validated()); + + \Session::flash('alert-save', '1'); + + $category = in_array($packagingItem->category, ['shipping', 'label', 'shipping_office']) ? 'shipping' : 'packaging'; + + return redirect()->route('admin.inventory.packaging-items.index', ['category' => $category]); + } + + public function destroy(PackagingItem $packagingItem) + { + $category = in_array($packagingItem->category, ['shipping', 'label', 'shipping_office']) ? 'shipping' : 'packaging'; + + $packagingItem->delete(); + + \Session::flash('alert-success', __('Eintrag gelöscht')); + + return redirect()->route('admin.inventory.packaging-items.index', ['category' => $category]); + } +} diff --git a/app/Http/Controllers/Admin/Inventory/PackagingMaterialController.php b/app/Http/Controllers/Admin/Inventory/PackagingMaterialController.php new file mode 100644 index 0000000..1dd5251 --- /dev/null +++ b/app/Http/Controllers/Admin/Inventory/PackagingMaterialController.php @@ -0,0 +1,59 @@ + PackagingMaterial::query()->orderBy('pos')->orderBy('name')->get(), + ]); + } + + public function create() + { + return view('admin.inventory.packaging-materials.form', [ + 'model' => new PackagingMaterial(['pos' => 0]), + ]); + } + + public function store(StorePackagingMaterialRequest $request) + { + PackagingMaterial::create($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.packaging-materials.index'); + } + + public function edit(PackagingMaterial $packagingMaterial) + { + return view('admin.inventory.packaging-materials.form', [ + 'model' => $packagingMaterial, + ]); + } + + public function update(UpdatePackagingMaterialRequest $request, PackagingMaterial $packagingMaterial) + { + $packagingMaterial->update($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.packaging-materials.index'); + } + + public function destroy(PackagingMaterial $packagingMaterial) + { + $packagingMaterial->delete(); + + \Session::flash('alert-success', __('Eintrag gelöscht')); + + return redirect()->route('admin.inventory.packaging-materials.index'); + } +} diff --git a/app/Http/Controllers/Admin/Inventory/ProductionController.php b/app/Http/Controllers/Admin/Inventory/ProductionController.php new file mode 100644 index 0000000..a8d8a03 --- /dev/null +++ b/app/Http/Controllers/Admin/Inventory/ProductionController.php @@ -0,0 +1,169 @@ + $this->productionRepository->listForIndex(), + ]); + } + + public function create(): View + { + $defaultLocationId = Location::query()->where('name', 'like', '%öln%')->value('id') + ?? Location::query()->where('active', true)->first()?->id; + + return view('admin.inventory.productions.create', [ + 'products' => Product::query()->where('active', 1)->orderBy('name')->get(['id', 'name']), + 'locations' => Location::query()->where('active', true)->orderBy('name')->get(), + 'defaultLocationId' => $defaultLocationId, + 'model' => null, + ]); + } + + public function store(StoreProductionRequest $request): RedirectResponse + { + $payload = $request->validatedPayload(); + + try { + $production = $this->productionService->store( + [ + 'product_id' => $payload['product_id'], + 'location_id' => $payload['location_id'], + 'produced_at' => $payload['produced_at'], + 'quantity' => $payload['quantity'], + 'notes' => $payload['notes'], + ], + $payload['ingredient_lines'], + (int) $request->user()->id + ); + } catch (ValidationException $e) { + return redirect()->back()->withInput()->withErrors($e->errors()); + } + + if ($production->mhd_warning) { + \Session::flash('alert-warning', __('Hinweis: Mindestens eine Rohstoff-Charge hat ein kürzeres MHD als das geplante Produkt-MHD.')); + } + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.productions.show', $production); + } + + public function show(Production $production): View + { + $production->load([ + 'product', + 'location', + 'producedByUser.account', + 'productionIngredients.ingredient', + 'productionIngredients.stockEntry', + 'productionPackagings.packagingItem.packagingMaterial', + ]); + + return view('admin.inventory.productions.show', [ + 'model' => $production, + ]); + } + + public function edit(Production $production): View + { + $production->load([ + 'product', + 'location', + 'productionIngredients.ingredient', + 'productionIngredients.stockEntry', + ]); + + $defaultLocationId = $production->location_id; + + return view('admin.inventory.productions.edit', [ + 'model' => $production, + 'products' => Product::query()->where('active', 1) + ->orWhere('id', $production->product_id) + ->orderBy('name')->get(['id', 'name']), + 'locations' => Location::query()->where('active', true)->orderBy('name')->get(), + 'defaultLocationId' => $defaultLocationId, + ]); + } + + public function update(StoreProductionRequest $request, Production $production): RedirectResponse + { + $payload = $request->validatedPayload(); + + try { + $production = $this->productionService->updateProduction( + $production, + [ + 'product_id' => $payload['product_id'], + 'location_id' => $payload['location_id'], + 'produced_at' => $payload['produced_at'], + 'quantity' => $payload['quantity'], + 'notes' => $payload['notes'], + ], + $payload['ingredient_lines'], + (int) $request->user()->id + ); + } catch (ValidationException $e) { + return redirect()->back()->withInput()->withErrors($e->errors()); + } + + if ($production->mhd_warning) { + \Session::flash('alert-warning', __('Hinweis: Mindestens eine Rohstoff-Charge hat ein kürzeres MHD als das geplante Produkt-MHD.')); + } + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.productions.show', $production); + } + + public function copy(Production $production): View + { + $production->load([ + 'product', + 'productionIngredients.ingredient', + 'productionIngredients.stockEntry', + ]); + + $defaultLocationId = $production->location_id; + + return view('admin.inventory.productions.create', [ + 'model' => $production, + 'products' => Product::query()->where('active', 1)->orderBy('name')->get(['id', 'name']), + 'locations' => Location::query()->where('active', true)->orderBy('name')->get(), + 'defaultLocationId' => $defaultLocationId, + ]); + } + + public function recipeJson(Request $request, Product $product): JsonResponse + { + $locationId = (int) $request->query('location_id', 0); + $quantity = (int) $request->query('quantity', 1); + if ($locationId < 1) { + return response()->json(['message' => __('location_id erforderlich')], 422); + } + + return response()->json( + $this->productionService->buildRecipePayload($product, $locationId, max(1, $quantity)) + ); + } +} diff --git a/app/Http/Controllers/Admin/Inventory/StockEntryController.php b/app/Http/Controllers/Admin/Inventory/StockEntryController.php new file mode 100644 index 0000000..9529fe2 --- /dev/null +++ b/app/Http/Controllers/Admin/Inventory/StockEntryController.php @@ -0,0 +1,234 @@ +formSharedData(), [ + 'values' => $this->stockEntryRepository->listForIndex(), + ])); + } + + public function create(): View|RedirectResponse + { + if (! auth()->user()->isAdmin()) { + return redirect()->route('home'); + } + + return view('admin.inventory.stock-entries.create', array_merge($this->formSharedData(), [ + 'model' => new StockEntry([ + 'ordered_at' => now()->toDateString(), + 'entry_type' => 'ingredient', + ]), + ])); + } + + public function store(StoreStockEntryRequest $request): RedirectResponse + { + if (! $request->user()->isAdmin()) { + return redirect()->route('home'); + } + + $data = $request->validatedPayload(); + $data['ordered_by'] = (int) auth()->id(); + + $this->stockEntryRepository->create($data); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.stock-entries.index'); + } + + public function show(StockEntry $stockEntry): View + { + $stockEntry->load([ + 'ingredient', + 'packagingItem.packagingMaterial', + 'supplier', + 'location', + 'quality', + 'orderedByUser.account', + 'receivedByUser.account', + ]); + + return view('admin.inventory.stock-entries.show', array_merge($this->formSharedData(), [ + 'model' => $stockEntry, + 'materialQualities' => MaterialQuality::query()->orderBy('pos')->orderBy('name')->get(), + ])); + } + + public function edit(StockEntry $stockEntry): View|RedirectResponse + { + if (! auth()->user()->isAdmin()) { + return redirect()->route('home'); + } + if (! $stockEntry->isPending()) { + \Session::flash('alert-error', __('Nur offene Bestellungen können bearbeitet werden.')); + + return redirect()->route('admin.inventory.stock-entries.show', $stockEntry); + } + + $stockEntry->load(['ingredient', 'packagingItem']); + + return view('admin.inventory.stock-entries.edit', array_merge($this->formSharedData(), [ + 'model' => $stockEntry, + ])); + } + + public function update(UpdateStockEntryRequest $request, StockEntry $stockEntry): RedirectResponse + { + if (! $request->user()->isAdmin()) { + return redirect()->route('home'); + } + if (! $stockEntry->isPending()) { + \Session::flash('alert-error', __('Nur offene Bestellungen können bearbeitet werden.')); + + return redirect()->route('admin.inventory.stock-entries.show', $stockEntry); + } + + $this->stockEntryRepository->update($stockEntry, $request->validatedPayload()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.stock-entries.index'); + } + + public function destroy(StockEntry $stockEntry): RedirectResponse + { + if (! auth()->user()->isAdmin()) { + return redirect()->route('home'); + } + if (! $stockEntry->isPending()) { + \Session::flash('alert-error', __('Nur offene Bestellungen können gelöscht werden.')); + + return redirect()->route('admin.inventory.stock-entries.index'); + } + + $stockEntry->delete(); + + \Session::flash('alert-success', __('Eintrag gelöscht')); + + return redirect()->route('admin.inventory.stock-entries.index'); + } + + public function receive(ReceiveStockEntryRequest $request, StockEntry $stockEntry): RedirectResponse + { + if (! $stockEntry->isPending()) { + \Session::flash('alert-error', __('Eintrag nicht mehr offen.')); + + return redirect()->route('admin.inventory.stock-entries.show', $stockEntry); + } + + $data = $request->validated(); + if ($stockEntry->entry_type !== 'ingredient') { + $data['quality_id'] = null; + $data['best_before'] = null; + } + + $this->stockEntryRepository->receive($stockEntry, $data); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.stock-entries.show', $stockEntry->fresh()); + } + + public function searchIngredients(Request $request): JsonResponse + { + $term = trim((string) $request->query('q', '')); + if (mb_strlen($term) < 1) { + return response()->json(['results' => []]); + } + + $rows = Ingredient::query() + ->where('active', true) + ->where(function ($query) use ($term) { + $query->where('name', 'like', '%'.$term.'%') + ->orWhere('inci', 'like', '%'.$term.'%'); + }) + ->orderBy('name') + ->limit(30) + ->get(['id', 'name', 'inci']); + + $results = $rows->map(function (Ingredient $i) { + $text = $i->name; + if ($i->inci) { + $text .= ' ('.$i->inci.')'; + } + + return ['id' => $i->id, 'text' => $text]; + })->values()->all(); + + return response()->json(['results' => $results]); + } + + public function searchPackagingItems(Request $request): JsonResponse + { + $term = trim((string) $request->query('q', '')); + $entryType = $request->query('entry_type'); + + $categoryMap = [ + 'packaging' => 'packaging', + 'label' => 'label', + 'shipping_office' => 'shipping_office', + ]; + + $query = PackagingItem::query() + ->where('active', true); + + if ($entryType && isset($categoryMap[$entryType])) { + $query->where('category', $categoryMap[$entryType]); + } + + if (mb_strlen($term) >= 1) { + $query->where('name', 'like', '%'.$term.'%'); + } + + $rows = $query->orderBy('name')->limit(30)->get(['id', 'name']); + + $results = $rows->map(fn (PackagingItem $p) => [ + 'id' => $p->id, + 'text' => $p->name, + ])->values()->all(); + + return response()->json(['results' => $results]); + } + + /** + * @return array + */ + protected function formSharedData(): array + { + return [ + 'suppliers' => Supplier::query()->where('active', true)->orderBy('name')->get(), + 'locations' => Location::query()->where('active', true)->orderBy('name')->get(), + 'entryTypeLabels' => [ + 'ingredient' => __('Rohstoff'), + 'packaging' => __('Verpackung'), + 'label' => __('Etikett'), + 'shipping_office' => __('Versand & Büro'), + ], + ]; + } +} diff --git a/app/Http/Controllers/Admin/Inventory/SupplierCategoryController.php b/app/Http/Controllers/Admin/Inventory/SupplierCategoryController.php new file mode 100644 index 0000000..8dccda6 --- /dev/null +++ b/app/Http/Controllers/Admin/Inventory/SupplierCategoryController.php @@ -0,0 +1,59 @@ + SupplierCategory::query()->orderBy('pos')->orderBy('name')->get(), + ]); + } + + public function create() + { + return view('admin.inventory.supplier-categories.form', [ + 'model' => new SupplierCategory(['pos' => 0]), + ]); + } + + public function store(StoreSupplierCategoryRequest $request) + { + SupplierCategory::create($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.supplier-categories.index'); + } + + public function edit(SupplierCategory $supplierCategory) + { + return view('admin.inventory.supplier-categories.form', [ + 'model' => $supplierCategory, + ]); + } + + public function update(UpdateSupplierCategoryRequest $request, SupplierCategory $supplierCategory) + { + $supplierCategory->update($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.supplier-categories.index'); + } + + public function destroy(SupplierCategory $supplierCategory) + { + $supplierCategory->delete(); + + \Session::flash('alert-success', __('Eintrag gelöscht')); + + return redirect()->route('admin.inventory.supplier-categories.index'); + } +} diff --git a/app/Http/Controllers/Admin/Inventory/SupplierController.php b/app/Http/Controllers/Admin/Inventory/SupplierController.php new file mode 100644 index 0000000..68925db --- /dev/null +++ b/app/Http/Controllers/Admin/Inventory/SupplierController.php @@ -0,0 +1,74 @@ + Supplier::query()->with(['country', 'supplierCategories'])->orderBy('name')->get(), + ]); + } + + public function create() + { + $defaultCountryId = Country::where('code', 'DE')->value('id'); + + return view('admin.inventory.suppliers.form', [ + 'model' => new Supplier(['active' => true, 'country_id' => $defaultCountryId]), + 'countries' => Country::query()->orderBy('de')->get(), + 'supplierCategories' => SupplierCategory::query()->orderBy('pos')->orderBy('name')->get(), + ]); + } + + public function store(StoreSupplierRequest $request) + { + $this->supplierRepository->create($request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.suppliers.index'); + } + + public function edit(Supplier $supplier) + { + $supplier->load('supplierCategories'); + + return view('admin.inventory.suppliers.form', [ + 'model' => $supplier, + 'countries' => Country::query()->orderBy('de')->get(), + 'supplierCategories' => SupplierCategory::query()->orderBy('pos')->orderBy('name')->get(), + ]); + } + + public function update(UpdateSupplierRequest $request, Supplier $supplier) + { + $this->supplierRepository->update($supplier, $request->validated()); + + \Session::flash('alert-save', '1'); + + return redirect()->route('admin.inventory.suppliers.index'); + } + + public function destroy(Supplier $supplier) + { + $supplier->delete(); + + \Session::flash('alert-success', __('Eintrag gelöscht')); + + return redirect()->route('admin.inventory.suppliers.index'); + } +} diff --git a/app/Http/Controllers/FileController.php b/app/Http/Controllers/FileController.php index 55f61f9..f34b7a4 100644 --- a/app/Http/Controllers/FileController.php +++ b/app/Http/Controllers/FileController.php @@ -2,11 +2,15 @@ namespace App\Http\Controllers; -use Storage; -use Response; +use App\Models\File; +use App\Models\ShoppingOrder; +use App\Models\UserCredit; use App\Services\Credit; use App\Services\Invoice; +use App\Services\PDFMerger; use Auth; +use Response; +use Storage; class FileController extends Controller { @@ -15,58 +19,63 @@ class FileController extends Controller * * @return void */ - public function __construct() + public function __construct() {} + + private function isPermission($user_id) { - } - private function isPermission($user_id){ - - if(Auth::user()->isAdmin() || $user_id == Auth::user()->id){ + if (Auth::user()->isAdmin() || $user_id == Auth::user()->id) { return true; } - abort(404); + abort(404); } - public function show($id = null, $disk = null, $do='file') + public function show($id = null, $disk = null, $do = 'file') { - $path = ""; - $filename = ""; + $path = ''; + $filename = ''; - if($disk === 'user'){ - $file = \App\Models\File::findOrFail($id); + if ($disk === 'user') { + $file = File::findOrFail($id); $this->isPermission($file->user_id); $path = Storage::disk($disk)->path($file->dir.$file->filename); if (file_exists($path)) { return Response::file($path); } } - - if ($disk === 'invoice'){ - $shopping_order = \App\Models\ShoppingOrder::findOrFail($id); + + if ($disk === 'invoice') { + $shopping_order = ShoppingOrder::findOrFail($id); $this->isPermission($shopping_order->auth_user_id); - $filename = Invoice::getFilename($shopping_order); + $filename = Invoice::getFilename($shopping_order); $path = Invoice::getDownloadPath($shopping_order); } - - - if ($disk === 'delivery'){ - $shopping_order = \App\Models\ShoppingOrder::findOrFail($id); + + if ($disk === 'delivery') { + $shopping_order = ShoppingOrder::findOrFail($id); $this->isPermission($shopping_order->auth_user_id); - $filename = Invoice::getDeliveryFilename($shopping_order); + $filename = Invoice::getDeliveryFilename($shopping_order); $path = Invoice::getDownloadPathDelivery($shopping_order); } - if ($disk === 'invoice_delivery'){ - $shopping_order = \App\Models\ShoppingOrder::findOrFail($id); + if ($disk === 'cancellation') { + $shopping_order = ShoppingOrder::findOrFail($id); + $this->isPermission($shopping_order->auth_user_id); + $filename = Invoice::getCancellationFilename($shopping_order); + $path = Invoice::getCancellationDownloadPath($shopping_order); + } + + if ($disk === 'invoice_delivery') { + $shopping_order = ShoppingOrder::findOrFail($id); $this->isPermission($shopping_order->auth_user_id); - $ifilename = Invoice::getFilename($shopping_order); + $ifilename = Invoice::getFilename($shopping_order); $ipath = Invoice::getDownloadPath($shopping_order, true); - $dfilename = Invoice::getDeliveryFilename($shopping_order); + $dfilename = Invoice::getDeliveryFilename($shopping_order); $dpath = Invoice::getDownloadPathDelivery($shopping_order, true); - $oMerger = new \App\Services\PDFMerger(); + $oMerger = new PDFMerger; $oMerger->init(); $oMerger->addPDF($ipath); @@ -75,61 +84,61 @@ class FileController extends Controller $oMerger->setFileName($filename); $oMerger->merge(); $file = $oMerger->output(); + return Response::make($file, 200) - ->header("Content-Type", 'application/pdf') + ->header('Content-Type', 'application/pdf') ->header('Content-disposition', 'attachment; filename="'.$filename.'"'); } - - if ($disk === 'credit'){ - $UserCredit = \App\Models\UserCredit::findOrFail($id); + + if ($disk === 'credit') { + $UserCredit = UserCredit::findOrFail($id); $this->isPermission($UserCredit->auth_user_id); - $filename = Credit::getFilename($UserCredit); + $filename = Credit::getFilename($UserCredit); $path = Credit::getDownloadPath($UserCredit); } - if (!Storage::disk('public')->exists($path)) { + if (! Storage::disk('public')->exists($path)) { return Response::make('File no found.', 404); } $file = Storage::disk('public')->get($path); $mime = Storage::disk('public')->mimeType($path); - if($do === 'download'){ + if ($do === 'download') { return Response::make($file, 200) - ->header("Content-Type", $mime) + ->header('Content-Type', $mime) ->header('Content-disposition', 'attachment; filename="'.$filename.'"'); - /* $full_path = Invoice::getDownloadPath($shopping_order, true); - $he - if (file_exists($full_path)) { - return Response::download($full_path, $filename); - }*/ + /* $full_path = Invoice::getDownloadPath($shopping_order, true); + $he + if (file_exists($full_path)) { + return Response::download($full_path, $filename); + }*/ } - if($do === 'stream'){ + if ($do === 'stream') { return Response::make($file, 200) - ->header("Content-Type", $mime) - ->header('Content-disposition','filename="'.$filename.'"'); - } - - if($do === 'file'){ - return Response::make($file, 200) - ->header("Content-Type", $mime) + ->header('Content-Type', $mime) ->header('Content-disposition', 'filename="'.$filename.'"'); } - if($do === 'image'){ - return Response::make($file, 200) - ->header("Content-Type", $mime); - } - if($do === 'pdf'){ - $path = storage_path().'/app/public/' . $path; - $headers = array( - 'Content-Type:'. $mime, - // 'Content-Length: ' . $file->size - // 'Content-Disposition: ' . $stream . '; filename=' . $file->original_name - ); - return Response::download($path, $filename, $headers); - } + if ($do === 'file') { + return Response::make($file, 200) + ->header('Content-Type', $mime) + ->header('Content-disposition', 'filename="'.$filename.'"'); + } + if ($do === 'image') { + return Response::make($file, 200) + ->header('Content-Type', $mime); + } + if ($do === 'pdf') { + $path = storage_path().'/app/public/'.$path; + $headers = [ + 'Content-Type:'.$mime, + // 'Content-Length: ' . $file->size + // 'Content-Disposition: ' . $stream . '; filename=' . $file->original_name + ]; + + return Response::download($path, $filename, $headers); + } } - -} \ No newline at end of file +} diff --git a/app/Http/Controllers/IngredientController.php b/app/Http/Controllers/IngredientController.php index 4be7881..71db4bb 100755 --- a/app/Http/Controllers/IngredientController.php +++ b/app/Http/Controllers/IngredientController.php @@ -2,18 +2,12 @@ namespace App\Http\Controllers; -use App\Models\Category; use App\Models\Ingredient; -use App\Models\IqImage; -use App\Models\ProductCategory; use App\Models\ProductIngredient; use Request; - class IngredientController extends Controller { - - public function __construct() { $this->middleware('copyreader'); @@ -25,22 +19,24 @@ class IngredientController extends Controller $data = [ 'values' => Ingredient::all(), ]; + return view('admin.ingredient.index', $data); } public function edit($id) { - if($id === "new"){ - $model = new Ingredient(); + if ($id === 'new') { + $model = new Ingredient; $model->active = true; - }else{ + } else { $model = Ingredient::findOrFail($id); } $data = [ 'model' => $model, - //'trans' => array_keys(config('localization.supportedLocales')), + // 'trans' => array_keys(config('localization.supportedLocales')), ]; + return view('admin.ingredient.edit', $data); } @@ -49,30 +45,42 @@ class IngredientController extends Controller $data = Request::all(); $data['active'] = isset($data['active']) ? true : false; - if($data['id'] === "new"){ + if (isset($data['default_factor']) && $data['default_factor'] !== '') { + $data['default_factor'] = reFormatNumber($data['default_factor']) ?: 1.10; + } + if (isset($data['min_stock_alert']) && $data['min_stock_alert'] === '') { + $data['min_stock_alert'] = null; + } elseif (isset($data['min_stock_alert']) && $data['min_stock_alert'] !== null) { + $data['min_stock_alert'] = reFormatNumber($data['min_stock_alert']); + } + if (empty($data['material_quality_id'])) { + $data['material_quality_id'] = null; + } + if ($data['id'] === 'new') { $model = Ingredient::create($data); - }else{ + } else { $model = Ingredient::find($data['id']); $model->fill($data)->save(); } \Session()->flash('alert-save', '1'); - return redirect(route('admin_product_ingredients')); + return redirect(route('admin_product_ingredients')); } - public function delete($id){ + public function delete($id) + { - if(ProductIngredient::where('ingredient_id', $id)->count()) { + if (ProductIngredient::where('ingredient_id', $id)->count()) { \Session()->flash('alert-error', 'Eintrag wird als Produkt-Inhaltsstoff verwendet'); + return redirect(route('admin_product_ingredients')); } $model = Ingredient::findOrFail($id); $model->delete(); \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_ingredients')); } - - -} \ No newline at end of file +} diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php index 7386bd4..9f9fdcb 100755 --- a/app/Http/Controllers/ProductController.php +++ b/app/Http/Controllers/ProductController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers; use App\Models\Country; +use App\Models\Ingredient; +use App\Models\PackagingItem; use App\Models\Product; use App\Models\ProductImage; use App\Models\ProductIngredient; @@ -10,8 +12,6 @@ use App\Repositories\ProductRepository; use Request; use Validator; - - class ProductController extends Controller { protected $productRepo; @@ -24,35 +24,40 @@ class ProductController extends Controller public function index() { - if(Request::get('show_active_products')){ + if (Request::get('show_active_products')) { set_user_attr('show_active_products', Request::get('show_active_products')); } - if(get_user_attr('show_active_products') === "true"){ + if (get_user_attr('show_active_products') === 'true') { $values = Product::where('active', true)->orderBy('pos', 'DESC')->orderBy('id', 'DESC')->get(); - }else{ + } else { $values = Product::orderBy('pos', 'DESC')->orderBy('id', 'DESC')->get(); } $data = [ - 'values' => $values + 'values' => $values, ]; + return view('admin.product.index', $data); } public function edit($id) { - if($id === "new"){ - $model = new Product(); + if ($id === 'new') { + $model = new Product; $model->active = true; - }else{ + } else { $model = Product::findOrFail($id); + $model->load(['packagings.packagingMaterial']); } $country_for_prices = Country::where('own_eur', '=', true)->orWhere('currency', '=', true)->get(); $data = [ 'product' => $model, 'country_for_prices' => $country_for_prices, + 'ingredient_catalog' => Ingredient::query()->where('active', true)->with('materialQuality')->orderBy('name')->get(['id', 'name', 'inci', 'effect', 'default_factor', 'material_quality_id']), + 'packaging_catalog' => PackagingItem::query()->where('active', true)->with('packagingMaterial')->orderBy('name')->get(), ]; + return view('admin.product.edit', $data); } @@ -61,34 +66,36 @@ class ProductController extends Controller $data = Request::all(); - $rules = array( + $rules = [ 'name' => 'required', - ); + ]; /*if(isset($data['number']) && $data['number'] != ""){ $rules['number'] = 'int'; }*/ - if(isset($data['wp_number'])){ - if($data['id'] !== "new"){ + if (isset($data['wp_number'])) { + if ($data['id'] !== 'new') { $model = Product::findOrFail($data['id']); $rules['wp_number'] = 'unique:products,wp_number,'.$model->id; - }else{ + } else { $rules['wp_number'] = 'unique:products,wp_number'; } } $validator = Validator::make(Request::all(), $rules); - if($data['id'] === "new"){ - $model = new Product(); - }else{ + if ($data['id'] === 'new') { + $model = new Product; + } else { $model = Product::findOrFail($data['id']); + $model->load(['packagings.packagingMaterial']); } $country_for_prices = Country::where('own_eur', '=', true)->orWhere('currency', '=', true)->get(); $data = [ 'product' => $model, 'country_for_prices' => $country_for_prices, - + 'ingredient_catalog' => Ingredient::query()->where('active', true)->with('materialQuality')->orderBy('name')->get(['id', 'name', 'inci', 'effect', 'default_factor', 'material_quality_id']), + 'packaging_catalog' => PackagingItem::query()->where('active', true)->with('packagingMaterial')->orderBy('name')->get(), ]; if ($validator->fails()) { @@ -98,34 +105,41 @@ class ProductController extends Controller } else { $product = $this->productRepo->update(Request::all()); \Session()->flash('alert-save', true); + return redirect(route('admin_product_edit', [$product->id])); } \Session()->flash('alert-save', '1'); + return redirect(route('admin_product_show')); } - public function copy($id){ + public function copy($id) + { $model = Product::findOrFail($id); $product = $this->productRepo->copy($model); \Session()->flash('alert-success', 'Eintrag kopiert'); + return redirect(route('admin_product_show')); } - public function delete($id, $do = 'product', $did = null){ - if($do === 'product'){ + public function delete($id, $do = 'product', $did = null) + { + if ($do === 'product') { $model = Product::findOrFail($id); $model->delete(); \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_show')); } - if($do === 'ingredient'){ + if ($do === 'ingredient') { $model = Product::findOrFail($id); $ProductIngredient = ProductIngredient::where('ingredient_id', $did)->where('product_id', $model->id)->first(); - if($ProductIngredient){ + if ($ProductIngredient) { $ProductIngredient->delete(); \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_edit', [$model->id])); } @@ -134,24 +148,29 @@ class ProductController extends Controller } // Upload FILE ----------------------------------------------------------------------------------------------------------------------- - public function imageUpload(){ + public function imageUpload() + { - if(Request::has('product_id')){ + if (Request::has('product_id')) { $product = Product::findOrFail(Request::get('product_id')); + return \App\Services\ProductImage::imageUpload('product', $product, Request::get('upload_type')); } - + } - public function imageDelete($product_image_id, $product_id){ + public function imageDelete($product_image_id, $product_id) + { $product = Product::findOrFail($product_id); + return \App\Services\ProductImage::imageDelete('product', $product, $product_image_id); } - public function imageAttribute($product_id, $attr, $val = false){ + public function imageAttribute($product_id, $attr, $val = false) + { - if(is_numeric($val) && $val < 0){ + if (is_numeric($val) && $val < 0) { $val = 0; } @@ -160,9 +179,9 @@ class ProductController extends Controller $product_image->{$attr} = $val; $product_image->save(); - \Session()->flash('alert-success', "Wert gespeichert"); + \Session()->flash('alert-success', 'Wert gespeichert'); + return redirect()->back(); } - -} \ No newline at end of file +} diff --git a/app/Http/Controllers/SalesController.php b/app/Http/Controllers/SalesController.php index a94a99a..3131151 100755 --- a/app/Http/Controllers/SalesController.php +++ b/app/Http/Controllers/SalesController.php @@ -2,46 +2,48 @@ namespace App\Http\Controllers; -use Request; use App\Models\Setting; -use App\Services\Payment; -use App\Models\ShoppingUser; use App\Models\ShoppingOrder; -use App\Models\UserPayCredit; -use App\Models\ShoppingPayment; -use App\Models\PaymentTransaction; -use App\Services\CustomerPriority; +use App\Models\ShoppingUser; use App\Repositories\InvoiceRepository; +use App\Services\CustomerPriority; +use App\Services\Invoice; +use App\Services\Payment; use App\Services\PaymentService; +use Request; class SalesController extends Controller { - - public function __construct(){ + public function __construct() + { $this->middleware('admin'); } - public function index(){ + public function index() + { - if(Request::get('reset') === 'filter'){ + if (Request::get('reset') === 'filter') { set_user_attr('filter_txaction', null); set_user_attr('filter_member_id', null); set_user_attr('filter_art', null); set_user_attr('filter_shipped', null); + return redirect(route('admin_sales')); } - //set Filter! + // set Filter! $filter_members = ShoppingOrder::join('users', 'member_id', '=', 'users.id')->groupBy('member_id')->join('user_accounts', 'account_id', '=', 'user_accounts.id')->select('users.id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')->get(); $data = [ 'filter_members' => $filter_members, ]; + return view('admin.sales.index', $data); } - public function detail($id){ + public function detail($id) + { $ShoppingOrder = ShoppingOrder::find($id); - if($ShoppingOrder->shipped == 0){ + if ($ShoppingOrder->shipped == 0) { $ShoppingOrder->shipped = 1; $ShoppingOrder->save(); } @@ -54,37 +56,42 @@ class SalesController extends Controller return view('admin.sales.detail', $data); } - public function detailStore($id){ + public function detailStore($id) + { $data = Request::all(); $change_member_error = false; - if($data['action']==='shopping-order-change-member'){ - if(!isset($data['change_member_key']) || $data['change_member_key'] !== config('main.edit_data_pass')){ - $change_member_error = "Das Passwort ist falsch."; - }else{ - //change + if ($data['action'] === 'shopping-order-change-member') { + if (! isset($data['change_member_key']) || $data['change_member_key'] !== config('main.edit_data_pass')) { + $change_member_error = 'Das Passwort ist falsch.'; + } else { + // change $shopping_order = ShoppingOrder::findOrFail($data['id']); CustomerPriority::newMemberForOrder($shopping_order, $data['change_member_id'], $data['customer_set_member_for']); \Session()->flash('alert-save', true); + return redirect(route('admin_sales_detail', [$shopping_order->id])); } } - if($data['action']==='shopping-user-is-like-member'){ - if(!isset($data['change_member_key']) || $data['change_member_key'] !== config('main.edit_data_pass')){ - \Session()->flash('alert-error', 'Das Passwort ist falsch.'); - return redirect($data['back']); - }else{ - if(!isset($data['is_like_shopping_user_id'])){ + if ($data['action'] === 'shopping-user-is-like-member') { + if (! isset($data['change_member_key']) || $data['change_member_key'] !== config('main.edit_data_pass')) { + \Session()->flash('alert-error', 'Das Passwort ist falsch.'); + + return redirect($data['back']); + } else { + if (! isset($data['is_like_shopping_user_id'])) { \Session()->flash('alert-error', 'Keine Änderung ausgewählt'); + return redirect($data['back']); } $shopping_user = ShoppingUser::findOrFail($data['id']); $set_like_shopping_user = ShoppingUser::findOrFail($data['is_like_shopping_user_id']); $send_member_mail = isset($data['send_member_mail']) ? true : false; $change_shopping_user = isset($data['change_shopping_user']) ? true : false; - //Mail send in setIsLike + // Mail send in setIsLike CustomerPriority::setIsLike($shopping_user, $set_like_shopping_user, $send_member_mail, $change_shopping_user); \Session()->flash('alert-save', true); + return redirect($data['back']); } } @@ -95,54 +102,57 @@ class SalesController extends Controller 'isAdmin' => true, 'isView' => $ShoppingOrder->auth_user_id ? 'sales_user' : 'sales_customer', ]; + return view('admin.sales.detail', $data); } - public function datatable(){ + public function datatable() + { $query = ShoppingOrder::with('shopping_user', 'shopping_payments')->select('shopping_orders.*'); set_user_attr('filter_txaction', Request::get('filter_txaction')); - if(Request::get('filter_txaction') != ""){ - if(Request::get('filter_txaction') === 'NULL'){ - $query->where('txaction', '=', NULL); + if (Request::get('filter_txaction') != '') { + if (Request::get('filter_txaction') === 'NULL') { + $query->where('txaction', '=', null); - }else{ + } else { $query->where('txaction', '=', Request::get('filter_txaction')); } } set_user_attr('filter_member_id', Request::get('filter_member_id')); - if(Request::get('filter_member_id') != ""){ + if (Request::get('filter_member_id') != '') { $query->where('member_id', '=', Request::get('filter_member_id')); } - + set_user_attr('filter_art', Request::get('filter_art')); - if(Request::get('filter_art') != ""){ - if(Request::get('filter_art') === 'user_order'){ - $query->where('shopping_orders.auth_user_id', '!=', NULL)->where('payment_for', '!=', 6); - }elseif(Request::get('filter_art') === 'customer_order'){ - $query->where('shopping_orders.auth_user_id', NULL); - }elseif(Request::get('filter_art') === 'user_for_customer'){ - $query->where('shopping_user_id', '!=', NULL)->where('payment_for', '=', 6); + if (Request::get('filter_art') != '') { + if (Request::get('filter_art') === 'user_order') { + $query->where('shopping_orders.auth_user_id', '!=', null)->where('payment_for', '!=', 6); + } elseif (Request::get('filter_art') === 'customer_order') { + $query->where('shopping_orders.auth_user_id', null); + } elseif (Request::get('filter_art') === 'user_for_customer') { + $query->where('shopping_user_id', '!=', null)->where('payment_for', '=', 6); } - // $query->where('payment_for', '=', Request::get('filter_art')); + // $query->where('payment_for', '=', Request::get('filter_art')); } set_user_attr('filter_shipped', Request::get('filter_shipped')); - if(Request::get('filter_shipped') != ""){ + if (Request::get('filter_shipped') != '') { $query->where('shipped', '=', Request::get('filter_shipped')); } + return \DataTables::eloquent($query) ->addColumn('id', function (ShoppingOrder $ShoppingOrder) { - return ''; + return ''; }) ->addColumn('created_at', function (ShoppingOrder $ShoppingOrder) { - return $ShoppingOrder->created_at->format("d.m.Y"); + return $ShoppingOrder->created_at->format('d.m.Y'); }) ->addColumn('txaction', function (ShoppingOrder $ShoppingOrder) { return Payment::getShoppingOrderBadge($ShoppingOrder); }) ->addColumn('total_shipping', function (ShoppingOrder $ShoppingOrder) { - return $ShoppingOrder->getFormattedTotalShipping()." €"; + return $ShoppingOrder->getFormattedTotalShipping().' €'; }) ->addColumn('payment', function (ShoppingOrder $ShoppingOrder) { return $ShoppingOrder->getLastShoppingPayment('getPaymentType'); @@ -157,10 +167,10 @@ class SalesController extends Controller return $ShoppingOrder->getLastShoppingPayment('reference'); }) ->addColumn('member_id', function (ShoppingOrder $ShoppingOrder) { - if($ShoppingOrder->member_id) { - return $ShoppingOrder->member_id ? '' . $ShoppingOrder->member->getFullName() . '' : ''; + if ($ShoppingOrder->member_id) { + return $ShoppingOrder->member_id ? ''.$ShoppingOrder->member->getFullName().'' : ''; } - if($ShoppingOrder->shopping_user && $ShoppingOrder->shopping_user->is_like){ + if ($ShoppingOrder->shopping_user && $ShoppingOrder->shopping_user->is_like) { return ''; } + return ''; }) @@ -382,9 +393,9 @@ class SalesController extends Controller if($ShoppingOrder->shopping_user && $ShoppingOrder->shopping_user->is_like){ return ''; } return ''; @@ -400,34 +411,35 @@ class SalesController extends Controller ->make(true); }*/ - public function store(){ + public function store() + { $data = Request::all(); - if(!isset($data['id'])){ + if (! isset($data['id'])) { abort(404); } - if(isset($data['action'])){ - if($data['action'] === 'store_shipped' && isset($data['shipped'])){ + if (isset($data['action'])) { + if ($data['action'] === 'store_shipped' && isset($data['shipped'])) { $shopping_order = ShoppingOrder::findOrFail($data['id']); $shopping_order->shipped = $data['shipped']; $shopping_order->save(); - //handel Promotion Product and credit by storno + // handel Promotion Product and credit by storno Payment::handelUserPromotionOrder($shopping_order); Payment::handelUserShopOrder($shopping_order); - if($shopping_order->getAPIShippedType() === 'sent' || $shopping_order->getAPIShippedType() === 'close'){ - if(!$shopping_order->shipped_at){ + if ($shopping_order->getAPIShippedType() === 'sent' || $shopping_order->getAPIShippedType() === 'close') { + if (! $shopping_order->shipped_at) { $shopping_order->shipped_at = now(); $shopping_order->save(); - //is shipped set pending_to - if($shopping_order->shopping_order_margin){ - if($shopping_order->shopping_order_margin->hasPartnerCommission()){ - $days = Setting::getContentBySlug('pending_partner_commissions_in_days'); + // is shipped set pending_to + if ($shopping_order->shopping_order_margin) { + if ($shopping_order->shopping_order_margin->hasPartnerCommission()) { + $days = Setting::getContentBySlug('pending_partner_commissions_in_days'); $days = $days ? $days : 20; $partner_commission_pending_to = $shopping_order->shipped_at; $partner_commission_pending_to->addDays($days); $shopping_order->shopping_order_margin->partner_commission_pending_to = $partner_commission_pending_to; $shopping_order->shopping_order_margin->save(); - }else{ + } else { $days = Setting::getContentBySlug('pending_order_margins_in_days'); $days = $days ? $days : 20; $margin_pending_to = $shopping_order->shipped_at; @@ -437,25 +449,25 @@ class SalesController extends Controller } } } - }else{ + } else { $shopping_order->shipped_at = null; $shopping_order->save(); - if($shopping_order->shopping_order_margin){ - //zurücksetzen der pending_to + if ($shopping_order->shopping_order_margin) { + // zurücksetzen der pending_to $shopping_order->shopping_order_margin->partner_commission_pending_to = null; $shopping_order->shopping_order_margin->margin_pending_to = null; $shopping_order->shopping_order_margin->save(); } } - if($shopping_order->getAPIShippedType() === 'cancel'){ - if($shopping_order->shopping_order_margin){ + if ($shopping_order->getAPIShippedType() === 'cancel') { + if ($shopping_order->shopping_order_margin) { $shopping_order->shopping_order_margin->cancellation = true; $shopping_order->shopping_order_margin->partner_commission_pending_to = null; $shopping_order->shopping_order_margin->margin_pending_to = null; $shopping_order->shopping_order_margin->save(); } - }else{ - if($shopping_order->shopping_order_margin && $shopping_order->shopping_order_margin->cancellation){ + } else { + if ($shopping_order->shopping_order_margin && $shopping_order->shopping_order_margin->cancellation) { $shopping_order->shopping_order_margin->cancellation = false; $shopping_order->shopping_order_margin->partner_commission_pending_to = null; $shopping_order->shopping_order_margin->margin_pending_to = null; @@ -463,53 +475,94 @@ class SalesController extends Controller } } - } - - + /* txaction ändern änderung der txaction von der Bestellung, Status Zahlung, offen, bezahlt, keine zahlung */ - if($data['action'] === 'store_txaction' && isset($data['txaction']) && isset($data['payment_id'])){ + if ($data['action'] === 'store_txaction' && isset($data['txaction']) && isset($data['payment_id'])) { PaymentService::updateTransactionStatus($data['id'], $data['txaction'], $data['payment_id']); } } - if(isset($data['back'])){ + if (isset($data['back'])) { return redirect($data['back']); } + return back(); } - - public function invoice(){ + public function invoice() + { $data = Request::all(); - if(!isset($data['id'])){ + if (! isset($data['id'])) { abort(404); } - if(isset($data['action'])){ - if($data['action'] === 'create_invoice'){ + if (isset($data['action'])) { + if ($data['action'] === 'create_invoice') { $shopping_order = ShoppingOrder::findOrFail($data['id']); $invoice_repo = new InvoiceRepository($shopping_order); - if(\App\Services\Invoice::isInvoice($shopping_order)){ + if (Invoice::isInvoice($shopping_order)) { $user_invoice = $invoice_repo->update($data); - }else{ + } else { $user_invoice = $invoice_repo->create($data); } + return redirect(route('admin_sales_detail', [$shopping_order->id])); } } } - public function sendLogisticMail($id){ - $shopping_order = ShoppingOrder::findOrFail($id); - - if(\App\Services\Invoice::isInvoice($shopping_order)){ - \App\Services\Invoice::sendLogisticMail($shopping_order); - \Session()->flash('alert-success', "Rechnung / Lieferschein wurde an den Versand gesendet."); - }else{ - \Session()->flash('alert-error', "Keine Rechnung vorhanden."); + public function invoiceCancellation() + { + $data = Request::all(); + if (! isset($data['id'])) { + abort(404); } - return redirect(route('admin_sales_detail', [$shopping_order->id])); + if (isset($data['action'])) { + if ($data['action'] === 'create_cancellation_invoice') { + $shopping_order = ShoppingOrder::findOrFail($data['id']); + + // Prüfen ob bereits eine Rechnung existiert + if (! Invoice::isInvoice($shopping_order)) { + \Session()->flash('alert-error', 'Es existiert keine Rechnung, die storniert werden kann.'); + + return redirect(route('admin_sales_detail', [$shopping_order->id])); + } + + // Prüfen ob bereits eine Stornorechnung existiert + if (Invoice::isCancellationInvoice($shopping_order)) { + \Session()->flash('alert-error', 'Es existiert bereits eine Stornorechnung für diese Bestellung.'); + + return redirect(route('admin_sales_detail', [$shopping_order->id])); + } + + $invoice_repo = new InvoiceRepository($shopping_order); + $cancellation_invoice = $invoice_repo->createCancellation($data); + + if ($cancellation_invoice) { + \Session()->flash('alert-success', 'Stornorechnung wurde erfolgreich erstellt.'); + } else { + \Session()->flash('alert-error', 'Fehler beim Erstellen der Stornorechnung.'); + } + + return redirect(route('admin_sales_detail', [$shopping_order->id])); + } + } + + return redirect(route('admin_sales')); } -} \ No newline at end of file + public function sendLogisticMail($id) + { + $shopping_order = ShoppingOrder::findOrFail($id); + + if (Invoice::isInvoice($shopping_order)) { + Invoice::sendLogisticMail($shopping_order); + \Session()->flash('alert-success', 'Rechnung / Lieferschein wurde an den Versand gesendet.'); + } else { + \Session()->flash('alert-error', 'Keine Rechnung vorhanden.'); + } + + return redirect(route('admin_sales_detail', [$shopping_order->id])); + } +} diff --git a/app/Http/Requests/Inventory/ReceiveStockEntryRequest.php b/app/Http/Requests/Inventory/ReceiveStockEntryRequest.php new file mode 100644 index 0000000..bcde5fc --- /dev/null +++ b/app/Http/Requests/Inventory/ReceiveStockEntryRequest.php @@ -0,0 +1,34 @@ +> + */ + public function rules(): array + { + return [ + 'received_at' => ['required', 'date'], + 'received_quantity' => ['required', 'numeric', 'min:0.000001'], + 'batch_number' => ['nullable', 'string', 'max:100'], + 'best_before' => ['nullable', 'date'], + 'quality_id' => ['nullable', 'integer', 'exists:material_qualities,id'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'received_quantity' => reFormatNumber($this->input('received_quantity')), + ]); + } +} diff --git a/app/Http/Requests/Inventory/StoreLocationRequest.php b/app/Http/Requests/Inventory/StoreLocationRequest.php new file mode 100644 index 0000000..b717a9e --- /dev/null +++ b/app/Http/Requests/Inventory/StoreLocationRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'active' => ['sometimes', 'boolean'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'active' => $this->boolean('active'), + ]); + } +} diff --git a/app/Http/Requests/Inventory/StoreMaterialQualityRequest.php b/app/Http/Requests/Inventory/StoreMaterialQualityRequest.php new file mode 100644 index 0000000..dbe7fcd --- /dev/null +++ b/app/Http/Requests/Inventory/StoreMaterialQualityRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'pos' => ['nullable', 'integer', 'min:0', 'max:255'], + ]; + } + + protected function prepareForValidation(): void + { + if ($this->has('pos') && $this->input('pos') === '') { + $this->merge(['pos' => 0]); + } + } +} diff --git a/app/Http/Requests/Inventory/StorePackagingItemRequest.php b/app/Http/Requests/Inventory/StorePackagingItemRequest.php new file mode 100644 index 0000000..c82ac17 --- /dev/null +++ b/app/Http/Requests/Inventory/StorePackagingItemRequest.php @@ -0,0 +1,45 @@ +> + */ + public function rules(): array + { + return [ + 'packaging_material_id' => ['required', 'integer', 'exists:packaging_materials,id'], + 'supplier_id' => ['nullable', 'integer', 'exists:suppliers,id'], + 'name' => ['required', 'string', 'max:255'], + 'category' => ['required', Rule::in(['packaging', 'shipping', 'label', 'shipping_office'])], + 'weight_grams' => ['nullable', 'numeric', 'min:0'], + 'min_stock_alert' => ['nullable', 'integer', 'min:0'], + 'url' => ['nullable', 'url', 'max:500'], + 'product_id' => ['nullable', 'integer', 'exists:products,id'], + 'active' => ['sometimes', 'boolean'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'active' => $this->boolean('active'), + ]); + + foreach (['supplier_id', 'product_id', 'min_stock_alert'] as $key) { + if ($this->input($key) === '' || $this->input($key) === null) { + $this->merge([$key => null]); + } + } + } +} diff --git a/app/Http/Requests/Inventory/StorePackagingMaterialRequest.php b/app/Http/Requests/Inventory/StorePackagingMaterialRequest.php new file mode 100644 index 0000000..c7c32ad --- /dev/null +++ b/app/Http/Requests/Inventory/StorePackagingMaterialRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'pos' => ['nullable', 'integer', 'min:0', 'max:255'], + ]; + } + + protected function prepareForValidation(): void + { + if ($this->has('pos') && $this->input('pos') === '') { + $this->merge(['pos' => 0]); + } + } +} diff --git a/app/Http/Requests/Inventory/StoreProductionRequest.php b/app/Http/Requests/Inventory/StoreProductionRequest.php new file mode 100644 index 0000000..4ca4c65 --- /dev/null +++ b/app/Http/Requests/Inventory/StoreProductionRequest.php @@ -0,0 +1,54 @@ +> + */ + public function rules(): array + { + return [ + 'product_id' => ['required', 'integer', 'exists:products,id'], + 'location_id' => ['required', 'integer', 'exists:locations,id'], + 'produced_at' => ['required', 'date'], + 'quantity' => ['required', 'integer', 'min:1'], + 'notes' => ['nullable', 'string', 'max:2000'], + 'ingredient_lines' => ['required', 'array', 'min:1'], + 'ingredient_lines.*.ingredient_id' => ['required', 'integer', 'exists:ingredients,id'], + 'ingredient_lines.*.stock_entry_id' => ['required', 'integer', 'exists:stock_entries,id'], + 'ingredient_lines.*.quantity_used' => ['required', 'string'], + ]; + } + + /** + * @return array + */ + public function validatedPayload(): array + { + $data = $this->validated(); + + return [ + 'product_id' => (int) $data['product_id'], + 'location_id' => (int) $data['location_id'], + 'produced_at' => $data['produced_at'], + 'quantity' => (int) $data['quantity'], + 'notes' => $data['notes'] ?? null, + 'ingredient_lines' => array_map(function (array $line): array { + return [ + 'ingredient_id' => (int) $line['ingredient_id'], + 'stock_entry_id' => (int) $line['stock_entry_id'], + 'quantity_used' => $line['quantity_used'], + ]; + }, $data['ingredient_lines']), + ]; + } +} diff --git a/app/Http/Requests/Inventory/StoreStockEntryRequest.php b/app/Http/Requests/Inventory/StoreStockEntryRequest.php new file mode 100644 index 0000000..b1f8124 --- /dev/null +++ b/app/Http/Requests/Inventory/StoreStockEntryRequest.php @@ -0,0 +1,73 @@ +> + */ + public function rules(): array + { + return [ + 'entry_type' => ['required', Rule::in(['ingredient', 'packaging', 'label', 'shipping_office'])], + 'ingredient_id' => ['nullable', 'integer', 'exists:ingredients,id'], + 'packaging_item_id' => ['nullable', 'integer', 'exists:packaging_items,id'], + 'supplier_id' => ['required', 'integer', 'exists:suppliers,id'], + 'location_id' => ['required', 'integer', 'exists:locations,id'], + 'ordered_at' => ['required', 'date'], + 'ordered_quantity' => ['required', 'numeric', 'min:0.000001'], + 'price_per_kg' => ['nullable', 'numeric', 'min:0'], + 'price_total' => ['nullable', 'numeric', 'min:0'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'ordered_quantity' => reFormatNumber($this->input('ordered_quantity')), + 'price_per_kg' => $this->filled('price_per_kg') ? reFormatNumber($this->input('price_per_kg')) : null, + 'price_total' => $this->filled('price_total') ? reFormatNumber($this->input('price_total')) : null, + ]); + } + + public function withValidator(Validator $validator): void + { + $validator->after(function (Validator $validator): void { + $type = $this->input('entry_type'); + if ($type === 'ingredient') { + if (empty($this->input('ingredient_id'))) { + $validator->errors()->add('ingredient_id', __('Bitte einen Inhaltsstoff wählen.')); + } + } elseif (! empty($type)) { + if (empty($this->input('packaging_item_id'))) { + $validator->errors()->add('packaging_item_id', __('Bitte einen Verpackungsartikel wählen.')); + } + } + }); + } + + /** + * @return array + */ + public function validatedPayload(): array + { + $data = $this->validated(); + if (($data['entry_type'] ?? '') === 'ingredient') { + $data['packaging_item_id'] = null; + } else { + $data['ingredient_id'] = null; + } + + return $data; + } +} diff --git a/app/Http/Requests/Inventory/StoreSupplierCategoryRequest.php b/app/Http/Requests/Inventory/StoreSupplierCategoryRequest.php new file mode 100644 index 0000000..abdaf37 --- /dev/null +++ b/app/Http/Requests/Inventory/StoreSupplierCategoryRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'pos' => ['nullable', 'integer', 'min:0', 'max:255'], + ]; + } + + protected function prepareForValidation(): void + { + if ($this->has('pos') && $this->input('pos') === '') { + $this->merge(['pos' => 0]); + } + } +} diff --git a/app/Http/Requests/Inventory/StoreSupplierRequest.php b/app/Http/Requests/Inventory/StoreSupplierRequest.php new file mode 100644 index 0000000..c06d09b --- /dev/null +++ b/app/Http/Requests/Inventory/StoreSupplierRequest.php @@ -0,0 +1,39 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'url' => ['nullable', 'string', 'max:2048'], + 'contact_person' => ['nullable', 'string', 'max:255'], + 'email' => ['nullable', 'email', 'max:255'], + 'phone' => ['nullable', 'string', 'max:100'], + 'country_id' => ['required', 'integer', 'exists:countries,id'], + 'notes' => ['nullable', 'string'], + 'active' => ['sometimes', 'boolean'], + 'supplier_category_ids' => ['nullable', 'array'], + 'supplier_category_ids.*' => ['integer', 'exists:supplier_categories,id'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'active' => $this->boolean('active'), + ]); + } +} diff --git a/app/Http/Requests/Inventory/UpdateLocationRequest.php b/app/Http/Requests/Inventory/UpdateLocationRequest.php new file mode 100644 index 0000000..53bfaf8 --- /dev/null +++ b/app/Http/Requests/Inventory/UpdateLocationRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'active' => ['sometimes', 'boolean'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'active' => $this->boolean('active'), + ]); + } +} diff --git a/app/Http/Requests/Inventory/UpdateMaterialQualityRequest.php b/app/Http/Requests/Inventory/UpdateMaterialQualityRequest.php new file mode 100644 index 0000000..123e603 --- /dev/null +++ b/app/Http/Requests/Inventory/UpdateMaterialQualityRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'pos' => ['nullable', 'integer', 'min:0', 'max:255'], + ]; + } + + protected function prepareForValidation(): void + { + if ($this->has('pos') && $this->input('pos') === '') { + $this->merge(['pos' => 0]); + } + } +} diff --git a/app/Http/Requests/Inventory/UpdatePackagingItemRequest.php b/app/Http/Requests/Inventory/UpdatePackagingItemRequest.php new file mode 100644 index 0000000..e2ec17d --- /dev/null +++ b/app/Http/Requests/Inventory/UpdatePackagingItemRequest.php @@ -0,0 +1,45 @@ +> + */ + public function rules(): array + { + return [ + 'packaging_material_id' => ['required', 'integer', 'exists:packaging_materials,id'], + 'supplier_id' => ['nullable', 'integer', 'exists:suppliers,id'], + 'name' => ['required', 'string', 'max:255'], + 'category' => ['required', Rule::in(['packaging', 'shipping', 'label', 'shipping_office'])], + 'weight_grams' => ['nullable', 'numeric', 'min:0'], + 'min_stock_alert' => ['nullable', 'integer', 'min:0'], + 'url' => ['nullable', 'url', 'max:500'], + 'product_id' => ['nullable', 'integer', 'exists:products,id'], + 'active' => ['sometimes', 'boolean'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'active' => $this->boolean('active'), + ]); + + foreach (['supplier_id', 'product_id', 'min_stock_alert'] as $key) { + if ($this->input($key) === '' || $this->input($key) === null) { + $this->merge([$key => null]); + } + } + } +} diff --git a/app/Http/Requests/Inventory/UpdatePackagingMaterialRequest.php b/app/Http/Requests/Inventory/UpdatePackagingMaterialRequest.php new file mode 100644 index 0000000..2ede99a --- /dev/null +++ b/app/Http/Requests/Inventory/UpdatePackagingMaterialRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'pos' => ['nullable', 'integer', 'min:0', 'max:255'], + ]; + } + + protected function prepareForValidation(): void + { + if ($this->has('pos') && $this->input('pos') === '') { + $this->merge(['pos' => 0]); + } + } +} diff --git a/app/Http/Requests/Inventory/UpdateStockEntryRequest.php b/app/Http/Requests/Inventory/UpdateStockEntryRequest.php new file mode 100644 index 0000000..40c858f --- /dev/null +++ b/app/Http/Requests/Inventory/UpdateStockEntryRequest.php @@ -0,0 +1,73 @@ +> + */ + public function rules(): array + { + return [ + 'entry_type' => ['required', Rule::in(['ingredient', 'packaging', 'label', 'shipping_office'])], + 'ingredient_id' => ['nullable', 'integer', 'exists:ingredients,id'], + 'packaging_item_id' => ['nullable', 'integer', 'exists:packaging_items,id'], + 'supplier_id' => ['required', 'integer', 'exists:suppliers,id'], + 'location_id' => ['required', 'integer', 'exists:locations,id'], + 'ordered_at' => ['required', 'date'], + 'ordered_quantity' => ['required', 'numeric', 'min:0.000001'], + 'price_per_kg' => ['nullable', 'numeric', 'min:0'], + 'price_total' => ['nullable', 'numeric', 'min:0'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'ordered_quantity' => reFormatNumber($this->input('ordered_quantity')), + 'price_per_kg' => $this->filled('price_per_kg') ? reFormatNumber($this->input('price_per_kg')) : null, + 'price_total' => $this->filled('price_total') ? reFormatNumber($this->input('price_total')) : null, + ]); + } + + public function withValidator(Validator $validator): void + { + $validator->after(function (Validator $validator): void { + $type = $this->input('entry_type'); + if ($type === 'ingredient') { + if (empty($this->input('ingredient_id'))) { + $validator->errors()->add('ingredient_id', __('Bitte einen Inhaltsstoff wählen.')); + } + } elseif (! empty($type)) { + if (empty($this->input('packaging_item_id'))) { + $validator->errors()->add('packaging_item_id', __('Bitte einen Verpackungsartikel wählen.')); + } + } + }); + } + + /** + * @return array + */ + public function validatedPayload(): array + { + $data = $this->validated(); + if (($data['entry_type'] ?? '') === 'ingredient') { + $data['packaging_item_id'] = null; + } else { + $data['ingredient_id'] = null; + } + + return $data; + } +} diff --git a/app/Http/Requests/Inventory/UpdateSupplierCategoryRequest.php b/app/Http/Requests/Inventory/UpdateSupplierCategoryRequest.php new file mode 100644 index 0000000..b25ae50 --- /dev/null +++ b/app/Http/Requests/Inventory/UpdateSupplierCategoryRequest.php @@ -0,0 +1,31 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'pos' => ['nullable', 'integer', 'min:0', 'max:255'], + ]; + } + + protected function prepareForValidation(): void + { + if ($this->has('pos') && $this->input('pos') === '') { + $this->merge(['pos' => 0]); + } + } +} diff --git a/app/Http/Requests/Inventory/UpdateSupplierRequest.php b/app/Http/Requests/Inventory/UpdateSupplierRequest.php new file mode 100644 index 0000000..7a59e06 --- /dev/null +++ b/app/Http/Requests/Inventory/UpdateSupplierRequest.php @@ -0,0 +1,39 @@ +> + */ + public function rules(): array + { + return [ + 'name' => ['required', 'string', 'max:255'], + 'url' => ['nullable', 'string', 'max:2048'], + 'contact_person' => ['nullable', 'string', 'max:255'], + 'email' => ['nullable', 'email', 'max:255'], + 'phone' => ['nullable', 'string', 'max:100'], + 'country_id' => ['required', 'integer', 'exists:countries,id'], + 'notes' => ['nullable', 'string'], + 'active' => ['sometimes', 'boolean'], + 'supplier_category_ids' => ['nullable', 'array'], + 'supplier_category_ids.*' => ['integer', 'exists:supplier_categories,id'], + ]; + } + + protected function prepareForValidation(): void + { + $this->merge([ + 'active' => $this->boolean('active'), + ]); + } +} diff --git a/app/Mail/MailLogistic.php b/app/Mail/MailLogistic.php index 372f696..1ce07d6 100644 --- a/app/Mail/MailLogistic.php +++ b/app/Mail/MailLogistic.php @@ -1,14 +1,13 @@ shopping_order = $shopping_order; - $name = $shopping_order->shopping_user->billing_firstname . ' ' . $shopping_order->shopping_user->billing_lastname; + $name = $shopping_order->shopping_user->billing_firstname.' '.$shopping_order->shopping_user->billing_lastname; $company = $shopping_order->shopping_user->billing_company ?? ''; + $hasWhiteLabel = $shopping_order->user_white_label || $shopping_order->hasWhitelabelProducts(); + $this->subject = 'Partner'; - if($shopping_order->user_white_label){ - //Bei allen, die ein eigenes Logo haben + if ($hasWhiteLabel) { + // Bei allen, die ein eigenes Logo haben $this->subject .= ' (mit Logo)'; - }else{ - //Bei allen, die kein Tattoostudio sind + } else { + // Bei allen, die kein Tattoostudio sind $this->subject = ' - '; } - if($shopping_order->shopping_user->same_as_billing){ - //Rechnungsadresse und Lieferadresse sind gleich + if ($shopping_order->shopping_user->same_as_billing) { + // Rechnungsadresse und Lieferadresse sind gleich $this->subject = ''; - }else{ - //hat eine andere Lieferadresse + } else { + // hat eine andere Lieferadresse $this->subject = ' Lieferadresse'; } - $this->subject .= ' '.$company.' (' . $name . ')'; + $this->subject .= ' '.$company.' ('.$name.')'; } - + public function build() { - $title = false; + $title = false; $copy1line = false; - $filename = Invoice::getFilename($this->shopping_order); + $filename = Invoice::getFilename($this->shopping_order); $path = Invoice::getDownloadPath($this->shopping_order); - if (!Storage::disk('public')->exists($path)) { + if (! Storage::disk('public')->exists($path)) { return; } $file = Storage::disk('public')->path($path); $mime = Storage::disk('public')->mimeType($path); - $mail = $this->view('emails.logistic')->with([ 'title' => $title, - 'copy1line' => $copy1line, - ])->attach($file,[ + 'copy1line' => $copy1line, + ])->attach($file, [ 'as' => $filename, 'mime' => $mime, ]); - - //Wenn das Logo gesetzt ist und die Rechnungsadresse und Lieferadresse unterschiedlich sind, dann wird der Lieferschein angehängt - if($this->shopping_order->user_white_label && !$this->shopping_order->shopping_user->same_as_billing){ + + // Wenn mindestens ein White-Label-Produkt enthalten ist, wird der Lieferschein (Etikett-Infos) mit angehängt + $hasWhiteLabel = $this->shopping_order->user_white_label || $this->shopping_order->hasWhitelabelProducts(); + if ($hasWhiteLabel) { $filenameDelivery = Invoice::getDeliveryFilename($this->shopping_order); $pathDelivery = Invoice::getDownloadPathDelivery($this->shopping_order); - if (!Storage::disk('public')->exists($pathDelivery)) { + if (! Storage::disk('public')->exists($pathDelivery)) { return; } $fileDelivery = Storage::disk('public')->path($pathDelivery); $mimeDelivery = Storage::disk('public')->mimeType($pathDelivery); - $mail->attach($fileDelivery,[ + $mail->attach($fileDelivery, [ 'as' => $filenameDelivery, 'mime' => $mimeDelivery, ]); // attach file; @@ -84,4 +84,4 @@ class MailLogistic extends Mailable return $mail; } -} \ No newline at end of file +} diff --git a/app/Models/Ingredient.php b/app/Models/Ingredient.php index 2330fc8..aa870cd 100644 --- a/app/Models/Ingredient.php +++ b/app/Models/Ingredient.php @@ -9,6 +9,7 @@ namespace App\Models; use Carbon\Carbon; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\BelongsTo; /** * Class Ingredient @@ -25,10 +26,10 @@ use Illuminate\Database\Eloquent\Model; * @property Carbon $created_at * @property Carbon $updated_at * @property Collection|Product[] $products - * @package App\Models - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductIngredient[] $product_ingredients + * @property-read Collection|ProductIngredient[] $product_ingredients * @property-read int|null $product_ingredients_count * @property-read int|null $products_count + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient newQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient query() @@ -43,38 +44,52 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereTransInci($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereTransName($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Ingredient whereUpdatedAt($value) + * * @mixin \Eloquent */ class Ingredient extends Model { - protected $table = 'ingredients'; + protected $table = 'ingredients'; - protected $casts = [ - 'active' => 'bool', - 'pos' => 'int' - ]; + protected $casts = [ + 'active' => 'bool', + 'pos' => 'int', + 'default_factor' => 'decimal:2', + 'min_stock_alert' => 'decimal:2', + ]; - protected $fillable = [ - 'name', - 'trans_name', - 'inci', - 'trans_inci', - 'effect', - 'trans_effect', - 'active', - 'pos' - ]; + protected $fillable = [ + 'name', + 'trans_name', + 'inci', + 'trans_inci', + 'effect', + 'trans_effect', + 'active', + 'pos', + 'default_factor', + 'min_stock_alert', + 'material_quality_id', + ]; - public function products() - { - return $this->belongsToMany(Product::class, 'product_ingredients') - ->withPivot('id') - ->withTimestamps(); - } + /** + * @return BelongsTo + */ + public function materialQuality(): BelongsTo + { + return $this->belongsTo(MaterialQuality::class); + } + + public function products() + { + return $this->belongsToMany(Product::class, 'product_ingredients') + ->withPivot('id', 'pos', 'gram', 'factor') + ->withTimestamps() + ->orderByPivot('pos'); + } public function product_ingredients() { - return $this->hasMany(ProductIngredient::class, 'product_ingredients', 'id'); - + return $this->hasMany(ProductIngredient::class, 'ingredient_id'); } } diff --git a/app/Models/Location.php b/app/Models/Location.php new file mode 100644 index 0000000..ec85de4 --- /dev/null +++ b/app/Models/Location.php @@ -0,0 +1,28 @@ + */ + use HasFactory; + + protected $fillable = [ + 'name', + 'active', + ]; + + /** + * @return array + */ + protected function casts(): array + { + return [ + 'active' => 'boolean', + ]; + } +} diff --git a/app/Models/MaterialQuality.php b/app/Models/MaterialQuality.php new file mode 100644 index 0000000..81d6d5e --- /dev/null +++ b/app/Models/MaterialQuality.php @@ -0,0 +1,18 @@ + */ + use HasFactory; + + protected $fillable = [ + 'name', + 'pos', + ]; +} diff --git a/app/Models/PackagingItem.php b/app/Models/PackagingItem.php new file mode 100644 index 0000000..90e1e9e --- /dev/null +++ b/app/Models/PackagingItem.php @@ -0,0 +1,75 @@ + */ + use HasFactory, SoftDeletes; + + protected $fillable = [ + 'packaging_material_id', + 'supplier_id', + 'name', + 'category', + 'weight_grams', + 'min_stock_alert', + 'url', + 'product_id', + 'active', + ]; + + /** + * @return array + */ + protected function casts(): array + { + return [ + 'active' => 'boolean', + 'weight_grams' => 'decimal:2', + ]; + } + + /** + * @return BelongsTo + */ + public function packagingMaterial(): BelongsTo + { + return $this->belongsTo(PackagingMaterial::class); + } + + /** + * @return BelongsTo + */ + public function supplier(): BelongsTo + { + return $this->belongsTo(Supplier::class); + } + + /** + * @return BelongsTo + */ + public function product(): BelongsTo + { + return $this->belongsTo(Product::class); + } + + /** + * Produkte, die diesen Verpackungsartikel in der Stückliste führen (BOM). + * + * @return BelongsToMany + */ + public function products(): BelongsToMany + { + return $this->belongsToMany(Product::class, 'product_packagings') + ->withPivot('quantity', 'pos') + ->withTimestamps(); + } +} diff --git a/app/Models/PackagingMaterial.php b/app/Models/PackagingMaterial.php new file mode 100644 index 0000000..0544b73 --- /dev/null +++ b/app/Models/PackagingMaterial.php @@ -0,0 +1,27 @@ + */ + use HasFactory; + + protected $fillable = [ + 'name', + 'pos', + ]; + + /** + * @return HasMany + */ + public function packagingItems(): HasMany + { + return $this->hasMany(PackagingItem::class); + } +} diff --git a/app/Models/PaymentReminder.php b/app/Models/PaymentReminder.php index a8a0682..51ae774 100644 --- a/app/Models/PaymentReminder.php +++ b/app/Models/PaymentReminder.php @@ -11,7 +11,7 @@ use Illuminate\Database\Eloquent\Model; /** * Class PaymentReminder - * + * * @property int $id * @property string|null $title * @property int|null $interval @@ -20,38 +20,56 @@ use Illuminate\Database\Eloquent\Model; * @property bool $active * @property Carbon|null $created_at * @property Carbon|null $updated_at + * @property string|null $subject + * @property string|null $clearingtype * - * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder query() + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereAction($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereActive($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereClearingtype($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereInterval($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereSubject($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereTitle($value) + * @method static \Illuminate\Database\Eloquent\Builder|PaymentReminder whereUpdatedAt($value) + * + * @mixin \Eloquent */ class PaymentReminder extends Model { - protected $table = 'payment_reminders'; + protected $table = 'payment_reminders'; - protected $casts = [ - 'interval' => 'int', - 'active' => 'bool' - ]; + protected $casts = [ + 'interval' => 'int', + 'active' => 'bool', + ]; - protected $fillable = [ - 'title', - 'subject', - 'interval', - 'message', - 'action', - 'clearingtype', - 'active' - ]; + protected $fillable = [ + 'title', + 'subject', + 'interval', + 'message', + 'action', + 'clearingtype', + 'active', + ]; - protected static $clearingtypes = [ + protected static $clearingtypes = [ 'fnc' => 'Rechnung', 'vor' => 'Vorkasse', ]; - public function getClearingtype(){ - return isset(self::$clearingtypes[$this->clearingtype]) ? self::$clearingtypes[$this->clearingtype] : 'Kein Typ'; - } + public function getClearingtype() + { + return isset(self::$clearingtypes[$this->clearingtype]) ? self::$clearingtypes[$this->clearingtype] : 'Kein Typ'; + } - public static function returnClearingtypes(){ - return self::$clearingtypes; - } + public static function returnClearingtypes() + { + return self::$clearingtypes; + } } diff --git a/app/Models/Product.php b/app/Models/Product.php index 05cee86..e45401b 100644 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -5,8 +5,12 @@ namespace App\Models; use App\Services\Type; use App\Services\Util; use Cviebrock\EloquentSluggable\Sluggable; +use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\BelongsToMany; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Support\Carbon; /** * App\Models\Product @@ -34,13 +38,14 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property int|null $pos * @property int $active * @property int|null $amount - * @property \Illuminate\Support\Carbon|null $created_at - * @property \Illuminate\Support\Carbon|null $updated_at - * @property \Illuminate\Support\Carbon|null $deleted_at - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductAttribute[] $attributes - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductCategory[] $categories - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductImage[] $images + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Carbon|null $deleted_at + * @property-read Collection|ProductAttribute[] $attributes + * @property-read Collection|ProductCategory[] $categories + * @property-read Collection|ProductImage[] $images * @property-write mixed $price_vk + * * @method static bool|null forceDelete() * @method static \Illuminate\Database\Query\Builder|\App\Models\Product onlyTrashed() * @method static bool|null restore() @@ -72,78 +77,102 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereUsage($value) * @method static \Illuminate\Database\Query\Builder|\App\Models\Product withTrashed() * @method static \Illuminate\Database\Query\Builder|\App\Models\Product withoutTrashed() + * * @property string|null $slug + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product findSimilarSlugs($attribute, $config, $slug) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereSlug($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product newQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product query() + * * @property int|null $weight * @property int|null $show_at * @property array|null $action * @property-read int|null $attributes_count * @property-read int|null $categories_count * @property-read int|null $images_count + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereAction($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereShowAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereWeight($value) + * * @property int|null $points - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductImage[] $imagesActive + * @property-read Collection|ProductImage[] $imagesActive * @property-read int|null $images_active_count + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product wherePoints($value) + * * @property string|null $identifier + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereIdentifier($value) + * * @property int|null $upgrade_to_id + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereUpgradeToId($value) + * * @property int|null $contents_total * @property int|null $unit + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereContentsTotal($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereUnit($value) - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\CountryPrice[] $country_prices + * + * @property-read Collection|CountryPrice[] $country_prices * @property-read int|null $country_prices_count * @property int|null $wp_number + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereWpNumber($value) + * * @property bool|null $single_commission + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Product whereShippingAddon($value) + * * @property-read int|null $ingredients_count - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductIngredient[] $product_ingredients + * @property-read Collection|ProductIngredient[] $product_ingredients * @property-read int|null $product_ingredients_count - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Ingredient[] $p_ingredients + * @property-read Collection|Ingredient[] $p_ingredients * @property-read int|null $p_ingredients_count * @property bool $amount_commission * @property string|null $value_commission * @property string|null $partner_commission + * * @method static \Illuminate\Database\Eloquent\Builder|Product whereAmountCommission($value) * @method static \Illuminate\Database\Eloquent\Builder|Product wherePartnerCommission($value) * @method static \Illuminate\Database\Eloquent\Builder|Product whereSingleCommission($value) * @method static \Illuminate\Database\Eloquent\Builder|Product whereValueCommission($value) + * * @property bool|null $shipping_addon * @property bool|null $max_buy * @property int|null $max_buy_num - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProductBuy[] $product_buys + * @property-read Collection|ProductBuy[] $product_buys * @property-read int|null $product_buys_count + * * @method static \Illuminate\Database\Eloquent\Builder|Product whereMaxBuy($value) * @method static \Illuminate\Database\Eloquent\Builder|Product whereMaxBuyNum($value) * @method static \Illuminate\Database\Eloquent\Builder|Product withUniqueSlugConstraints(\Illuminate\Database\Eloquent\Model $model, string $attribute, array $config, string $slug) + * * @property string|null $short_copy * @property array|null $show_on + * * @method static \Illuminate\Database\Eloquent\Builder|Product whereShortCopy($value) * @method static \Illuminate\Database\Eloquent\Builder|Product whereShowOn($value) + * * @property bool $exclude_stats_sales * @property bool|null $whitelabel * @property string|null $whitelabel_name - * @property-read \Illuminate\Database\Eloquent\Collection $attribute_variants + * @property-read Collection $attribute_variants * @property-read int|null $attribute_variants_count - * @property-read \Illuminate\Database\Eloquent\Collection $whitelabel_images + * @property-read Collection $whitelabel_images * @property-read int|null $whitelabel_images_count + * * @method static \Illuminate\Database\Eloquent\Builder|Product whereExcludeStatsSales($value) * @method static \Illuminate\Database\Eloquent\Builder|Product whereWhitelabel($value) * @method static \Illuminate\Database\Eloquent\Builder|Product whereWhitelabelName($value) + * * @mixin \Eloquent */ class Product extends Model { - /*identifiers show_upgrade # in membership payment can upgrade this package to show order show_order # in membership payment show always @@ -172,8 +201,8 @@ class Product extends Model 'max_buy_num' => 'int', 'whitelabel' => 'bool', ]; - use Sluggable; + use Sluggable; use SoftDeletes; protected $dates = ['deleted_at']; @@ -215,7 +244,9 @@ class Product extends Model 'upgrade_to_id', 'shipping_addon', 'max_buy', - 'max_buy_num' + 'max_buy_num', + 'shelf_life_type', + 'shelf_life_months', ]; @@ -225,8 +256,9 @@ class Product extends Model 'show_order' => 'Wird immer als Option angezeigt', 'upgrade' => 'Produktupgrade zur Produkt ID', 'upgrade_member' => 'Vertriebspartnerupgrade zur Karriere ID', - //'proportional_voucher' => 'Anteiliger Gutschein Vertriebspartner', + // 'proportional_voucher' => 'Anteiliger Gutschein Vertriebspartner', ]; + public $unitTypes = [ 0 => '', 1 => 'ml', @@ -238,9 +270,9 @@ class Product extends Model public $actions = [ 0 => 'payment_for_account', 1 => 'charging_credits', - // 1 => 'payment_for_shop', - // 2 => 'payment_for_shop_upgrade', - // 4 => 'payment_for_lead_upgrade', + // 1 => 'payment_for_shop', + // 2 => 'payment_for_shop_upgrade', + // 4 => 'payment_for_lead_upgrade', ]; @@ -248,34 +280,39 @@ class Product extends Model { return [ 'slug' => [ - 'source' => 'name' - ] + 'source' => 'name', + ], ]; } - public function attributes(){ - return $this->hasMany(ProductAttribute::class, 'product_id', 'id')->where('type_id','!=', 1); + public function attributes() + { + return $this->hasMany(ProductAttribute::class, 'product_id', 'id')->where('type_id', '!=', 1); } - public function attribute_variants(){ - return $this->hasMany(ProductAttribute::class, 'product_id', 'id')->where('type_id','=', 1); + public function attribute_variants() + { + return $this->hasMany(ProductAttribute::class, 'product_id', 'id')->where('type_id', '=', 1); } - - public function categories(){ + public function categories() + { return $this->hasMany('App\Models\ProductCategory', 'product_id', 'id'); } - public function images(){ - return $this->hasMany(ProductImage::class, 'product_id', 'id')->where('type','=', 'product')->orderBy('pos'); + public function images() + { + return $this->hasMany(ProductImage::class, 'product_id', 'id')->where('type', '=', 'product')->orderBy('pos'); } - public function imagesActive(){ - return $this->hasMany(ProductImage::class, 'product_id', 'id')->where('type','=', 'product')->where('active', true)->orderBy('pos'); + public function imagesActive() + { + return $this->hasMany(ProductImage::class, 'product_id', 'id')->where('type', '=', 'product')->where('active', true)->orderBy('pos'); } - public function whitelabel_images(){ - return $this->hasMany(ProductImage::class, 'product_id', 'id')->where('type','=', 'wllogo')->orderBy('pos'); + public function whitelabel_images() + { + return $this->hasMany(ProductImage::class, 'product_id', 'id')->where('type', '=', 'wllogo')->orderBy('pos'); } public function country_prices() @@ -291,81 +328,130 @@ class Product extends Model public function p_ingredients() { return $this->belongsToMany(Ingredient::class, 'product_ingredients') - ->withPivot('id') - ->withTimestamps(); + ->withPivot('id', 'pos', 'gram', 'factor', 'recipe_type') + ->withTimestamps() + ->wherePivot('recipe_type', 'product') + ->orderByPivot('pos'); + } + + public function manufacturer_ingredients() + { + return $this->belongsToMany(Ingredient::class, 'product_ingredients') + ->withPivot('id', 'pos', 'gram', 'factor', 'recipe_type') + ->withTimestamps() + ->wherePivot('recipe_type', 'manufacturer') + ->orderByPivot('pos'); } public function product_ingredients() { - return $this->hasMany(ProductIngredient::class, 'product_ingredients', 'id'); + return $this->hasMany(ProductIngredient::class, 'product_id'); } - public function getShortCopy($clean = false, $len = false){ + /** + * Verpackungs-Stückliste (BOM) am Produkt mit Menge und Reihenfolge. + * + * @return BelongsToMany + */ + public function packagings() + { + return $this->belongsToMany(PackagingItem::class, 'product_packagings') + ->withPivot('quantity', 'pos') + ->withTimestamps() + ->orderByPivot('pos'); + } + + /** + * @return HasMany + */ + public function productions(): HasMany + { + return $this->hasMany(Production::class); + } + + public function getShortCopy($clean = false, $len = false) + { $ret = $this->short_copy ? $this->short_copy : $this->description; - if($len && $clean){ + if ($len && $clean) { return substr_ellipsis($ret, $len, $clean); } + return $ret; } - public function getActionName($id = 0){ - if(isset($this->actions[$id])){ + + public function getActionName($id = 0) + { + if (isset($this->actions[$id])) { return $this->actions[$id]; } + return false; } - public function getWhiteLableName($id = 0){ + public function getWhiteLableName($id = 0) + { return $this->whitelabel_name ? $this->whitelabel_name : $this->name; } - - public function _format_number($value){ - return preg_replace("/[^0-9,]/", "", $value); + + public function _format_number($value) + { + return preg_replace('/[^0-9,]/', '', $value); } - public function setPriceAttribute( $value ) { + public function setPriceAttribute($value) + { $this->attributes['price'] = $value ? Util::reFormatNumber($value) : null; } - public function setPriceEkAttribute( $value ) { + + public function setPriceEkAttribute($value) + { $this->attributes['price_ek'] = $value ? Util::reFormatNumber($value) : null; } - public function setTaxAttribute( $value ) { - $this->attributes['tax'] = $value != "" ? Util::reFormatNumber($value) : null; + public function setTaxAttribute($value) + { + + $this->attributes['tax'] = $value != '' ? Util::reFormatNumber($value) : null; } - public function setPriceOldAttribute( $value ) { + + public function setPriceOldAttribute($value) + { $this->attributes['price_old'] = $value ? Util::reFormatNumber($value) : null; } - public function setValueCommissionAttribute( $value ) { + public function setValueCommissionAttribute($value) + { $this->attributes['value_commission'] = $value ? Util::reFormatNumber($value) : 0; } - public function setPartnerCommissionAttribute( $value ) { + public function setPartnerCommissionAttribute($value) + { $this->attributes['partner_commission'] = $value ? Util::reFormatNumber($value) : 0; } public function getFormattedPrice() { - return isset($this->attributes['price']) ? Util::formatNumber($this->attributes['price']) : ""; + return isset($this->attributes['price']) ? Util::formatNumber($this->attributes['price']) : ''; } public function getFormattedPriceEk() { - return isset($this->attributes['price_ek']) ? Util::formatNumber($this->attributes['price_ek']) : ""; + return isset($this->attributes['price_ek']) ? Util::formatNumber($this->attributes['price_ek']) : ''; } public function getFormattedTax($country = null) { - return isset($this->attributes['tax']) ? Util::formatNumber($this->getTaxWith($country), 0) : ""; + return isset($this->attributes['tax']) ? Util::formatNumber($this->getTaxWith($country), 0) : ''; } public function getFormattedPriceOld() { - return isset($this->attributes['price_old']) ? Util::formatNumber($this->attributes['price_old']) : ""; + return isset($this->attributes['price_old']) ? Util::formatNumber($this->attributes['price_old']) : ''; } + public function getFormattedValueCommission() { return isset($this->attributes['value_commission']) ? Util::formatNumber($this->attributes['value_commission']) : 0; @@ -376,9 +462,9 @@ class Product extends Model return isset($this->attributes['partner_commission']) ? Util::formatNumber($this->attributes['partner_commission']) : 0; } - - /*price by user Factor*/ - private function calcPriceUserFactor($price){ + /* price by user Factor */ + private function calcPriceUserFactor($price) + { /* Nicht in benutzung, die margin errechnet sich im Warenkorb, wegen der Staffelprovision if(\Auth::user() && \Auth::user()->user_level){ @@ -388,98 +474,116 @@ class Product extends Model */ return $price; } - /*price net*/ - private function calcPriceNet($price, $country=null){ + + /* price net */ + private function calcPriceNet($price, $country = null) + { $tax = $this->getTaxWith($country); - $tax_rate = ($tax + 100) / 100; + $tax_rate = ($tax + 100) / 100; + return $price / $tax_rate; } - //price calu with - public function getPriceWith(Bool $net = true, Bool $ufactor = true, $country = null, $commission=false){ + // price calu with + public function getPriceWith(bool $net = true, bool $ufactor = true, $country = null, $commission = false) + { $price = isset($this->attributes['price']) ? $this->attributes['price'] : null; - + /*$cprice = $country ? $this->getCPrice($country) : null; //eigener Preis für Land $price = $cprice ? $cprice : $price; */ $price = $net ? $this->calcPriceNet($price, $country) : $price; $price = $ufactor ? $this->calcPriceUserFactor($price) : $price; $price = $commission ? $this->calcPriceUserCommission($price) : $price; + return round($price, 2); } - /*out*/ - public function getFormattedPriceWith(Bool $net = true, Bool $ufactor = true) + /* out */ + public function getFormattedPriceWith(bool $net = true, bool $ufactor = true) { - return isset($this->attributes['price']) ? Util::formatNumber($this->getPriceWith($net, $ufactor)) : ""; + return isset($this->attributes['price']) ? Util::formatNumber($this->getPriceWith($net, $ufactor)) : ''; } - public function getTaxWith($country = null){ + public function getTaxWith($country = null) + { $tax = isset($this->attributes['tax']) ? $this->attributes['tax'] : null; $ctax = $country ? $this->getCTax($country) : null; + return $ctax !== null ? $ctax : $tax; } - - - public function getBasePriceFormattedFull(){ - if($price = $this->getBasePrice()){ + public function getBasePriceFormattedFull() + { + if ($price = $this->getBasePrice()) { $unit = $this->attributes['unit']; - //ml g - if($unit === 1 || $unit === 2){ - return Util::formatNumber($price) . ' € / 100 '.$this->getUnitType(); + // ml g + if ($unit === 1 || $unit === 2) { + return Util::formatNumber($price).' € / 100 '.$this->getUnitType(); } - //l kg - if($unit === 3 || $unit === 4){ - return Util::formatNumber($price) . ' € / 1 '.$this->getUnitType(); + // l kg + if ($unit === 3 || $unit === 4) { + return Util::formatNumber($price).' € / 1 '.$this->getUnitType(); } } - return ""; + + return ''; } - public function getBasePriceFormatted(){ - if($price = $this->getBasePrice()){ + public function getBasePriceFormatted() + { + if ($price = $this->getBasePrice()) { return Util::formatNumber($price); } - return ""; + + return ''; } - public function getBasePrice(){ - if(isset($this->attributes['unit']) && isset($this->attributes['contents_total']) && $this->attributes['contents_total'] != 0){ + public function getBasePrice() + { + if (isset($this->attributes['unit']) && isset($this->attributes['contents_total']) && $this->attributes['contents_total'] != 0) { $unit = $this->attributes['unit']; - //ml g - if($unit === 1 || $unit === 2){ + // ml g + if ($unit === 1 || $unit === 2) { return $this->attributes['price'] * 100 / $this->attributes['contents_total']; } - //l kg - if($unit === 3 || $unit === 4){ - return $this->attributes['price'] * 1000 / $this->attributes['contents_total']; + // l kg + if ($unit === 3 || $unit === 4) { + return $this->attributes['price'] * 1000 / $this->attributes['contents_total']; } } - return ""; + + return ''; } - public function getUnitType(){ + + public function getUnitType() + { return isset($this->unitTypes[$this->unit]) ? $this->unitTypes[$this->unit] : '-'; } - public function getShowAtType(){ + + public function getShowAtType() + { return isset(Type::$showATs[$this->show_at]) ? Type::$showATs[$this->show_at] : '-'; } - public function getShowOnTypes($seperator = false){ + public function getShowOnTypes($seperator = false) + { $ret = []; - if($this->show_on && is_array($this->show_on)){ - foreach($this->show_on as $show){ + if ($this->show_on && is_array($this->show_on)) { + foreach ($this->show_on as $show) { $ret[] = isset(Type::$showONs[$show]) ? Type::$showONs[$show] : '-'; } } + return $seperator ? implode($seperator, $ret) : $ret; } - - public function setPosAttribute($value){ + public function setPosAttribute($value) + { $this->attributes['pos'] = is_numeric($value) ? $value : null; } + public function getLang($key) { $lang = \App::getLocale(); @@ -487,62 +591,75 @@ class Product extends Model return $this->{$key}; } $trans = $this->getTrans($key, $lang); - if (!$trans || $trans == '') { + if (! $trans || $trans == '') { return $this->{$key}; } + return $trans; } public function getTrans($key, $lang) { - $key = 'trans_' . $key; - if (!empty($this->{$key}[$lang])) { + $key = 'trans_'.$key; + if (! empty($this->{$key}[$lang])) { return $this->{$key}[$lang]; } } public function getTranNames() { - $ret = ""; - foreach ((array) $this->trans_name as $value){ + $ret = ''; + foreach ((array) $this->trans_name as $value) { $ret .= $value.', '; } + return rtrim($ret, ', '); } - public function getCountryPrice($country_id){ - return $this->country_prices->where('country_id', '=', $country_id)->first() ?: new CountryPrice(); + public function getCountryPrice($country_id) + { + return $this->country_prices->where('country_id', '=', $country_id)->first() ?: new CountryPrice; } - public function getCPrice($country_id){ + public function getCPrice($country_id) + { return $this->getCountryPrice($country_id)->c_price; } - public function getCTax($country_id){ + + public function getCTax($country_id) + { return $this->getCountryPrice($country_id)->c_tax; } - public function getCPriceOld($country_id){ + + public function getCPriceOld($country_id) + { return $this->getCountryPrice($country_id)->c_price_old; } - public function getCCurrency($country_id){ + + public function getCCurrency($country_id) + { return $this->getCountryPrice($country_id)->c_currency; } - public function getRealPrice(Country $country){ - if($country->own_eur && $this->getCPrice($country->id)){ + public function getRealPrice(Country $country) + { + if ($country->own_eur && $this->getCPrice($country->id)) { return $this->getCPrice($country->id); } + return $this->price; } - public function getFormattedPriceCurrencyWith(Bool $net = true, Bool $ufactor = true, Country $country = null, $commission = false){ - $ret = ""; - if($country && isset($country->currency) && $country->currency){ - $price = $this->getPriceWith($net, $ufactor, $country, $commission); - $ret = formatNumber($price * $country->currency_faktor)." ".$country->currency_unit; + public function getFormattedPriceCurrencyWith(bool $net = true, bool $ufactor = true, ?Country $country = null, $commission = false) + { + $ret = ''; + if ($country && isset($country->currency) && $country->currency) { + $price = $this->getPriceWith($net, $ufactor, $country, $commission); + $ret = formatNumber($price * $country->currency_faktor).' '.$country->currency_unit; + return '
~'.$ret.''; } - return "" ; + + return ''; } - - } diff --git a/app/Models/ProductIngredient.php b/app/Models/ProductIngredient.php index 400ade4..1328067 100644 --- a/app/Models/ProductIngredient.php +++ b/app/Models/ProductIngredient.php @@ -19,7 +19,7 @@ use Illuminate\Database\Eloquent\Model; * @property Carbon $updated_at * @property Ingredient $ingredient * @property Product $product - * @package App\Models + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient newQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient query() @@ -28,29 +28,37 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient whereIngredientId($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient whereProductId($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ProductIngredient whereUpdatedAt($value) + * * @mixin \Eloquent */ class ProductIngredient extends Model { - protected $table = 'product_ingredients'; + protected $table = 'product_ingredients'; - protected $casts = [ - 'product_id' => 'int', - 'ingredient_id' => 'int' - ]; + protected $casts = [ + 'product_id' => 'int', + 'ingredient_id' => 'int', + 'pos' => 'int', + 'gram' => 'decimal:3', + 'factor' => 'decimal:2', + ]; - protected $fillable = [ - 'product_id', - 'ingredient_id' - ]; + protected $fillable = [ + 'product_id', + 'ingredient_id', + 'pos', + 'gram', + 'factor', + 'recipe_type', + ]; - public function ingredient() - { - return $this->belongsTo(Ingredient::class, 'ingredient_id'); - } + public function ingredient() + { + return $this->belongsTo(Ingredient::class, 'ingredient_id'); + } - public function product() - { - return $this->belongsTo(Product::class, 'product_id'); - } + public function product() + { + return $this->belongsTo(Product::class, 'product_id'); + } } diff --git a/app/Models/Production.php b/app/Models/Production.php new file mode 100644 index 0000000..afd5061 --- /dev/null +++ b/app/Models/Production.php @@ -0,0 +1,72 @@ + + */ + protected function casts(): array + { + return [ + 'produced_at' => 'date', + 'mhd_warning' => 'boolean', + ]; + } + + /** + * @return BelongsTo + */ + public function product(): BelongsTo + { + return $this->belongsTo(Product::class); + } + + /** + * @return BelongsTo + */ + public function location(): BelongsTo + { + return $this->belongsTo(Location::class); + } + + /** + * @return BelongsTo + */ + public function producedByUser(): BelongsTo + { + return $this->belongsTo(User::class, 'produced_by'); + } + + /** + * @return HasMany + */ + public function productionIngredients(): HasMany + { + return $this->hasMany(ProductionIngredient::class); + } + + /** + * @return HasMany + */ + public function productionPackagings(): HasMany + { + return $this->hasMany(ProductionPackaging::class); + } +} diff --git a/app/Models/ProductionIngredient.php b/app/Models/ProductionIngredient.php new file mode 100644 index 0000000..030befe --- /dev/null +++ b/app/Models/ProductionIngredient.php @@ -0,0 +1,50 @@ + + */ + protected function casts(): array + { + return [ + 'quantity_used' => 'decimal:2', + ]; + } + + /** + * @return BelongsTo + */ + public function production(): BelongsTo + { + return $this->belongsTo(Production::class); + } + + /** + * @return BelongsTo + */ + public function ingredient(): BelongsTo + { + return $this->belongsTo(Ingredient::class); + } + + /** + * @return BelongsTo + */ + public function stockEntry(): BelongsTo + { + return $this->belongsTo(StockEntry::class); + } +} diff --git a/app/Models/ProductionPackaging.php b/app/Models/ProductionPackaging.php new file mode 100644 index 0000000..747d8ba --- /dev/null +++ b/app/Models/ProductionPackaging.php @@ -0,0 +1,41 @@ + + */ + protected function casts(): array + { + return [ + 'quantity_used' => 'integer', + ]; + } + + /** + * @return BelongsTo + */ + public function production(): BelongsTo + { + return $this->belongsTo(Production::class); + } + + /** + * @return BelongsTo + */ + public function packagingItem(): BelongsTo + { + return $this->belongsTo(PackagingItem::class); + } +} diff --git a/app/Models/ShoppingOrder.php b/app/Models/ShoppingOrder.php index e8c18e7..356ce7d 100644 --- a/app/Models/ShoppingOrder.php +++ b/app/Models/ShoppingOrder.php @@ -2,8 +2,11 @@ namespace App\Models; +use App\User; +use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Support\Carbon; /** * App\Models\ShoppingOrder @@ -22,16 +25,17 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property int|null $weight * @property int|null $paid * @property string|null $txaction - * @property \Illuminate\Support\Carbon|null $created_at - * @property \Illuminate\Support\Carbon|null $updated_at - * @property-read \App\User|null $auth_user - * @property-read \App\Models\Country $country - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShoppingOrderItem[] $shopping_order_items + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property-read User|null $auth_user + * @property-read Country $country + * @property-read Collection|ShoppingOrderItem[] $shopping_order_items * @property-read int|null $shopping_order_items_count - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ShoppingPayment[] $shopping_payments + * @property-read Collection|ShoppingPayment[] $shopping_payments * @property-read int|null $shopping_payments_count - * @property-read \App\Models\ShoppingUser $shopping_user - * @property-read \App\Models\UserShop $user_shop + * @property-read ShoppingUser $shopping_user + * @property-read UserShop $user_shop + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder newQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder query() @@ -51,62 +55,93 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereUserShopId($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereWeight($value) + * * @property int|null $payment_for + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder wherePaymentFor($value) + * * @property int|null $member_id * @property string|null $mode - * @property-read \App\User|null $member - * @property-read \App\Models\UserHistory|null $user_history + * @property-read User|null $member + * @property-read UserHistory|null $user_history + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereMemberId($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereMode($value) - * @property \Illuminate\Support\Carbon|null $deleted_at + * + * @property Carbon|null $deleted_at * @property string|null $user_deleted_at + * * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrder onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereDeletedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereUserDeletedAt($value) * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrder withTrashed() * @method static \Illuminate\Database\Query\Builder|\App\Models\ShoppingOrder withoutTrashed() - * @property-read \App\Models\ShippingCountry $shipping_country + * + * @property-read ShippingCountry $shipping_country * @property float|null $shipping_net * @property float|null $subtotal_shipping * @property int|null $points * @property int|null $shipped * @property string|null $tracking * @property string|null $wp_invoice_path + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder wherePoints($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereShipped($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereShippingNet($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereSubtotalWs($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereTracking($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingOrder whereWpInvoicePath($value) + * * @property array|null $wp_notice + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereWpNotice($value) + * * @property string|null $subtotal_full - * @property-read \App\Models\ShoppingOrderMargin|null $shopping_order_margin - * @property-read \App\Models\ShoppingPayment|null $shopping_payment_last + * @property-read ShoppingOrderMargin|null $shopping_order_margin + * @property-read ShoppingPayment|null $shopping_payment_last + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereSubtotalFull($value) + * * @property string|null $discount * @property string|null $payment_credit + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereDiscount($value) * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder wherePaymentCredit($value) * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereSubtotalShipping($value) + * * @property string|null $total_without_credit + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereTotalWithoutCredit($value) + * * @property array|null $invoice - * @property \Illuminate\Support\Carbon|null $shipped_at + * @property Carbon|null $shipped_at + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereInvoice($value) * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereShippedAt($value) + * * @property string|null $invoice_number + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereInvoiceNumber($value) + * * @property int|null $promotion_user_id * @property string|null $shipping_option - * @property-read \App\Models\PromotionUser|null $promotion_user + * @property-read PromotionUser|null $promotion_user + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder wherePromotionUserId($value) * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereShippingOption($value) + * * @property array|null $delivery + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereDelivery($value) + * * @property bool $user_white_label + * * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereUserWhiteLabel($value) + * + * @property array|null $cancellation_invoice + * + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingOrder whereCancellationInvoice($value) + * * @mixin \Eloquent */ class ShoppingOrder extends Model @@ -114,6 +149,7 @@ class ShoppingOrder extends Model protected $table = 'shopping_orders'; use SoftDeletes; + protected $dates = ['deleted_at']; protected $fillable = [ @@ -139,6 +175,7 @@ class ShoppingOrder extends Model 'weight', 'paid', 'invoice', + 'cancellation_invoice', 'delivery', 'user_white_label', 'invoice_number', @@ -155,6 +192,7 @@ class ShoppingOrder extends Model protected $casts = [ 'wp_notice' => 'array', 'invoice' => 'array', + 'cancellation_invoice' => 'array', 'delivery' => 'array', 'shipped_at' => 'datetime', 'user_white_label' => 'boolean', @@ -167,14 +205,14 @@ class ShoppingOrder extends Model 3 => 'abgeschlossen', 5 => 'Wartestellung', 4 => 'Abholung', - 10 => 'storniert' + 10 => 'storniert', ]; public static $paymentForTypes = [ 0 => '', 1 => 'Registrierung', 2 => 'Mitgliedschaft', - 3 => 'Guthabenaufladung', //guthaben + 3 => 'Guthabenaufladung', // guthaben 4 => 'VP.Bestellung Abholung', 5 => 'VP.Bestellung Lieferung', 6 => 'VP.Kundenbestellung', @@ -182,7 +220,7 @@ class ShoppingOrder extends Model 8 => 'Shop', 9 => '-', 10 => 'extern', - 11 => '' + 11 => '', ]; public static $paymentForColors = [ @@ -198,18 +236,17 @@ class ShoppingOrder extends Model 8 => 'info', 9 => 'default', 10 => 'info', - 11 => 'default' + 11 => 'default', ]; - public static $apiShippedTypes = [ - 0 => 'open', //(Fullfilment durch Händler)', - 1 => 'process', //(Fullfilment: nicht Versand) - 2 => 'sent', //(Fullfilment: Versand erfolgt)' - 3 => 'close', //(Fullfilment: Versand erfolgt)', - 4 => 'pick_up', //(Fullfilment: Versand erfolgt)', - 10 => 'cancel' + 0 => 'open', // (Fullfilment durch Händler)', + 1 => 'process', // (Fullfilment: nicht Versand) + 2 => 'sent', // (Fullfilment: Versand erfolgt)' + 3 => 'close', // (Fullfilment: Versand erfolgt)', + 4 => 'pick_up', // (Fullfilment: Versand erfolgt)', + 10 => 'cancel', ]; public static $shippedColors = [ @@ -224,101 +261,126 @@ class ShoppingOrder extends Model public function shopping_user() { - return $this->belongsTo('App\Models\ShoppingUser','shopping_user_id'); + return $this->belongsTo('App\Models\ShoppingUser', 'shopping_user_id'); } public function country() { - return $this->belongsTo('App\Models\ShippingCountry','country_id'); + return $this->belongsTo('App\Models\ShippingCountry', 'country_id'); } public function shipping_country() { - return $this->belongsTo('App\Models\ShippingCountry','country_id'); + return $this->belongsTo('App\Models\ShippingCountry', 'country_id'); } public function promotion_user() { - return $this->belongsTo('App\Models\PromotionUser','promotion_user_id'); + return $this->belongsTo('App\Models\PromotionUser', 'promotion_user_id'); } public function user_shop() { - return $this->belongsTo('App\Models\UserShop','user_shop_id'); + return $this->belongsTo('App\Models\UserShop', 'user_shop_id'); } - //can null + // can null public function member() { - return $this->belongsTo('App\User','member_id'); + return $this->belongsTo('App\User', 'member_id'); } - //can null + + // can null public function auth_user() { - return $this->belongsTo('App\User','auth_user_id'); + return $this->belongsTo('App\User', 'auth_user_id'); } public function user_history() { - return $this->hasOne('App\Models\UserHistory','shopping_order_id')->latest(); + return $this->hasOne('App\Models\UserHistory', 'shopping_order_id')->latest(); } public function shopping_order_margin() { - return $this->hasOne('App\Models\ShoppingOrderMargin','shopping_order_id')->latest(); + return $this->hasOne('App\Models\ShoppingOrderMargin', 'shopping_order_id')->latest(); } - public function shopping_order_items(){ + public function shopping_order_items() + { return $this->hasMany('App\Models\ShoppingOrderItem', 'shopping_order_id'); } - public function shopping_payments(){ + /** + * Mindestens eine Bestellzeile mit White-Label-Produkt (Lieferschein mit Etikett-Infos). + */ + public function hasWhitelabelProducts(): bool + { + return $this->shopping_order_items() + ->whereHas('product', function ($query): void { + $query->where('whitelabel', true); + }) + ->exists(); + } + + public function shopping_payments() + { return $this->hasMany('App\Models\ShoppingPayment', 'shopping_order_id'); } - public function shopping_payment_last(){ + public function shopping_payment_last() + { return $this->hasOne('App\Models\ShoppingPayment', 'shopping_order_id')->latest(); } - public function setUserHistoryValue($values = []){ - if($user_history = $this->user_history){ - foreach ($values as $key=>$val){ + public function setUserHistoryValue($values = []) + { + if ($user_history = $this->user_history) { + foreach ($values as $key => $val) { $user_history->{$key} = $val; } $user_history->save(); } } - public function getLastShoppingPayment($key=false){ + public function getLastShoppingPayment($key = false) + { $shopping_payment = $this->shopping_payments->last(); - if($shopping_payment){ - if($key === 'getPaymentType'){ + if ($shopping_payment) { + if ($key === 'getPaymentType') { return $shopping_payment->getPaymentType(); } - if($key === 'reference'){ + if ($key === 'reference') { return $shopping_payment->reference; } } - return ""; + + return ''; } - public function getShippedType(){ - return isset(self::$shippedTypes[$this->shipped]) ? self::$shippedTypes[$this->shipped] : ""; + public function getShippedType() + { + return isset(self::$shippedTypes[$this->shipped]) ? self::$shippedTypes[$this->shipped] : ''; } - public function getAPIShippedType(){ - return isset(self::$apiShippedTypes[$this->shipped]) ? self::$apiShippedTypes[$this->shipped] : "free"; + public function getAPIShippedType() + { + return isset(self::$apiShippedTypes[$this->shipped]) ? self::$apiShippedTypes[$this->shipped] : 'free'; } - public function getShippedColor(){ - return isset(self::$shippedColors[$this->shipped]) ? self::$shippedColors[$this->shipped] : "default"; + public function getShippedColor() + { + return isset(self::$shippedColors[$this->shipped]) ? self::$shippedColors[$this->shipped] : 'default'; } - public function getPaymentForType(){ - return isset(self::$paymentForTypes[$this->payment_for]) ? self::$paymentForTypes[$this->payment_for] : ""; + public function getPaymentForType() + { + return isset(self::$paymentForTypes[$this->payment_for]) ? self::$paymentForTypes[$this->payment_for] : ''; } - public function getPaymentForColor(){ - return isset(self::$paymentForColors[$this->payment_for]) ? self::$paymentForColors[$this->payment_for] : ""; + + public function getPaymentForColor() + { + return isset(self::$paymentForColors[$this->payment_for]) ? self::$paymentForColors[$this->payment_for] : ''; } public function getFormattedTotal() @@ -360,39 +422,46 @@ class ShoppingOrder extends Model { return formatNumber($this->attributes['tax']); } + public function getFormattedTotalWithoutCredit() { return formatNumber($this->attributes['total_without_credit']); } + public function getFormattedPaymentCredit() { return formatNumber($this->attributes['payment_credit']); } + public function getFormattedTotalShipping() { return formatNumber($this->attributes['total_shipping']); } - public function getItemsCount(){ + public function getItemsCount() + { $count = 0; - if($this->shopping_order_items){ - foreach ($this->shopping_order_items as $shopping_order_item){ + if ($this->shopping_order_items) { + foreach ($this->shopping_order_items as $shopping_order_item) { $count += $shopping_order_item->qty; } } + return $count; } - public function isInvoice(){ + public function isInvoice() + { return $this->user_invoice ? true : false; } - public function isPickUp(){ + public function isPickUp() + { return $this->shipping_option === 'pick_up' ? true : false; } - public function isTax(){ + public function isTax() + { return $this->tax > 0 ? true : false; } - } diff --git a/app/Models/ShoppingPayment.php b/app/Models/ShoppingPayment.php index 25abcc7..d8433d3 100644 --- a/app/Models/ShoppingPayment.php +++ b/app/Models/ShoppingPayment.php @@ -3,7 +3,9 @@ namespace App\Models; use App\Services\Util; +use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Carbon; /** * App\Models\ShoppingPayment @@ -18,11 +20,12 @@ use Illuminate\Database\Eloquent\Model; * @property string $currency * @property string|null $status * @property string|null $txaction - * @property \Illuminate\Support\Carbon|null $created_at - * @property \Illuminate\Support\Carbon|null $updated_at - * @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\PaymentTransaction[] $payment_transactions + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property-read Collection|PaymentTransaction[] $payment_transactions * @property-read int|null $payment_transactions_count - * @property-read \App\Models\ShoppingOrder $shopping_order + * @property-read ShoppingOrder $shopping_order + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment newQuery() * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment query() @@ -38,8 +41,17 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereTxaction($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereWallettype($value) + * * @property string|null $mode + * * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\ShoppingPayment whereMode($value) + * + * @property int|null $reminder + * @property Carbon|null $reminder_date + * + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingPayment whereReminder($value) + * @method static \Illuminate\Database\Eloquent\Builder|ShoppingPayment whereReminderDate($value) + * * @mixin \Eloquent */ class ShoppingPayment extends Model @@ -58,7 +70,7 @@ class ShoppingPayment extends Model 'reminder', 'reminder_date', 'txaction', - 'mode' + 'mode', ]; protected $casts = [ @@ -66,44 +78,46 @@ class ShoppingPayment extends Model 'reminder_date' => 'datetime', ]; - public function shopping_order() { - return $this->belongsTo('App\Models\ShoppingOrder','shopping_order_id'); + return $this->belongsTo('App\Models\ShoppingOrder', 'shopping_order_id'); } public function payment_transactions() { - return $this->hasMany('App\Models\PaymentTransaction','shopping_payment_id'); + return $this->hasMany('App\Models\PaymentTransaction', 'shopping_payment_id'); } - public function getPaymentType(){ + public function getPaymentType() + { - if($this->clearingtype === 'pp') { + if ($this->clearingtype === 'pp') { return 'PayPal'; } - if($this->clearingtype === 'cc') { + if ($this->clearingtype === 'cc') { return 'Kreditkarte'; } - if($this->clearingtype === 'vor') { + if ($this->clearingtype === 'vor') { return 'Vorkasse'; } - if($this->clearingtype === 'elv') { + if ($this->clearingtype === 'elv') { return 'SEPA Lastschrift'; } - if($this->clearingtype === 'sb') { + if ($this->clearingtype === 'sb') { return 'Sofort Überweisung'; } - if($this->clearingtype === 'fnc') { + if ($this->clearingtype === 'fnc') { return 'Rechnung'; } - if($this->clearingtype === 'non') { + if ($this->clearingtype === 'non') { return 'keine'; } + return 'keine'; } - public function getPaymentAmount(){ - return Util::formatNumber($this->amount/100)." ".$this->currency; + public function getPaymentAmount() + { + return Util::formatNumber($this->amount / 100).' '.$this->currency; } -} \ No newline at end of file +} diff --git a/app/Models/StockEntry.php b/app/Models/StockEntry.php new file mode 100644 index 0000000..a97b6e5 --- /dev/null +++ b/app/Models/StockEntry.php @@ -0,0 +1,118 @@ + */ + use HasFactory; + + protected $fillable = [ + 'entry_type', + 'ingredient_id', + 'packaging_item_id', + 'supplier_id', + 'location_id', + 'unit', + 'ordered_by', + 'ordered_at', + 'ordered_quantity', + 'price_per_kg', + 'price_total', + 'received_by', + 'received_at', + 'received_quantity', + 'batch_number', + 'best_before', + 'quality_id', + 'status', + ]; + + /** + * @return array + */ + protected function casts(): array + { + return [ + 'ordered_at' => 'date', + 'received_at' => 'date', + 'best_before' => 'date', + 'ordered_quantity' => 'decimal:2', + 'received_quantity' => 'decimal:2', + 'price_per_kg' => 'decimal:4', + 'price_total' => 'decimal:4', + ]; + } + + /** + * @return BelongsTo + */ + public function ingredient(): BelongsTo + { + return $this->belongsTo(Ingredient::class); + } + + /** + * @return BelongsTo + */ + public function packagingItem(): BelongsTo + { + return $this->belongsTo(PackagingItem::class); + } + + /** + * @return BelongsTo + */ + public function supplier(): BelongsTo + { + return $this->belongsTo(Supplier::class); + } + + /** + * @return BelongsTo + */ + public function location(): BelongsTo + { + return $this->belongsTo(Location::class); + } + + /** + * @return BelongsTo + */ + public function quality(): BelongsTo + { + return $this->belongsTo(MaterialQuality::class, 'quality_id'); + } + + /** + * @return BelongsTo + */ + public function orderedByUser(): BelongsTo + { + return $this->belongsTo(User::class, 'ordered_by'); + } + + /** + * @return BelongsTo + */ + public function receivedByUser(): BelongsTo + { + return $this->belongsTo(User::class, 'received_by'); + } + + public function isPending(): bool + { + return $this->status === 'pending'; + } + + public function isReceived(): bool + { + return $this->status === 'received'; + } +} diff --git a/app/Models/Supplier.php b/app/Models/Supplier.php new file mode 100644 index 0000000..4c5d6e7 --- /dev/null +++ b/app/Models/Supplier.php @@ -0,0 +1,67 @@ + */ + use HasFactory, SoftDeletes; + + protected $fillable = [ + 'name', + 'url', + 'contact_person', + 'email', + 'phone', + 'country_id', + 'notes', + 'active', + ]; + + /** + * @return array + */ + protected function casts(): array + { + return [ + 'active' => 'boolean', + ]; + } + + /** + * @return BelongsTo + */ + public function country(): BelongsTo + { + return $this->belongsTo(Country::class); + } + + /** + * @return BelongsToMany + */ + public function supplierCategories(): BelongsToMany + { + return $this->belongsToMany( + SupplierCategory::class, + 'supplier_supplier_category', + 'supplier_id', + 'supplier_category_id' + )->withTimestamps(); + } + + /** + * @return HasMany + */ + public function packagingItems(): HasMany + { + return $this->hasMany(PackagingItem::class); + } +} diff --git a/app/Models/SupplierCategory.php b/app/Models/SupplierCategory.php new file mode 100644 index 0000000..4b17b5c --- /dev/null +++ b/app/Models/SupplierCategory.php @@ -0,0 +1,32 @@ + */ + use HasFactory; + + protected $fillable = [ + 'name', + 'pos', + ]; + + /** + * @return BelongsToMany + */ + public function suppliers(): BelongsToMany + { + return $this->belongsToMany( + Supplier::class, + 'supplier_supplier_category', + 'supplier_category_id', + 'supplier_id' + )->withTimestamps(); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 4c28646..a53802e 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,7 +2,9 @@ namespace App\Providers; +use Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider; use Illuminate\Support\Facades\Schema; +use Illuminate\Support\Facades\URL; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider @@ -15,6 +17,7 @@ class AppServiceProvider extends ServiceProvider public function boot() { Schema::defaultStringLength(191); + URL::forceScheme('https'); } /** @@ -26,7 +29,7 @@ class AppServiceProvider extends ServiceProvider { if ($this->app->environment() !== 'production') { - $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); + $this->app->register(IdeHelperServiceProvider::class); } // ... } diff --git a/app/Repositories/PackagingItemRepository.php b/app/Repositories/PackagingItemRepository.php new file mode 100644 index 0000000..11b2fb0 --- /dev/null +++ b/app/Repositories/PackagingItemRepository.php @@ -0,0 +1,44 @@ + $data + */ + public function create(array $data): PackagingItem + { + return PackagingItem::create($this->extractAttributes($data)); + } + + /** + * @param array $data + */ + public function update(PackagingItem $packagingItem, array $data): PackagingItem + { + $packagingItem->update($this->extractAttributes($data)); + + return $packagingItem->fresh(); + } + + /** + * @param array $data + * @return array + */ + protected function extractAttributes(array $data): array + { + return collect($data)->only([ + 'packaging_material_id', + 'supplier_id', + 'name', + 'category', + 'weight_grams', + 'min_stock_alert', + 'product_id', + 'active', + ])->all(); + } +} diff --git a/app/Repositories/ProductRepository.php b/app/Repositories/ProductRepository.php index e7adce1..d6bcc40 100644 --- a/app/Repositories/ProductRepository.php +++ b/app/Repositories/ProductRepository.php @@ -2,26 +2,23 @@ namespace App\Repositories; - - -use App\Models\CountryPrice; use App\Models\Attribute; +use App\Models\CountryPrice; +use App\Models\Ingredient; use App\Models\Product; use App\Models\ProductAttribute; use App\Models\ProductCategory; use App\Models\ProductImage; use App\Models\ProductIngredient; +use App\Services\Slim; - -class ProductRepository extends BaseRepository { - - +class ProductRepository extends BaseRepository +{ public function __construct(Product $model) { $this->model = $model; } - /** * refresh. */ @@ -37,59 +34,211 @@ class ProductRepository extends BaseRepository { $data['max_buy'] = isset($data['max_buy']) ? 1 : 0; $data['show_on'] = isset($data['show_on']) ? $data['show_on'] : null; - if($data['id'] === "new"){ - $this->model = Product::create($data); + if (array_key_exists('shelf_life_type', $data)) { + if ($data['shelf_life_type'] === '' || $data['shelf_life_type'] === null) { + $data['shelf_life_type'] = null; + $data['shelf_life_months'] = null; + } elseif ($data['shelf_life_type'] === 'pao') { + $data['shelf_life_months'] = null; + } elseif ($data['shelf_life_type'] === 'fixed' && array_key_exists('shelf_life_months', $data) && $data['shelf_life_months'] !== '' && $data['shelf_life_months'] !== null) { + $data['shelf_life_months'] = (int) $data['shelf_life_months']; + } } - else{ + + if ($data['id'] === 'new') { + $this->model = Product::create($data); + } else { $this->model = $this->getById($data['id']); $this->model->fill($data); $this->model->save(); } - $this->updateCategories(isset($data['categories']) ? $data['categories'] : []); $this->updateAttributes(isset($data['attributes']) ? $data['attributes'] : []); - + $this->updateWLVariants(isset($data['whitelabel_variants']) ? $data['whitelabel_variants'] : []); - $this->updateWLImageAttributs(isset($data['image_wl_attributes']) ? $data['image_wl_attributes'] : [] , isset($data['whitelabel_variants']) ? $data['whitelabel_variants'] : []); + $this->updateWLImageAttributs(isset($data['image_wl_attributes']) ? $data['image_wl_attributes'] : [], isset($data['whitelabel_variants']) ? $data['whitelabel_variants'] : []); - $this->updateIngredients(isset($data['product_ingredients']) ? $data['product_ingredients'] : []); + $this->updateIngredients($data); + $this->updateManufacturerIngredients($data); + $this->updatePackagings($data); $this->updateCountryPrices($data); - return $this->model; } - - public function updateIngredients($data = array()) + public function updatePackagings(array $data = []): bool { - $ProductIngredient = $this->model->p_ingredients()->pluck('ingredient_id')->toArray(); - //set attr - if(is_array($data)){ - foreach ($data as $id) { - //not use - if(!in_array($id, $ProductIngredient)){ - ProductIngredient::create([ - 'product_id' => $this->model->id, - 'ingredient_id' => $id, - ]); - } - } + if (! isset($data['pp_packaging_item_id']) || ! is_array($data['pp_packaging_item_id'])) { + $this->model->packagings()->detach(); + + return true; } + + $ids = $data['pp_packaging_item_id']; + $quantities = $data['pp_quantity'] ?? []; + $syncData = []; + foreach ($ids as $index => $packagingItemId) { + $pid = (int) $packagingItemId; + if ($pid <= 0) { + continue; + } + $qtyRaw = $quantities[$index] ?? null; + $qty = $this->parseNullableDecimal($qtyRaw); + if ($qty === null || $qty <= 0) { + $qty = 1.0; + } + $syncData[$pid] = [ + 'quantity' => $qty, + 'pos' => (int) $index, + ]; + } + + $this->model->packagings()->sync($syncData); + return true; } - public function updateCategories($data = array()) + public function updateIngredients(array $data = []): bool + { + if (! array_key_exists('product_inci_sync_sent', $data)) { + if (isset($data['product_ingredients']) && is_array($data['product_ingredients'])) { + $ids = array_values(array_unique(array_filter(array_map('intval', $data['product_ingredients']), fn (int $id) => $id > 0))); + $defaults = Ingredient::whereIn('id', $ids)->pluck('default_factor', 'id'); + + ProductIngredient::where('product_id', $this->model->id) + ->where('recipe_type', 'product') + ->delete(); + + foreach ($ids as $index => $ingredientId) { + $factor = $defaults[$ingredientId] ?? 1.10; + ProductIngredient::create([ + 'product_id' => $this->model->id, + 'ingredient_id' => $ingredientId, + 'pos' => $index, + 'gram' => null, + 'factor' => $factor, + 'recipe_type' => 'product', + ]); + } + } + + return true; + } + + if (isset($data['pi_ingredient_id']) && is_array($data['pi_ingredient_id'])) { + $ids = $data['pi_ingredient_id']; + $grams = $data['pi_gram'] ?? []; + $factors = $data['pi_factor'] ?? []; + + ProductIngredient::where('product_id', $this->model->id) + ->where('recipe_type', 'product') + ->delete(); + + foreach ($ids as $index => $ingredientId) { + $ingredientId = (int) $ingredientId; + if ($ingredientId <= 0) { + continue; + } + ProductIngredient::create([ + 'product_id' => $this->model->id, + 'ingredient_id' => $ingredientId, + 'pos' => $index, + 'gram' => $this->parseNullableDecimal($grams[$index] ?? null), + 'factor' => $this->parseFactor($factors[$index] ?? null, $ingredientId), + 'recipe_type' => 'product', + ]); + } + + return true; + } + + ProductIngredient::where('product_id', $this->model->id) + ->where('recipe_type', 'product') + ->delete(); + + return true; + } + + public function updateManufacturerIngredients(array $data = []): bool + { + if (! array_key_exists('manufacturer_inci_sync_sent', $data)) { + return true; + } + + if (isset($data['mfg_ingredient_id']) && is_array($data['mfg_ingredient_id'])) { + $ids = $data['mfg_ingredient_id']; + $grams = $data['mfg_gram'] ?? []; + $factors = $data['mfg_factor'] ?? []; + + ProductIngredient::where('product_id', $this->model->id) + ->where('recipe_type', 'manufacturer') + ->delete(); + + foreach ($ids as $index => $ingredientId) { + $ingredientId = (int) $ingredientId; + if ($ingredientId <= 0) { + continue; + } + ProductIngredient::create([ + 'product_id' => $this->model->id, + 'ingredient_id' => $ingredientId, + 'pos' => $index, + 'gram' => $this->parseNullableDecimal($grams[$index] ?? null), + 'factor' => $this->parseFactor($factors[$index] ?? null, $ingredientId), + 'recipe_type' => 'manufacturer', + ]); + } + + return true; + } + + ProductIngredient::where('product_id', $this->model->id) + ->where('recipe_type', 'manufacturer') + ->delete(); + + return true; + } + + private function parseNullableDecimal(mixed $value): ?float + { + if ($value === null || $value === '') { + return null; + } + if (is_numeric($value)) { + return (float) $value; + } + $normalized = reFormatNumber((string) $value); + + return $normalized !== null && $normalized !== '' ? (float) $normalized : null; + } + + private function parseFactor(mixed $value, int $ingredientId): float + { + if ($value === null || $value === '') { + $default = Ingredient::whereKey($ingredientId)->value('default_factor'); + + return $default !== null ? (float) $default : 1.10; + } + if (is_numeric($value)) { + return (float) $value; + } + $normalized = reFormatNumber((string) $value); + + return $normalized !== null && $normalized !== '' ? (float) $normalized : 1.10; + } + + public function updateCategories($data = []) { foreach ($this->model->categories as $category) { - if(($pos = array_search($category->category_id, $data)) !== FALSE){ + if (($pos = array_search($category->category_id, $data)) !== false) { unset($data[$pos]); - }else{ + } else { $category->delete(); } } - //set attr - if(is_array($data)){ + // set attr + if (is_array($data)) { foreach ($data as $id) { ProductCategory::create([ 'product_id' => $this->model->id, @@ -97,20 +246,21 @@ class ProductRepository extends BaseRepository { ]); } } + return true; } - public function updateAttributes($data = array()) + public function updateAttributes($data = []) { foreach ($this->model->attributes as $attribute) { - if(($pos = array_search($attribute->attribute_id, $data)) !== FALSE){ + if (($pos = array_search($attribute->attribute_id, $data)) !== false) { unset($data[$pos]); - }else{ + } else { $attribute->delete(); } } - //set attr - if(is_array($data)){ + // set attr + if (is_array($data)) { foreach ($data as $id) { $attribute = Attribute::findOrFail($id); ProductAttribute::create([ @@ -120,20 +270,21 @@ class ProductRepository extends BaseRepository { ]); } } + return true; } - public function updateWLVariants($data = array()) + public function updateWLVariants($data = []) { foreach ($this->model->attribute_variants as $variant) { - if(($pos = array_search($variant->attribute_id, $data)) !== FALSE){ + if (($pos = array_search($variant->attribute_id, $data)) !== false) { unset($data[$pos]); - }else{ + } else { $variant->delete(); } } - //set attr - if(is_array($data)){ + // set attr + if (is_array($data)) { foreach ($data as $id) { $attribute = Attribute::findOrFail($id); ProductAttribute::create([ @@ -143,34 +294,32 @@ class ProductRepository extends BaseRepository { ]); } } + return true; } public function updateWLImageAttributs($attributes = [], $variants = []) { - //abgleich der attributes gegen die variants + // abgleich der attributes gegen die variants foreach ($attributes as $image => $value) { foreach ($value as $k => $val) { - if(!is_array($variants) || !in_array($val, $variants)){ + if (! is_array($variants) || ! in_array($val, $variants)) { unset($attributes[$image][$k]); } } } foreach ($this->model->whitelabel_images as $image) { - $image->update([ - 'attributes' => isset($attributes[$image->id]) ? $attributes[$image->id] : NULL, - ]); + $image->update([ + 'attributes' => isset($attributes[$image->id]) ? $attributes[$image->id] : null, + ]); } - + return true; } - - - public function updateCountryPrices($data) { - if(!isset($data['country_prices']) || !is_array($data['country_prices'])){ + if (! isset($data['country_prices']) || ! is_array($data['country_prices'])) { return false; } foreach ($data['country_prices'] as $k => $country_id) { @@ -178,61 +327,77 @@ class ProductRepository extends BaseRepository { 'country_id' => $country_id, 'product_id' => $this->model->id, ], - [ - 'c_price' => isset($data['c_price'][$country_id]) ? reFormatNumber($data['c_price'][$country_id]) : null, - 'c_tax' => isset($data['c_tax'][$country_id]) ? reFormatNumber($data['c_tax'][$country_id]) : null, - 'c_price_old' => isset($data['c_price_old'][$country_id]) ? reFormatNumber($data['c_price_old'][$country_id]) : null, - 'c_currency' => isset($data['c_currency'][$country_id]) ? reFormatNumber($data['c_currency'][$country_id]) : null, - ]); + [ + 'c_price' => isset($data['c_price'][$country_id]) ? reFormatNumber($data['c_price'][$country_id]) : null, + 'c_tax' => isset($data['c_tax'][$country_id]) ? reFormatNumber($data['c_tax'][$country_id]) : null, + 'c_price_old' => isset($data['c_price_old'][$country_id]) ? reFormatNumber($data['c_price_old'][$country_id]) : null, + 'c_currency' => isset($data['c_currency'][$country_id]) ? reFormatNumber($data['c_currency'][$country_id]) : null, + ]); } - - return true; } - public function copy($model) { $this->model = $model->replicate(); - $this->model->name = "Kopie: ".$this->model->name; + $this->model->name = 'Kopie: '.$this->model->name; $this->model->wp_number = null; $this->model->save(); - //categories - foreach ($model->categories as $category){ + // categories + foreach ($model->categories as $category) { ProductCategory::create([ 'product_id' => $this->model->id, 'category_id' => $category->category_id, ]); } - //attributes - foreach ($model->attributes as $attribute){ + // attributes + foreach ($model->attributes as $attribute) { ProductAttribute::create([ 'product_id' => $this->model->id, - 'type_id' => $this->model->attribute_type_id, + 'type_id' => $attribute->type_id, 'attribute_id' => $attribute->attribute_id, ]); } - //INCS - $ingredients = $model->p_ingredients()->pluck('ingredient_id')->toArray(); - if(is_array($ingredients)){ - foreach ($ingredients as $incs_id){ - ProductIngredient::create([ - 'product_id' => $this->model->id, - 'ingredient_id' => $incs_id, - ]); - } + foreach ($model->p_ingredients()->orderByPivot('pos')->get() as $ing) { + ProductIngredient::create([ + 'product_id' => $this->model->id, + 'ingredient_id' => $ing->id, + 'pos' => (int) ($ing->pivot->pos ?? 0), + 'gram' => $ing->pivot->gram, + 'factor' => $ing->pivot->factor !== null ? (float) $ing->pivot->factor : 1.10, + 'recipe_type' => 'product', + ]); } - - //images - foreach ($model->images as $image){ - $name = \App\Services\Slim::sanitizeFileName($image->original_name); - $name = uniqid() . '_' . $name; + foreach ($model->manufacturer_ingredients()->orderByPivot('pos')->get() as $ing) { + ProductIngredient::create([ + 'product_id' => $this->model->id, + 'ingredient_id' => $ing->id, + 'pos' => (int) ($ing->pivot->pos ?? 0), + 'gram' => $ing->pivot->gram, + 'factor' => $ing->pivot->factor !== null ? (float) $ing->pivot->factor : 1.10, + 'recipe_type' => 'manufacturer', + ]); + } - //copy + $packSync = []; + foreach ($model->packagings()->orderByPivot('pos')->get() as $pack) { + $packSync[$pack->id] = [ + 'quantity' => $pack->pivot->quantity !== null ? (float) $pack->pivot->quantity : 1.0, + 'pos' => (int) ($pack->pivot->pos ?? 0), + ]; + } + $this->model->packagings()->sync($packSync); + + // images + foreach ($model->images as $image) { + $name = Slim::sanitizeFileName($image->original_name); + $name = uniqid().'_'.$name; + + // copy $data = \Storage::disk('public')->copy( 'images/product/'.$image->product_id.'/'.$image->filename, 'images/product/'.$this->model->id.'/'.$name @@ -246,7 +411,7 @@ class ProductRepository extends BaseRepository { 'ext' => $image->ext, 'mine' => $image->mine, 'size' => $image->size, - 'attributes' => $image->attributes + 'attributes' => $image->attributes, ]); } @@ -254,10 +419,5 @@ class ProductRepository extends BaseRepository { return $this->model; } - - public function delete() - { - - } - -} \ No newline at end of file + public function delete() {} +} diff --git a/app/Repositories/ProductionRepository.php b/app/Repositories/ProductionRepository.php new file mode 100644 index 0000000..c9c3d6f --- /dev/null +++ b/app/Repositories/ProductionRepository.php @@ -0,0 +1,21 @@ + + */ + public function listForIndex(): Collection + { + return Production::query() + ->with(['product', 'location', 'producedByUser']) + ->orderByDesc('produced_at') + ->orderByDesc('id') + ->get(); + } +} diff --git a/app/Repositories/StockEntryRepository.php b/app/Repositories/StockEntryRepository.php new file mode 100644 index 0000000..17db3fc --- /dev/null +++ b/app/Repositories/StockEntryRepository.php @@ -0,0 +1,92 @@ + $data + */ + public function create(array $data): StockEntry + { + $data['unit'] = ($data['entry_type'] ?? '') === 'ingredient' ? 'gram' : 'piece'; + + return StockEntry::query()->create($data); + } + + /** + * @param array $data + */ + public function update(StockEntry $stockEntry, array $data): StockEntry + { + if (array_key_exists('entry_type', $data)) { + $data['unit'] = ($data['entry_type'] ?? '') === 'ingredient' ? 'gram' : 'piece'; + } + + $stockEntry->update($data); + + return $stockEntry->fresh(); + } + + /** + * @param array $data + */ + public function receive(StockEntry $stockEntry, array $data): StockEntry + { + $data['status'] = 'received'; + $data['received_by'] = auth()->id(); + + $stockEntry->update($data); + + return $stockEntry->fresh(); + } + + /** + * @return Collection + */ + public function getByStatus(string $status): Collection + { + return StockEntry::query() + ->where('status', $status) + ->orderByDesc('ordered_at') + ->get(); + } + + /** + * @return Collection + */ + public function getForIngredient(int $ingredientId): Collection + { + return StockEntry::query() + ->where('ingredient_id', $ingredientId) + ->where('status', 'received') + ->orderByDesc('received_at') + ->get(); + } + + /** + * Liste: Pending zuerst (neuestes Bestelldatum), dann Received (neuester Eingang). + * + * @return Collection + */ + public function listForIndex(): Collection + { + $with = [ + 'ingredient', + 'packagingItem', + 'supplier', + 'location', + 'quality', + 'orderedByUser', + 'receivedByUser', + ]; + + $pending = StockEntry::query()->with($with)->where('status', 'pending')->orderByDesc('ordered_at')->get(); + $received = StockEntry::query()->with($with)->where('status', 'received')->orderByDesc('received_at')->get(); + + return $pending->concat($received)->values(); + } +} diff --git a/app/Repositories/SupplierRepository.php b/app/Repositories/SupplierRepository.php new file mode 100644 index 0000000..7eb70e2 --- /dev/null +++ b/app/Repositories/SupplierRepository.php @@ -0,0 +1,58 @@ + $data + */ + public function create(array $data): Supplier + { + $supplier = Supplier::create($this->extractSupplierAttributes($data)); + $this->syncCategories($supplier, $data['supplier_category_ids'] ?? []); + + return $supplier; + } + + /** + * @param array $data + */ + public function update(Supplier $supplier, array $data): Supplier + { + $supplier->update($this->extractSupplierAttributes($data)); + $this->syncCategories($supplier, $data['supplier_category_ids'] ?? []); + + return $supplier->fresh(); + } + + /** + * @param array|null $categoryIds + */ + public function syncCategories(Supplier $supplier, array $categoryIds): void + { + $ids = array_values(array_filter(array_map('intval', $categoryIds))); + + $supplier->supplierCategories()->sync($ids); + } + + /** + * @param array $data + * @return array + */ + protected function extractSupplierAttributes(array $data): array + { + return collect($data)->only([ + 'name', + 'url', + 'contact_person', + 'email', + 'phone', + 'country_id', + 'notes', + 'active', + ])->all(); + } +} diff --git a/app/Repositories/UserRepository.php b/app/Repositories/UserRepository.php index b83b31d..55fcd4a 100644 --- a/app/Repositories/UserRepository.php +++ b/app/Repositories/UserRepository.php @@ -2,60 +2,54 @@ namespace App\Repositories; -use Str; -use App\User; -use stdClass; -use Validator; -use Carbon\Carbon; +use App\Models\PaymentMethod; use App\Models\UserAccount; use App\Models\UserRegister; -use App\Models\PaymentMethod; use App\Services\UserService; +use App\User; use Illuminate\Support\Facades\Hash; +use stdClass; +use Validator; -class UserRepository extends BaseRepository { - - +class UserRepository extends BaseRepository +{ public function __construct(User $model) { $this->model = $model; } - - public function update($data) { - if($data['user_id'] === "new" || $data['user_id'] == 0){ + if ($data['user_id'] === 'new' || $data['user_id'] == 0) { $this->model = User::create([ 'email' => $data['email'], - 'password' => env('APP_KEY'), + 'password' => Hash::make(config('app.key')), ]); $this->model->payment_methods = PaymentMethod::getDefaultAsArray(); $this->model->save(); - } - else{ + } else { $this->model = $this->getById($data['user_id']); } - if(!$this->model->account_id){ - $account = new UserAccount(); - }else{ + if (! $this->model->account_id) { + $account = new UserAccount; + } else { $account = $this->model->account; } - $data['same_as_billing'] = !isset($data['same_as_billing']) ? 0 : 1; + $data['same_as_billing'] = ! isset($data['same_as_billing']) ? 0 : 1; $data['birthday_day'] = isset($data['birthday_day']) ? $data['birthday_day'] : 1; $data['birthday_month'] = isset($data['birthday_month']) ? $data['birthday_month'] : 1; $data['birthday_year'] = isset($data['birthday_year']) ? $data['birthday_year'] : 1900; - $data['birthday'] = $data['birthday_day'].".".$data['birthday_month'].".".$data['birthday_year']; - $data['birthday'] = $data['birthday'] == "1.1.1900" ? null : $data['birthday']; - + $data['birthday'] = $data['birthday_day'].'.'.$data['birthday_month'].'.'.$data['birthday_year']; + $data['birthday'] = $data['birthday'] == '1.1.1900' ? null : $data['birthday']; + $account->fill($data)->save(); - if(!$this->model->account_id){ + if (! $this->model->account_id) { $this->model->account_id = $account->id; $this->model->save(); } @@ -63,9 +57,10 @@ class UserRepository extends BaseRepository { return true; } - public function createUserRegister($data){ + public function createUserRegister($data) + { - $obj = new stdClass(); + $obj = new stdClass; $obj->email = $data['email']; $obj->password = Hash::make($data['password']); @@ -76,11 +71,11 @@ class UserRepository extends BaseRepository { $obj->first_name = $data['first_name']; $obj->last_name = $data['last_name']; $obj->data_protection = now()->toDateTimeString(); - + $obj->confirmation_code_to = date('Y-m-d H:i:s', strtotime('+1 week')); $obj->confirmation_code_remider = 0; $obj->m_sponsor = config('app.main_user_id'); - if(isset($data['from_member_id'])){ + if (isset($data['from_member_id'])) { $obj->m_sponsor = (int) str_replace('gs', '', $data['from_member_id']) - config('main.add_number_id'); } $confirmation_code = UserService::createConfirmationCode(); @@ -88,24 +83,26 @@ class UserRepository extends BaseRepository { UserRegister::create([ 'identifier' => $data['email'], 'instance' => $confirmation_code, - 'content' => $obj + 'content' => $obj, ]); + return $obj; } - public function clearUserRegister(){ - $cleartime = date('Y-m-d H:i:s', strtotime('-1 day')); //gestern -24h + public function clearUserRegister() + { + $cleartime = date('Y-m-d H:i:s', strtotime('-1 day')); // gestern -24h UserRegister::where('created_at', '<', $cleartime)->delete(); } - public function create($UserRegister){ + public function create($UserRegister) + { - $userObj = $UserRegister->content; $user = User::create([ 'email' => $userObj->email, - 'password' =>$userObj->password, + 'password' => $userObj->password, ]); $account = UserAccount::create([ @@ -122,17 +119,17 @@ class UserRepository extends BaseRepository { $user->confirmation_code_to = null; $user->confirmation_code_remider = 0; $user->confirmation_date = now(); - $user->lang = !empty(\App::getLocale()) ? \App::getLocale() : "de"; + $user->lang = ! empty(\App::getLocale()) ? \App::getLocale() : 'de'; $user->m_sponsor = $userObj->m_sponsor; $user->account_id = $account->id; $user->payment_methods = PaymentMethod::getDefaultAsArray(); $user->save(); - + $user = User::find($user->id); - //clear + // clear $identifier = $UserRegister->identifier; UserRegister::where('identifier', $identifier)->delete(); @@ -141,13 +138,13 @@ class UserRepository extends BaseRepository { public function deleteUser(User $user) { - if($user->account){ + if ($user->account) { $user->account->delete(); } - $user->email = "delete".time(); - $user->password = "delete".time(); + $user->email = 'delete'.time(); + $user->password = 'delete'.time(); $user->confirmed = 0; - $user->confirmation_code = "delete".time(); + $user->confirmation_code = 'delete'.time(); $user->confirmation_date = null; $user->confirmation_code_to = null; $user->confirmation_code_remider = 2; @@ -162,31 +159,35 @@ class UserRepository extends BaseRepository { return true; } - public function reverse_charge_validate($data, $user, $route){ + public function reverse_charge_validate($data, $user, $route) + { - if(isset($data['action']) && $data['action'] == 'reverse_charge_validate'){ - $rules = array( + if (isset($data['action']) && $data['action'] == 'reverse_charge_validate') { + $rules = [ 'tax_identification_number' => 'required', - ); + ]; $validator = Validator::make($data, $rules); if ($validator->fails()) { $data = [ 'user' => $user, ]; + return redirect($route)->withErrors($validator)->withInput($data); - } + } $ret = $this->reverse_charge_activate($data, $user); - if($ret === 'error'){ + if ($ret === 'error') { $validator = Validator::make($data, []); $validator->errors()->add('tax_identification_number_validated', __('msg.VATID_could_not_be_validated')); $data['reverse_charge'] = 0; $data = [ 'user' => $user, ]; + return redirect($route.'#user-vat-validation')->withErrors($validator)->withInput($data); } - if($ret === 'valid'){ + if ($ret === 'valid') { \Session()->flash('alert-success', __('msg.VATID_successfully_entered')); + return redirect($route.'#user-vat-validation')->withInput($data); return redirect($route.'#user-vat-validation')->withInput($data); @@ -194,20 +195,23 @@ class UserRepository extends BaseRepository { } } - public function reverse_charge_delete($data, $user, $route){ - if(isset($data['action']) && $data['action'] == 'reverse_charge_delete'){ + public function reverse_charge_delete($data, $user, $route) + { + if (isset($data['action']) && $data['action'] == 'reverse_charge_delete') { $user->account->tax_identification_number = ''; $user->account->reverse_charge = 0; - $user->account->reverse_charge_code = null; + $user->account->reverse_charge_code = null; $user->account->reverse_charge_valid = null; $user->account->save(); $data['tax_identification_number'] = ''; \Session()->flash('alert-success', __('msg.reverse_charge_procedure_and_VATID_deleted')); + return redirect($route.'#user-vat-validation')->withInput($data); } } - public function reverse_charge_activate($data, $user){ + public function reverse_charge_activate($data, $user) + { /* 'AT' => 'AT-Oesterreich', 'BE' => 'BE-Belgien', @@ -237,44 +241,43 @@ class UserRepository extends BaseRepository { 'SI' => 'SI-Slowenien', 'SK' => 'SK-Slowakei', 'XI' => 'XI-Nordirland', */ - $countryCode = 'DE'; - - if($user->account->country_id){ - $countryCode = $user->account->country->code; - } - - $vatid = str_replace(array(' ', '.', '-', ',', ', '), '', trim($data['tax_identification_number'])); - $cc = substr($vatid, 0, 2); - $vatNo = substr($vatid, 2); - - $options = [ - 'cache_wsdl' => WSDL_CACHE_NONE, - 'trace' => 1, - 'stream_context' => stream_context_create( - [ - 'ssl' => [ - 'verify_peer' => false, - 'verify_peer_name' => false, - 'allow_self_signed' => true - ] - ] - ) - ]; - - $client = new \SoapClient("https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl", $options); - $result = $client->checkVat(['countryCode' => $countryCode, 'vatNumber' => $vatNo]); - - if($result->valid == true) { - $user->account->tax_identification_number = $data['tax_identification_number']; - $user->account->reverse_charge = 1; - $user->account->reverse_charge_code = $countryCode; - $user->account->reverse_charge_valid = now(); - $user->account->save(); - return 'valid'; - } else { - return 'error'; - } - } + $countryCode = 'DE'; + if ($user->account->country_id) { + $countryCode = $user->account->country->code; + } -} \ No newline at end of file + $vatid = str_replace([' ', '.', '-', ',', ', '], '', trim($data['tax_identification_number'])); + $cc = substr($vatid, 0, 2); + $vatNo = substr($vatid, 2); + + $options = [ + 'cache_wsdl' => WSDL_CACHE_NONE, + 'trace' => 1, + 'stream_context' => stream_context_create( + [ + 'ssl' => [ + 'verify_peer' => false, + 'verify_peer_name' => false, + 'allow_self_signed' => true, + ], + ] + ), + ]; + + $client = new \SoapClient('https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl', $options); + $result = $client->checkVat(['countryCode' => $countryCode, 'vatNumber' => $vatNo]); + + if ($result->valid == true) { + $user->account->tax_identification_number = $data['tax_identification_number']; + $user->account->reverse_charge = 1; + $user->account->reverse_charge_code = $countryCode; + $user->account->reverse_charge_valid = now(); + $user->account->save(); + + return 'valid'; + } else { + return 'error'; + } + } +} diff --git a/app/Services/HTMLHelper.php b/app/Services/HTMLHelper.php index 01441c9..4a7b1aa 100644 --- a/app/Services/HTMLHelper.php +++ b/app/Services/HTMLHelper.php @@ -1,76 +1,77 @@ 'January', - 2 => 'February', - 3 => 'March', - 4 => 'April', - 5 => 'May', - 6 => 'June', - 7 => 'July', - 8 => 'August', - 9 => 'September', - 10 => 'October', - 11 => 'November', - 12 => 'December' + 2 => 'February', + 3 => 'March', + 4 => 'April', + 5 => 'May', + 6 => 'June', + 7 => 'July', + 8 => 'August', + 9 => 'September', + 10 => 'October', + 11 => 'November', + 12 => 'December', ]; - - private static $roles = [ 0 => 'Kunde', 1 => 'Redakteur', 7 => 'Admin', 8 => 'SuperAdmin', 9 => 'SySAdmin', - //10 => "API", + // 10 => "API", ]; - - public static function getMonth($i){ + public static function getMonth($i) + { return self::$months[intval($i)]; } - public static function getTransMonths($full = false){ + public static function getTransMonths($full = false) + { $ret = []; - foreach(self::$months as $key=>$val){ - $ret[$key] = trans('cal.months.'.$val); - } - if($full){ //ganzes Jahr + foreach (self::$months as $key => $val) { + $ret[$key] = trans('cal.months.'.$val); + } + if ($full) { // ganzes Jahr $ret[13] = trans('cal.months.full_year'); } - return $ret; + + return $ret; } public static function getYearRange($start = 2021) { - $end = date("Y"); + $end = date('Y'); + return array_reverse(range($start, $end)); } - public static function getRoleLabel($role_id = 0){ + public static function getRoleLabel($role_id = 0) + { return ''.self::$roles[$role_id].''; } - public static function getLabel($id){ + public static function getLabel($id) + { switch ($id) { case 0: return 'badge-default'; @@ -94,31 +95,32 @@ class HTMLHelper } - public static function getCustomListOf($name, $select){ - $ret = ""; - if($name === 'day'){ + public static function getCustomListOf($name, $select) + { + $ret = ''; + if ($name === 'day') { $start = 1; $end = 31; $values = range($start, $end); $ret = '\n'; - foreach ($values as $value){ + foreach ($values as $value) { $attr = ($value == $select) ? 'selected="selected"' : ''; $ret .= '\n'; } } - if($name === 'month'){ + if ($name === 'month') { $ret = '\n'; - foreach (self::$months as $key=>$value){ + foreach (self::$months as $key => $value) { $attr = ($key == $select) ? 'selected="selected"' : ''; $ret .= '\n'; } } - if($name === 'year'){ - $start = date("Y", strtotime("-5 years", time())); - $end = date("Y", strtotime("-90 years", time())); + if ($name === 'year') { + $start = date('Y', strtotime('-5 years', time())); + $end = date('Y', strtotime('-90 years', time())); $values = range($start, $end); $ret = '\n'; - foreach ($values as $value){ + foreach ($values as $value) { $attr = ($value == $select) ? 'selected="selected"' : ''; $ret .= '\n'; } @@ -127,14 +129,16 @@ class HTMLHelper return $ret; } - public static function setContentReadMore($content){ + + public static function setContentReadMore($content) + { $sep = '##mehr lesen##'; - if(strpos($content, $sep) !== false){ + if (strpos($content, $sep) !== false) { $name = 'collapse_'.random_int(1000, 10000); $split = explode($sep, $content); - $first = isset($split[0]) ? $split[0] : ""; - $text = isset($split[1]) ? $split[1] : ""; + $first = isset($split[0]) ? $split[0] : ''; + $text = isset($split[1]) ? $split[1] : ''; $content = $first; $content .= '
+@endsection diff --git a/resources/views/admin/inventory/locations/index.blade.php b/resources/views/admin/inventory/locations/index.blade.php new file mode 100644 index 0000000..04d599d --- /dev/null +++ b/resources/views/admin/inventory/locations/index.blade.php @@ -0,0 +1,60 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{ __('Lagerorte') }} + {{ __('Neu anlegen') }} +
+
+ + + + + + + + + + + @foreach($values as $value) + + + + + + + @endforeach + +
 {{ __('Name') }}{{ __('Status') }}
+ + + + {{ $value->name }} + @if($value->active) + + @else + + @endif + +
+ @csrf + @method('DELETE') + +
+
+
+
+ + +@endsection diff --git a/resources/views/admin/inventory/material-qualities/form.blade.php b/resources/views/admin/inventory/material-qualities/form.blade.php new file mode 100644 index 0000000..7de23ad --- /dev/null +++ b/resources/views/admin/inventory/material-qualities/form.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.layout-2') + +@section('content') +
+
{{ $model->exists ? __('Rohstoffqualität bearbeiten') : __('Rohstoffqualität anlegen') }}
+
+
+ @csrf + @if($model->exists) + @method('PUT') + @endif + +
+ + + @error('name') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('pos') +
{{ $message }}
+ @enderror +
+ + + {{ __('Zurück') }} +
+
+
+@endsection diff --git a/resources/views/admin/inventory/material-qualities/index.blade.php b/resources/views/admin/inventory/material-qualities/index.blade.php new file mode 100644 index 0000000..f226ec5 --- /dev/null +++ b/resources/views/admin/inventory/material-qualities/index.blade.php @@ -0,0 +1,53 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{ __('Rohstoffqualität') }} + {{ __('Neu anlegen') }} +
+
+ + + + + + + + + + + @foreach($values as $value) + + + + + + + @endforeach + +
 {{ __('Pos') }}{{ __('Name') }}
+ + + + {{ $value->pos }}{{ $value->name }} +
+ @csrf + @method('DELETE') + +
+
+
+
+ +@endsection diff --git a/resources/views/admin/inventory/packaging-items/form.blade.php b/resources/views/admin/inventory/packaging-items/form.blade.php new file mode 100644 index 0000000..f1bed58 --- /dev/null +++ b/resources/views/admin/inventory/packaging-items/form.blade.php @@ -0,0 +1,108 @@ +@php + $isShipping = ($category ?? 'packaging') === 'shipping'; + $pageLabel = $isShipping ? __('Versandverpackung') : __('Produktverpackung'); +@endphp + +@extends('layouts.layout-2') + +@section('content') +
+
{{ $model->exists ? $pageLabel . ' ' . __('bearbeiten') : $pageLabel . ' ' . __('anlegen') }}
+
+
+ @csrf + @if($model->exists) + @method('PUT') + @endif + + + +
+ + + @error('name') +
{{ $message }}
+ @enderror +
+ +
+ +
+ +
+ @error('packaging_material_id') +
{{ $message }}
+ @enderror +
+ +
+
+ + + @error('weight_grams') +
{{ $message }}
+ @enderror +
+
+ + + @error('min_stock_alert') +
{{ $message }}
+ @enderror +
+
+ +
+ +
+ +
+ @error('supplier_id') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('url') +
{{ $message }}
+ @enderror +
+ +
+ +
+ + + {{ __('Zurück') }} +
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/admin/inventory/packaging-items/index.blade.php b/resources/views/admin/inventory/packaging-items/index.blade.php new file mode 100644 index 0000000..5213805 --- /dev/null +++ b/resources/views/admin/inventory/packaging-items/index.blade.php @@ -0,0 +1,73 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{ $pageTitle }} + {{ __('Neu anlegen') }} +
+
+ + + + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + + + @endforeach + +
 {{ __('Name') }}{{ __('Material') }}{{ __('Gewicht (g)') }}{{ __('Lieferant') }}{{ __('URL') }}{{ __('Status') }}
+ + + + {{ $value->name }}{{ $value->packagingMaterial?->name ?? '—' }}{{ $value->weight_grams }}{{ $value->supplier?->name ?? '—' }} + @if($value->url) + + @else + — + @endif + + @if($value->active) + + @else + + @endif + +
+ @csrf + @method('DELETE') + +
+
+
+
+ +@endsection diff --git a/resources/views/admin/inventory/packaging-materials/form.blade.php b/resources/views/admin/inventory/packaging-materials/form.blade.php new file mode 100644 index 0000000..397b7c7 --- /dev/null +++ b/resources/views/admin/inventory/packaging-materials/form.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.layout-2') + +@section('content') +
+
{{ $model->exists ? __('Verpackungsmaterial bearbeiten') : __('Verpackungsmaterial anlegen') }}
+
+
+ @csrf + @if($model->exists) + @method('PUT') + @endif + +
+ + + @error('name') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('pos') +
{{ $message }}
+ @enderror +
+ + + {{ __('Zurück') }} +
+
+
+@endsection diff --git a/resources/views/admin/inventory/packaging-materials/index.blade.php b/resources/views/admin/inventory/packaging-materials/index.blade.php new file mode 100644 index 0000000..ce19f64 --- /dev/null +++ b/resources/views/admin/inventory/packaging-materials/index.blade.php @@ -0,0 +1,53 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{ __('Verpackungsmaterial') }} + {{ __('Neu anlegen') }} +
+
+ + + + + + + + + + + @foreach($values as $value) + + + + + + + @endforeach + +
 {{ __('Pos') }}{{ __('Name') }}
+ + + + {{ $value->pos }}{{ $value->name }} +
+ @csrf + @method('DELETE') + +
+
+
+
+ +@endsection diff --git a/resources/views/admin/inventory/productions/create.blade.php b/resources/views/admin/inventory/productions/create.blade.php new file mode 100644 index 0000000..4a1ac94 --- /dev/null +++ b/resources/views/admin/inventory/productions/create.blade.php @@ -0,0 +1,191 @@ +@extends('layouts.layout-2') + +@section('content') +

{{ __('Neue Produktion') }}

+ +
+
+
+ @csrf +
+
+ + + @error('product_id') +
{{ $message }}
+ @enderror +
+
+ + + @error('location_id') +
{{ $message }}
+ @enderror +
+
+
+
+ + + @error('produced_at') +
{{ $message }}
+ @enderror +
+
+ + + @error('quantity') +
{{ $message }}
+ @enderror +
+
+ + + +
+ + +
+ + + {{ __('Abbrechen') }} +
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/admin/inventory/productions/edit.blade.php b/resources/views/admin/inventory/productions/edit.blade.php new file mode 100644 index 0000000..035b449 --- /dev/null +++ b/resources/views/admin/inventory/productions/edit.blade.php @@ -0,0 +1,203 @@ +@extends('layouts.layout-2') + +@section('content') +

{{ __('Produktion bearbeiten') }} #{{ $model->id }}

+ +
+
+
+ @csrf + @method('PUT') +
+
+ + + @error('product_id') +
{{ $message }}
+ @enderror +
+
+ + + @error('location_id') +
{{ $message }}
+ @enderror +
+
+
+
+ + + @error('produced_at') +
{{ $message }}
+ @enderror +
+
+ + + @error('quantity') +
{{ $message }}
+ @enderror +
+
+ + + +
+ + +
+ + + {{ __('Abbrechen') }} +
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/admin/inventory/productions/index.blade.php b/resources/views/admin/inventory/productions/index.blade.php new file mode 100644 index 0000000..2d62b30 --- /dev/null +++ b/resources/views/admin/inventory/productions/index.blade.php @@ -0,0 +1,62 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{ __('Produktionen') }} + {{ __('Neue Produktion') }} +
+
+ + + + + + + + + + + + + @foreach($values as $row) + + + + + + + + + @endforeach + +
{{ __('Datum') }}{{ __('Produkt') }}{{ __('Stück') }}{{ __('Standort') }}{{ __('MHD-Hinweis') }}
{{ $row->produced_at?->format('d.m.Y') }}{{ $row->product?->name ?? '—' }}{{ $row->quantity }}{{ $row->location?->name ?? '—' }} + @if($row->mhd_warning) + {{ __('Ja') }} + @else + + @endif + + + + + + + + + + +
+
+
+ +@endsection diff --git a/resources/views/admin/inventory/productions/show.blade.php b/resources/views/admin/inventory/productions/show.blade.php new file mode 100644 index 0000000..5f2a24b --- /dev/null +++ b/resources/views/admin/inventory/productions/show.blade.php @@ -0,0 +1,104 @@ +@php + /** @var \App\Models\Production $model */ +@endphp + +@extends('layouts.layout-2') + +@section('content') +

{{ __('Produktion') }} #{{ $model->id }}

+ +
+
+ {{ __('Übersicht') }} + +
+
+
+
{{ __('Produkt') }}
+
{{ $model->product?->name ?? '—' }}
+
{{ __('Produktionsdatum') }}
+
{{ $model->produced_at?->format('d.m.Y') }}
+
{{ __('Stückzahl') }}
+
{{ $model->quantity }}
+
{{ __('Standort') }}
+
{{ $model->location?->name ?? '—' }}
+
{{ __('Erfasst von') }}
+
{{ $model->producedByUser?->getFullName(false) ?: $model->producedByUser?->email ?? '—' }}
+
{{ __('MHD-Hinweis') }}
+
+ @if($model->mhd_warning) + {{ __('Rohstoff-MHD kürzer als Produkt-MHD') }} + @else + — + @endif +
+ @if($model->notes) +
{{ __('Notizen') }}
+
{{ $model->notes }}
+ @endif +
+
+
+ +
+
{{ __('Rohstoff-Verbrauch (Chargen)') }}
+
+
+ + + + + + + + + + @foreach($model->productionIngredients as $line) + + + + + + @endforeach + +
{{ __('Inhaltsstoff') }}{{ __('Charge / Wareneingang') }}{{ __('Menge (g)') }}
{{ $line->ingredient?->name ?? '—' }} + #{{ $line->stock_entry_id }} + @if($line->stockEntry?->batch_number) + — {{ $line->stockEntry->batch_number }} + @endif + @if($line->stockEntry?->best_before) + (MHD {{ $line->stockEntry->best_before->format('d.m.Y') }}) + @endif + {{ \App\Services\Util::formatNumber($line->quantity_used) }}
+
+
+
+ +
+
{{ __('Verpackung (Snapshot)') }}
+
+
+ + + + + + + + + @foreach($model->productionPackagings as $line) + + + + + @endforeach + +
{{ __('Artikel') }}{{ __('Verbrauch (Stk.)') }}
{{ $line->packagingItem?->name ?? '—' }}{{ $line->quantity_used }}
+
+
+
+@endsection diff --git a/resources/views/admin/inventory/stock-entries/_form.blade.php b/resources/views/admin/inventory/stock-entries/_form.blade.php new file mode 100644 index 0000000..395f485 --- /dev/null +++ b/resources/views/admin/inventory/stock-entries/_form.blade.php @@ -0,0 +1,111 @@ +@php + /** @var \App\Models\StockEntry $model */ + $isEdit = $model->exists; +@endphp + +
+ + + @error('entry_type') +
{{ $message }}
+ @enderror +
+ + + + + +
+ + + @error('supplier_id') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('location_id') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('ordered_at') +
{{ $message }}
+ @enderror +
+ +
+ + + {{ __('Bei Rohstoff in Gramm, bei Verpackung in Stück.') }} + @error('ordered_quantity') +
{{ $message }}
+ @enderror +
+ + + + diff --git a/resources/views/admin/inventory/stock-entries/_scripts.blade.php b/resources/views/admin/inventory/stock-entries/_scripts.blade.php new file mode 100644 index 0000000..600a4d6 --- /dev/null +++ b/resources/views/admin/inventory/stock-entries/_scripts.blade.php @@ -0,0 +1,79 @@ + diff --git a/resources/views/admin/inventory/stock-entries/create.blade.php b/resources/views/admin/inventory/stock-entries/create.blade.php new file mode 100644 index 0000000..caa5142 --- /dev/null +++ b/resources/views/admin/inventory/stock-entries/create.blade.php @@ -0,0 +1,19 @@ +@extends('layouts.layout-2') + +@section('content') +

{{ __('Neuer Einkauf (Stufe 1)') }}

+
+
+
+ @csrf + @include('admin.inventory.stock-entries._form') + + {{ __('Zurück') }} +
+
+
+@endsection + +@section('scripts') + @include('admin.inventory.stock-entries._scripts') +@endsection diff --git a/resources/views/admin/inventory/stock-entries/edit.blade.php b/resources/views/admin/inventory/stock-entries/edit.blade.php new file mode 100644 index 0000000..def6a99 --- /dev/null +++ b/resources/views/admin/inventory/stock-entries/edit.blade.php @@ -0,0 +1,20 @@ +@extends('layouts.layout-2') + +@section('content') +

{{ __('Bestellung bearbeiten') }}

+
+
+
+ @csrf + @method('PUT') + @include('admin.inventory.stock-entries._form') + + {{ __('Zurück') }} +
+
+
+@endsection + +@section('scripts') + @include('admin.inventory.stock-entries._scripts') +@endsection diff --git a/resources/views/admin/inventory/stock-entries/index.blade.php b/resources/views/admin/inventory/stock-entries/index.blade.php new file mode 100644 index 0000000..67aea9f --- /dev/null +++ b/resources/views/admin/inventory/stock-entries/index.blade.php @@ -0,0 +1,85 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{ __('Wareneingang') }} + @if(Auth::user()->isAdmin()) + {{ __('Neuer Einkauf') }} + @endif +
+
+ + + + + + + + + + + + + + @foreach($values as $row) + + + + + + + + + + @endforeach + +
{{ __('Status') }}{{ __('Bestellt') }}{{ __('Art') }}{{ __('Artikel') }}{{ __('Lieferant') }}{{ __('Menge') }}
+ @if($row->status === 'pending') + {{ __('Offen') }} + @else + {{ __('Eingegangen') }} + @endif + {{ $row->ordered_at?->format('d.m.Y') }}{{ $entryTypeLabels[$row->entry_type] ?? $row->entry_type }} + @if($row->entry_type === 'ingredient' && $row->ingredient) + {{ $row->ingredient->name }} + @elseif($row->packagingItem) + {{ $row->packagingItem->name }} + @else + — + @endif + {{ $row->supplier?->name ?? '—' }} + @if($row->unit === 'gram') + {{ \App\Services\Util::formatNumber($row->ordered_quantity) }} g + @else + {{ \App\Services\Util::formatNumber($row->ordered_quantity, 0) }} {{ __('Stk.') }} + @endif + + + + + @if(Auth::user()->isAdmin() && $row->status === 'pending') + + + +
+ @csrf + @method('DELETE') + +
+ @endif +
+
+
+ +@endsection diff --git a/resources/views/admin/inventory/stock-entries/show.blade.php b/resources/views/admin/inventory/stock-entries/show.blade.php new file mode 100644 index 0000000..6476a0e --- /dev/null +++ b/resources/views/admin/inventory/stock-entries/show.blade.php @@ -0,0 +1,191 @@ +@php + /** @var \App\Models\StockEntry $model */ +@endphp + +@extends('layouts.layout-2') + +@section('content') +

{{ __('Wareneingang') }}

+ +
+
+ + @if($model->status === 'pending') + {{ __('Offen') }} + @else + {{ __('Eingegangen') }} + @endif + + + {{ __('Zurück zur Liste') }} + @if(Auth::user()->isAdmin() && $model->isPending()) + {{ __('Bearbeiten') }} + @endif + +
+
+
+
{{ __('Art') }}
+
{{ $entryTypeLabels[$model->entry_type] ?? $model->entry_type }}
+ +
{{ __('Artikel') }}
+
+ @if($model->entry_type === 'ingredient' && $model->ingredient) + {{ $model->ingredient->name }}@if($model->ingredient->inci) ({{ $model->ingredient->inci }})@endif + @elseif($model->packagingItem) + {{ $model->packagingItem->name }} + @if($model->packagingItem->packagingMaterial) + — {{ $model->packagingItem->packagingMaterial->name }} + @endif + @else + — + @endif +
+ +
{{ __('Lieferant') }}
+
{{ $model->supplier?->name ?? '—' }}
+ +
{{ __('Lagerort') }}
+
{{ $model->location?->name ?? '—' }}
+ +
{{ __('Bestelldatum') }}
+
{{ $model->ordered_at?->format('d.m.Y') }}
+ +
{{ __('Bestellte Menge') }}
+
+ @if($model->unit === 'gram') + {{ \App\Services\Util::formatNumber($model->ordered_quantity) }} g + @else + {{ \App\Services\Util::formatNumber($model->ordered_quantity, 0) }} {{ __('Stk.') }} + @endif +
+ + @if(Auth::user()->isAdmin()) +
{{ __('Preise (Stufe 1)') }}
+
+ @if($model->entry_type === 'ingredient') + @if($model->price_per_kg !== null) + {{ \App\Services\Util::formatNumber($model->price_per_kg) }} € / kg + @else + — + @endif + @else + @if($model->price_total !== null) + {{ \App\Services\Util::formatNumber($model->price_total) }} € {{ __('netto') }} + @else + — + @endif + @endif +
+ @endif + +
{{ __('Bestellt von') }}
+
{{ $model->orderedByUser?->getFullName(false) ?: $model->orderedByUser?->email ?? '—' }}
+ + @if($model->isReceived()) +
{{ __('Eingangsdatum') }}
+
{{ $model->received_at?->format('d.m.Y') }}
+ +
{{ __('Eingegangene Menge') }}
+
+ @if($model->unit === 'gram') + {{ \App\Services\Util::formatNumber($model->received_quantity) }} g + @else + {{ \App\Services\Util::formatNumber($model->received_quantity, 0) }} {{ __('Stk.') }} + @endif +
+ + @if($model->entry_type === 'ingredient') +
{{ __('Charge') }}
+
{{ $model->batch_number ?: '—' }}
+ +
{{ __('Mindesthaltbarkeit') }}
+
{{ $model->best_before?->format('d.m.Y') ?? '—' }}
+ +
{{ __('Materialqualität') }}
+
{{ $model->quality?->name ?? '—' }}
+ @endif + +
{{ __('Eingebucht von') }}
+
{{ $model->receivedByUser?->getFullName(false) ?: $model->receivedByUser?->email ?? '—' }}
+ @endif +
+
+
+ + @if($model->isPending()) +
+
{{ __('Wareneingang buchen (Stufe 2)') }}
+
+
+ @csrf + @method('PUT') + +
+ + + @error('received_at') +
{{ $message }}
+ @enderror +
+ +
+ + + + @if($model->unit === 'gram') + {{ __('Angabe in Gramm') }} + @else + {{ __('Angabe in Stück') }} + @endif + + @error('received_quantity') +
{{ $message }}
+ @enderror +
+ + @if($model->entry_type === 'ingredient') +
+ + + @error('batch_number') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('best_before') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('quality_id') +
{{ $message }}
+ @enderror +
+ @endif + + +
+
+
+ @endif +@endsection diff --git a/resources/views/admin/inventory/supplier-categories/form.blade.php b/resources/views/admin/inventory/supplier-categories/form.blade.php new file mode 100644 index 0000000..e162108 --- /dev/null +++ b/resources/views/admin/inventory/supplier-categories/form.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.layout-2') + +@section('content') +
+
{{ $model->exists ? __('Lieferanten-Kategorie bearbeiten') : __('Lieferanten-Kategorie anlegen') }}
+
+
+ @csrf + @if($model->exists) + @method('PUT') + @endif + +
+ + + @error('name') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('pos') +
{{ $message }}
+ @enderror +
+ + + {{ __('Zurück') }} +
+
+
+@endsection diff --git a/resources/views/admin/inventory/supplier-categories/index.blade.php b/resources/views/admin/inventory/supplier-categories/index.blade.php new file mode 100644 index 0000000..be0ee8f --- /dev/null +++ b/resources/views/admin/inventory/supplier-categories/index.blade.php @@ -0,0 +1,53 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{ __('Lieferanten-Kategorien') }} + {{ __('Neu anlegen') }} +
+
+ + + + + + + + + + + @foreach($values as $value) + + + + + + + @endforeach + +
 {{ __('Pos') }}{{ __('Name') }}
+ + + + {{ $value->pos }}{{ $value->name }} +
+ @csrf + @method('DELETE') + +
+
+
+
+ +@endsection diff --git a/resources/views/admin/inventory/suppliers/form.blade.php b/resources/views/admin/inventory/suppliers/form.blade.php new file mode 100644 index 0000000..0868d98 --- /dev/null +++ b/resources/views/admin/inventory/suppliers/form.blade.php @@ -0,0 +1,125 @@ +@extends('layouts.layout-2') + +@section('content') + @php + $selectedCategoryIds = old('supplier_category_ids', $model->exists ? $model->supplierCategories->pluck('id')->all() : []); + @endphp +
+
{{ $model->exists ? __('Lieferant bearbeiten') : __('Lieferant anlegen') }}
+
+
+ @csrf + @if($model->exists) + @method('PUT') + @endif + +
+ + + @error('name') +
{{ $message }}
+ @enderror +
+ +
+ +
+ +
+ @error('supplier_category_ids') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('country_id') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('url') +
{{ $message }}
+ @enderror +
+ +
+
+ + + @error('contact_person') +
{{ $message }}
+ @enderror +
+
+ + + @error('email') +
{{ $message }}
+ @enderror +
+
+ +
+ + + @error('phone') +
{{ $message }}
+ @enderror +
+ +
+ + + @error('notes') +
{{ $message }}
+ @enderror +
+ +
+ +
+ + + {{ __('Zurück') }} +
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/admin/inventory/suppliers/index.blade.php b/resources/views/admin/inventory/suppliers/index.blade.php new file mode 100644 index 0000000..8d45215 --- /dev/null +++ b/resources/views/admin/inventory/suppliers/index.blade.php @@ -0,0 +1,67 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{ __('Lieferanten') }} + {{ __('Neu anlegen') }} +
+
+ + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + @endforeach + +
 {{ __('Name') }}{{ __('Land') }}{{ __('Kategorien') }}{{ __('Status') }}
+ + + + {{ $value->name }}{{ $value->country?->de ?? '—' }} + @foreach($value->supplierCategories as $cat) + {{ $cat->name }} + @endforeach + + @if($value->active) + + @else + + @endif + +
+ @csrf + @method('DELETE') + +
+
+
+
+ +@endsection diff --git a/resources/views/admin/payment/reminder/index.blade.php b/resources/views/admin/payment/reminder/index.blade.php index fe3904c..83e63f9 100644 --- a/resources/views/admin/payment/reminder/index.blade.php +++ b/resources/views/admin/payment/reminder/index.blade.php @@ -2,275 +2,284 @@ @section('content') - + .info-box .workflow-steps { + background: rgba(255, 255, 255, 0.1); + border-radius: 8px; + padding: 15px; + margin-top: 15px; + } + + .info-box .workflow-steps h6 { + color: white; + margin-bottom: 10px; + font-weight: 600; + } + + .info-box .step { + display: flex; + align-items: center; + margin-bottom: 8px; + font-size: 14px; + } + + .info-box .step-number { + background: rgba(255, 255, 255, 0.2); + border-radius: 50%; + width: 24px; + height: 24px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; + font-weight: bold; + font-size: 12px; + } + + .info-box .cron-info { + background: rgba(255, 255, 255, 0.1); + border-radius: 8px; + padding: 15px; + margin-top: 15px; + font-family: 'Courier New', monospace; + font-size: 13px; + } + + .info-box .cron-info code { + background: rgba(0, 0, 0, 0.3); + padding: 2px 6px; + border-radius: 4px; + color: #ffd700; + } + -
-
-

- Erinnerungen -

- - -
- - - -
- - - - - - - - - - - - - - @foreach($reminders as $reminder) - - - - - - - - - @endforeach - -
#{{__('Titel')}}{{__('Interval') }}{{__('Typ') }}{{__('Action') }}{{__('Aktiv') }}
- - {{ $reminder->title }}{{ $reminder->interval }}{{ $reminder->getClearingtype() }}{{ $reminder->action }}{!! get_active_badge($reminder->active) !!}
-
- +
+
+

+ Erinnerungen +

+ - + +
+ + + +
+ + + + + + + + + + + + + + @foreach ($reminders as $reminder) + + + + + + + + + @endforeach + +
#{{ __('Titel') }}{{ __('Interval') }}{{ __('Typ') }}{{ __('Action') }}{{ __('Aktiv') }}
+ + {{ $reminder->title }}{{ $reminder->interval }}{{ $reminder->getClearingtype() }}{{ $reminder->action }}{!! get_active_badge($reminder->active) !!}
+
+
Das Intervall bezieht sich immer auf das Datum der Bestellung, bzw. wann wurde die letzen + Erinnerung gesendet und + die Differenz zum nächtem Intervall.
+ (Beispiel: 2. Zahlungserinnerung am 01.10, 2.Zahlsintervall 30 - 3.Zahlsintervall 50 = 20 Tage, nächste + Erinnerung am 20.10 in 19 Tagen) +

+
+
+
@@ -282,7 +291,8 @@
{{ $totalPayments }} offene Zahlungen - {{ number_format($totalAmount, 2, ',', '.') }} € Gesamtbetrag + {{ number_format($totalAmount, 2, ',', '.') }} € + Gesamtbetrag
- - + +
@@ -312,127 +322,129 @@ @forelse($detailedData as $payment) - - - - - - - - - - - + + + - + + + + + + + - + keine Zahlung + + + + + @empty - - - + + + @endforelse
- - - - {{ $payment['order_id'] }} - - - - {{ number_format($payment['amount']/100, 2, ',', '.') }} € - - {{ $payment['created_at'] }} - @if($payment['days_old'] > 30) - {{ $payment['days_old'] }} Tage - @elseif($payment['days_old'] > 14) - {{ $payment['days_old'] }} Tage - @else - {{ $payment['days_old'] }} Tage - @endif - {{ $payment['name'] }}{{ $payment['email'] }} - @if($payment['clearingtype'] == 'fnc') - {{ $payment['clearingtype_name'] }} - @else - {{ $payment['clearingtype_name'] }} - @endif - {!! $payment['shipped'] !!} - @if($payment['reminder'] > 0) -
- - - - {{ $payment['reminder'] }}. - @if($payment['reminder'] == 1) - - @elseif($payment['reminder'] >= 2) - - @endif - - - - @if($payment['reminder_date']) - - - {{ \Carbon\Carbon::parse($payment['reminder_date'])->diffForHumans() }} - - @endif - - - @if(isset($payment['countdown']) && $payment['countdown']) - @if($payment['countdown']['type'] == 'countdown') - - - {{ $payment['countdown']['days_left'] }} Tage - - @elseif($payment['countdown']['type'] == 'overdue') - - - Fällig! - - @elseif($payment['countdown']['type'] == 'completed') - - - Alle gesendet - - @endif - @endif -
- @else - - - 0 +
+ + + + {{ $payment['order_id'] }} + + + + {{ number_format($payment['amount'] / 100, 2, ',', '.') }} € - @endif - -
- +
{{ $payment['created_at'] }} + @if ($payment['days_old'] > 30) + {{ $payment['days_old'] }} Tage + @elseif($payment['days_old'] > 14) + {{ $payment['days_old'] }} Tage + @else + {{ $payment['days_old'] }} Tage + @endif + {{ $payment['name'] }}{{ $payment['email'] }} + @if ($payment['clearingtype'] == 'fnc') + {{ $payment['clearingtype_name'] }} + @else + {{ $payment['clearingtype_name'] }} + @endif + {!! $payment['shipped'] !!} + @if ($payment['reminder'] > 0) +
+ + + + {{ $payment['reminder'] }}. + @if ($payment['reminder'] == 1) + + @elseif($payment['reminder'] >= 2) + + @endif + + + + @if ($payment['reminder_date']) + + + {{ \Carbon\Carbon::parse($payment['reminder_date'])->diffForHumans() }} + + @endif + + + @if (isset($payment['countdown']) && $payment['countdown']) + @if ($payment['countdown']['type'] == 'countdown') + + + {{ $payment['countdown']['days_left'] }} + Tage + + @elseif($payment['countdown']['type'] == 'overdue') + + + Fällig! + + @elseif($payment['countdown']['type'] == 'completed') + + + Alle gesendet + + @endif + @endif +
+ @else + + + 0 + + @endif +
+ - -
- Keine offenen Zahlungen gefunden -
+ Keine offenen Zahlungen gefunden +
@@ -445,7 +457,7 @@ -{{--
+ {{--
Zahlungserinnerungen System - Übersicht & Funktionsweise
@@ -527,56 +539,54 @@
--}} -
- + function viewDetails(paymentId) { + // TODO: Implementiere Detail-Ansicht + alert('Details für Payment ID ' + paymentId + ' würden angezeigt werden'); + } + @endsection - - diff --git a/resources/views/admin/product/edit.blade.php b/resources/views/admin/product/edit.blade.php index 246326f..349b6e9 100755 --- a/resources/views/admin/product/edit.blade.php +++ b/resources/views/admin/product/edit.blade.php @@ -42,3 +42,414 @@ @include('admin.product.upload_whitelabel') @endsection + +@section('scripts') +@php + $ingredient_catalog_for_js = $ingredient_catalog->keyBy('id')->map(function ($item) { + return [ + 'id' => $item->id, + 'name' => $item->name, + 'inci' => $item->inci, + 'effect' => $item->effect, + 'default_factor' => $item->default_factor, + 'quality_name' => $item->materialQuality?->name ?? '', + ]; + }); + $packaging_catalog_for_js = $packaging_catalog->keyBy('id')->map(function ($item) { + return [ + 'name' => $item->name, + 'weight_grams' => $item->weight_grams, + 'material_name' => $item->packagingMaterial?->name ?? '', + ]; + }); +@endphp + + +@endsection diff --git a/resources/views/admin/product/form.blade.php b/resources/views/admin/product/form.blade.php index 3dcaf6c..6ae823c 100755 --- a/resources/views/admin/product/form.blade.php +++ b/resources/views/admin/product/form.blade.php @@ -1,5 +1,24 @@ + +
-
+
{{ __('Produkt') }} @@ -10,13 +29,13 @@
- {{ Form::text('name', $product->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required')) }} + {{ Form::text('name', $product->name, ['placeholder' => __('Name'), 'class' => 'form-control', 'id' => 'name', 'required']) }}
- {{--
+ {{--
{{ Form::select('show_at', \App\Services\Type::$showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }} @@ -27,57 +46,58 @@
- + {!! HTMLHelper::getCategoriesOptions($product->categories()->pluck('category_id')->toArray(), false) !!}
- {{ Form::text('pos', $product->pos, array('placeholder'=>__('1, 2, 3, etc'), 'class'=>'form-control', 'id'=>'pos')) }} + {{ Form::text('pos', $product->pos, ['placeholder' => __('1, 2, 3, etc'), 'class' => 'form-control', 'id' => 'pos']) }}
- {{ Form::select('show_on[]', \App\Services\Type::$showONs, $product->show_on, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_on', 'multiple') ) }} + {{ Form::select('show_on[]', \App\Services\Type::$showONs, $product->show_on, ['data-live-search' => 'false', 'class' => 'selectpicker', 'id' => 'show_on', 'multiple']) }}
- {{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Produktbeschreibung'), 'class'=>'form-control summernote', 'id'=>'copy')) }} + {{ Form::textarea('copy', $product->copy, ['placeholder' => __('Produktbeschreibung'), 'class' => 'form-control summernote', 'id' => 'copy']) }}
- {{ Form::textarea('short_copy', $product->short_copy , array('placeholder'=>__('Kurzbeschreibung'), 'class'=>'form-control summernote', 'id'=>'short_copy')) }} + {{ Form::textarea('short_copy', $product->short_copy, ['placeholder' => __('Kurzbeschreibung'), 'class' => 'form-control summernote', 'id' => 'short_copy']) }}
- {{ Form::text('max_buy_num', $product->max_buy_num, array('placeholder'=>__('in Stück'), 'class'=>'form-control', 'id'=>'max_buy_num')) }} + {{ Form::text('max_buy_num', $product->max_buy_num, ['placeholder' => __('in Stück'), 'class' => 'form-control', 'id' => 'max_buy_num']) }}

  - -
+
+
-
+
{{ __('Preise in EUR') }}
@@ -85,18 +105,18 @@
- {{ Form::text('price', $product->getFormattedPrice(), array('placeholder'=>__('Preis VK in EUR (Brutto)'), 'class'=>'form-control', 'id'=>'price')) }} + {{ Form::text('price', $product->getFormattedPrice(), ['placeholder' => __('Preis VK in EUR (Brutto)'), 'class' => 'form-control', 'id' => 'price']) }}
- {{ Form::text('tax', $product->getFormattedTax(), array('placeholder'=>__('MwSt in %'), 'class'=>'form-control', 'id'=>'tax')) }} + {{ Form::text('tax', $product->getFormattedTax(), ['placeholder' => __('MwSt in %'), 'class' => 'form-control', 'id' => 'tax']) }}
- {{ Form::text('price_old', $product->getFormattedPriceOld(), array('placeholder'=>__('Streichpreis'), 'class'=>'form-control', 'id'=>'price_old')) }} + {{ Form::text('price_old', $product->getFormattedPriceOld(), ['placeholder' => __('Streichpreis'), 'class' => 'form-control', 'id' => 'price_old']) }}
@@ -104,7 +124,7 @@
- {{ Form::text('weight', $product->weight, array('placeholder'=>__('Gewicht in g'), 'class'=>'form-control', 'id'=>'weight')) }} + {{ Form::text('weight', $product->weight, ['placeholder' => __('Gewicht in g'), 'class' => 'form-control', 'id' => 'weight']) }}
{{--
@@ -113,11 +133,11 @@ --}}
- {{ Form::text('amount', $product->amount, array('placeholder'=>__('Anzahl/Verfügbarkeit'), 'class'=>'form-control', 'id'=>'amount')) }} + {{ Form::text('amount', $product->amount, ['placeholder' => __('Anzahl/Verfügbarkeit'), 'class' => 'form-control', 'id' => 'amount']) }}
- {{ Form::text('price_ek', $product->getFormattedPriceEk(), array('placeholder'=>__('Preis EK in EUR'), 'class'=>'form-control', 'id'=>'price_ek')) }} + {{ Form::text('price_ek', $product->getFormattedPriceEk(), ['placeholder' => __('Preis EK in EUR'), 'class' => 'form-control', 'id' => 'price_ek']) }}
@@ -126,51 +146,51 @@
- {{ Form::text('value_commission', $product->getFormattedValueCommission(), array('placeholder'=>__('Einzelrabatt in %'), 'class'=>'form-control', 'id'=>'value_commission')) }} + {{ Form::text('value_commission', $product->getFormattedValueCommission(), ['placeholder' => __('Einzelrabatt in %'), 'class' => 'form-control', 'id' => 'value_commission']) }}
- - {{ Form::text('partner_commission', $product->getFormattedPartnerCommission(), array('placeholder'=>__('Vertriebspartner Einzelrabatt in %'), 'class'=>'form-control', 'id'=>'partner_commission')) }} + + {{ Form::text('partner_commission', $product->getFormattedPartnerCommission(), ['placeholder' => __('Vertriebspartner Einzelrabatt in %'), 'class' => 'form-control', 'id' => 'partner_commission']) }}
-
-
-   - -
+
+
+   + +
-
+
- Landesspezifische Preise + Landesspezifische Preise
- @foreach($country_for_prices as $country) - + @foreach ($country_for_prices as $country) {{ Form::hidden('country_prices[]', $country->id) }}
-
{{$country->de}}
+
{{ $country->de }}
- @if($country->own_eur) + @if ($country->own_eur)
@@ -178,30 +198,36 @@
- {{ Form::text('c_price['.$country->id.']', formatNumber($product->getCPrice($country->id)), array('placeholder'=>__('Preis VK in EUR Brutto'), 'class'=>'form-control', 'id'=>'c_price_'.$country->id)) }} + {{ Form::text('c_price[' . $country->id . ']', formatNumber($product->getCPrice($country->id)), ['placeholder' => __('Preis VK in EUR Brutto'), 'class' => 'form-control', 'id' => 'c_price_' . $country->id]) }}
- {{ Form::text('c_tax['.$country->id.']', formatNumber($product->getCTax($country->id)), array('placeholder'=>__('MwSt in %'), 'class'=>'form-control', 'id'=>'c_tax'.$country->id)) }} + {{ Form::text('c_tax[' . $country->id . ']', formatNumber($product->getCTax($country->id)), ['placeholder' => __('MwSt in %'), 'class' => 'form-control', 'id' => 'c_tax' . $country->id]) }}
- {{ Form::text('c_price_old['.$country->id.']', formatNumber($product->getCPriceOld($country->id)), array('placeholder'=>__('Streichpreis'), 'class'=>'form-control', 'id'=>'c_price_old'.$country->id)) }} + {{ Form::text('c_price_old[' . $country->id . ']', formatNumber($product->getCPriceOld($country->id)), ['placeholder' => __('Streichpreis'), 'class' => 'form-control', 'id' => 'c_price_old' . $country->id]) }}
@endif - @if($country->currency) + @if ($country->currency)
-

@if($country->currency_calc) Preis Berechnung automatisch @else Preis manuell - angegeben @endif

+

+ @if ($country->currency_calc) + Preis Berechnung automatisch + @else + Preis manuell + angegeben + @endif +

- @if($country->currency_calc) + @if ($country->currency_calc) {{-- NUR Anzeige vom automatisch berechneten Preis currency_faktor Auf Basis vom price @@ -209,7 +235,7 @@ --}}
- {{ Form::text('c_currency['.$country->id.']', formatNumber($product->getRealPrice($country) * $country->currency_faktor), array('class'=>'form-control', 'readonly')) }} + {{ Form::text('c_currency[' . $country->id . ']', formatNumber($product->getRealPrice($country) * $country->currency_faktor), ['class' => 'form-control', 'readonly']) }}
@else {{-- @@ -220,22 +246,23 @@ Wenn own_eur auf basis vom own_eur price --}}
- - {{ Form::text('c_currency['.$country->id.']', formatNumber($product->getCCurrency($country->id)), array('placeholder'=>__('Preis VK in ').$country->currency_unit, 'class'=>'form-control')) }} + + {{ Form::text('c_currency[' . $country->id . ']', formatNumber($product->getCCurrency($country->id)), ['placeholder' => __('Preis VK in ') . $country->currency_unit, 'class' => 'form-control']) }}
@endif
- - {{ Form::text('currency_faktor['.$country->id.']', formatNumber($country->currency_faktor, 4), array('class'=>'form-control', 'readonly')) }} + + {{ Form::text('currency_faktor[' . $country->id . ']', formatNumber($country->currency_faktor, 4), ['class' => 'form-control', 'readonly']) }}
- {{ Form::text('preis_eur['.$country->id.']', formatNumber($product->getRealPrice($country)), array('class'=>'form-control', 'readonly')) }} + {{ Form::text('preis_eur[' . $country->id . ']', formatNumber($product->getRealPrice($country)), ['class' => 'form-control', 'readonly']) }}
- {{ Form::text('currency_unit['.$country->id.']', $country->currency_unit, array('class'=>'form-control', 'readonly')) }} + {{ Form::text('currency_unit[' . $country->id . ']', $country->currency_unit, ['class' => 'form-control', 'readonly']) }}
@@ -243,16 +270,16 @@
@endforeach für die Einstellung von landesspezifischen Preisen müssen diese unter - Länder -> Land aktiviert werden. + Länder -> Land aktiviert werden. -
-
-   -
+
+
+   +
-
+
{{ __('White-Label') }}
@@ -260,47 +287,57 @@
- {{ Form::text('whitelabel_name', $product->whitelabel_name, array('placeholder'=>__('Bezeichnung'), 'class'=>'form-control', 'id'=>'whitelabel_name')) }} + {{ Form::text('whitelabel_name', $product->whitelabel_name, ['placeholder' => __('Bezeichnung'), 'class' => 'form-control', 'id' => 'whitelabel_name']) }}
- - + {!! HTMLHelper::getAttributesOptions($product->attribute_variants()->pluck('attribute_id')->toArray(), false, 1) !!}
- Die nur die möglichen Varianten die ausgewählt sind, können einzelnen VP und Etiketten zugeordnet werden. + Die nur die möglichen Varianten die ausgewählt sind, können einzelnen VP und Etiketten + zugeordnet werden.
- @foreach($product->whitelabel_images as $image) -
-
-
-
- -
-
- - - Etikett löschen -
+ @foreach ($product->whitelabel_images as $image) +
+
+
+
+ +
+
+ + + Etikett löschen +
@endforeach

- +  
@@ -308,7 +345,7 @@
-
+
{{ __('Details') }}
@@ -317,29 +354,29 @@
- {{ Form::text('contents', $product->contents, array('placeholder'=>__('Bsp: 150 ml'), 'class'=>'form-control', 'id'=>'contents')) }} + {{ Form::text('contents', $product->contents, ['placeholder' => __('Bsp: 150 ml'), 'class' => 'form-control', 'id' => 'contents']) }}
- {{ Form::text('contents_total', $product->contents_total, array('placeholder'=>__('Bsp: 150'), 'class'=>'form-control', 'id'=>'contents_total')) }} + {{ Form::text('contents_total', $product->contents_total, ['placeholder' => __('Bsp: 150'), 'class' => 'form-control', 'id' => 'contents_total']) }}
- {{ Form::select('unit', $product->unitTypes, $product->unit, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'unit') ) }} + {{ Form::select('unit', $product->unitTypes, $product->unit, ['data-live-search' => 'false', 'class' => 'selectpicker', 'id' => 'unit']) }}
- {{ Form::text('base_price', $product->getBasePriceFormattedFull(), array('placeholder'=>__(''), 'class'=>'form-control', 'id'=>'base_price', 'readonly')) }} + {{ Form::text('base_price', $product->getBasePriceFormattedFull(), ['placeholder' => __(''), 'class' => 'form-control', 'id' => 'base_price', 'readonly']) }}
- {{ Form::text('number', $product->number, array('placeholder'=>__('number'), 'class'=>'form-control', 'id'=>'number')) }} + {{ Form::text('number', $product->number, ['placeholder' => __('number'), 'class' => 'form-control', 'id' => 'number']) }}
- {{ Form::text('icons', $product->icons, array('placeholder'=>__('icons'), 'class'=>'form-control', 'id'=>'icons')) }} + {{ Form::text('icons', $product->icons, ['placeholder' => __('icons'), 'class' => 'form-control', 'id' => 'icons']) }}
{{-- @@ -355,106 +392,504 @@
- {{ Form::textarea('description', $product->description , array('placeholder'=>__('description'), 'class'=>'form-control summernote', 'id'=>'description')) }} + {{ Form::textarea('description', $product->description, ['placeholder' => __('description'), 'class' => 'form-control summernote', 'id' => 'description']) }}
- {{ Form::textarea('usage', $product->usage , array('placeholder'=>__('usage'), 'class'=>'form-control summernote', 'id'=>'usage')) }} + {{ Form::textarea('usage', $product->usage, ['placeholder' => __('usage'), 'class' => 'form-control summernote', 'id' => 'usage']) }}
- {{ Form::textarea('ingredients', $product->ingredients , array('placeholder'=>__('ingredients'), 'class'=>'form-control summernote', 'id'=>'ingredients')) }} + {{ Form::textarea('ingredients', $product->ingredients, ['placeholder' => __('ingredients'), 'class' => 'form-control summernote', 'id' => 'ingredients']) }}

  - +
-
+
- {{ __('Inhaltsstoffe') }} + {{ __('Inhaltsstoffe') }} {{ __('Rezeptur') }}
-
- + +

{{ __('Reihenfolge per Drag & Drop ändern, danach speichern.') }}

+
+
- - - - - - - - - @foreach($product->p_ingredients as $ingredient) - - - - + + + + + + + + - @endforeach + + + @foreach ($product->p_ingredients as $ingredient) + + + + + + + + + + + @endforeach + + + + + + + + +
{{__('Name')}}{{__('INCI')}}{{__('Wirkung') }}
{{ $ingredient->name }}{{ $ingredient->inci }}{{ $ingredient->effect }}{{ __('Name') }}{{ __('Qualität') }}{{ __('INCI') }}{{ __('Anteil (%)') }}{{ __('Faktor') }}{{ __('Effektiv') }}
{{ $ingredient->name }}{{ $ingredient->materialQuality?->name ?? '—' }}{{ $ingredient->inci }} + + + + + + @if ($product->id) + + @else + + @endif +
{{ __('Gesamt:') }}
+
+
+ + {{ __('Inhaltsstoffe anlegen') }} +
+ + +
+
+
+   +
+
+
+
+ +
+
+ {{ __('Hersteller Rezeptur') }} +
+
+ +

{{ __('Eigene Hersteller-Rezeptur (separate INCI-Liste). Reihenfolge per Drag & Drop ändern, danach speichern.') }}

+
+ + + + + + + + + + + + + + + @foreach ($product->manufacturer_ingredients as $ingredient) + + + + + + + + + + + @endforeach + + + + + + + + +
{{ __('Name') }}{{ __('Qualität') }}{{ __('INCI') }}{{ __('Anteil (%)') }}{{ __('Faktor') }}{{ __('Effektiv') }}
{{ $ingredient->name }}{{ $ingredient->materialQuality?->name ?? '—' }}{{ $ingredient->inci }} + + + + + + +
{{ __('Gesamt:') }}
+
+
+ +
+ + +
+
+
+   +
+
+
+
+ +
+
{{ __('Verpackung & Material') }}
+
+

{{ __('Reihenfolge per Drag & Drop ändern, danach speichern.') }}

+
+ + + + + + + + + + + + + @foreach ($product->packagings as $pitem) + + + + + + + + + @endforeach
{{ __('Name') }}{{ __('Material') }}{{ __('Gewicht') }} (g){{ __('Menge') }}
{{ $pitem->name }}{{ $pitem->packagingMaterial?->name ?? '—' }} + {{ $pitem->weight_grams !== null ? formatNumber($pitem->weight_grams) : '—' }} + + + + +
-
-
- - - Inhaltsstoffe anlegen +
+ + @if (Auth::user()->isAdmin()) + {{ __('Verpackungsartikel verwalten') }} + @endif +
+ +

  - -
+
-@if(Auth::user()->isSySAdmin()) -
-
- {{ __('SySAdmin Einstellungen') }} -
+ +
+
{{ __('Warenwirtschaft') }}
-
-
- - {{ Form::select('action[]', $product->actions, $product->action, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'action', 'multiple') ) }} -
-
- - {{ Form::select('identifier', $product->identifiers_types, $product->identifier, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'identifier') ) }} -
-
- - {{ Form::text('upgrade_to_id', $product->upgrade_to_id, array('placeholder'=>__('Produkt-ID auf das geupdatet werden soll'), 'class'=>'form-control', 'id'=>'upgrade_to_id')) }} +
+ +
+ + +
-
-
- - {{ Form::text('wp_number', $product->wp_number, array('placeholder'=>__('WP Number'), 'class'=>'form-control', 'id'=>'wp_number')) }} -
+

  - -
+
-@endif \ No newline at end of file +@if (Auth::user()->isSySAdmin()) +
+
+ {{ __('SySAdmin Einstellungen') }} +
+
+
+
+ + {{ Form::select('action[]', $product->actions, $product->action, ['data-live-search' => 'false', 'class' => 'selectpicker', 'id' => 'action', 'multiple']) }} +
+
+ + {{ Form::select('identifier', $product->identifiers_types, $product->identifier, ['data-live-search' => 'false', 'class' => 'selectpicker', 'id' => 'identifier']) }} +
+
+ + {{ Form::text('upgrade_to_id', $product->upgrade_to_id, ['placeholder' => __('Produkt-ID auf das geupdatet werden soll'), 'class' => 'form-control', 'id' => 'upgrade_to_id']) }} +
+
+
+
+ + {{ Form::text('wp_number', $product->wp_number, ['placeholder' => __('WP Number'), 'class' => 'form-control', 'id' => 'wp_number']) }} +
+
+
+
+
+   + +
+
+
+
+@endif diff --git a/resources/views/admin/sales/_detail.blade.php b/resources/views/admin/sales/_detail.blade.php index e58c1bb..b26cca4 100644 --- a/resources/views/admin/sales/_detail.blade.php +++ b/resources/views/admin/sales/_detail.blade.php @@ -1,4 +1,3 @@ -
@@ -12,49 +11,78 @@
Versand: - @if($isAdmin) - @else - {{$shopping_order->getShippedType()}} + {{ $shopping_order->getShippedType() }} @endif
Rechnung: - @if($isAdmin) - @if(App\Services\Invoice::isInvoice($shopping_order)) - - - @if(Auth::user()->isSuperAdmin()) - @endif @else - @endif - @else - @if(App\Services\Invoice::isInvoice($shopping_order)) - - + @if (App\Services\Invoice::isInvoice($shopping_order)) + + + @endif + @endif +
+ +
+ Stornorechnung: + @if ($isAdmin) + @if (App\Services\Invoice::isCancellationInvoice($shopping_order)) + + + @else + @if (App\Services\Invoice::isInvoice($shopping_order)) + + @else + Erst Rechnung erstellen + @endif + @endif + @else + @if (App\Services\Invoice::isCancellationInvoice($shopping_order)) + + @endif @endif
@@ -69,12 +97,13 @@ target="_blank" class="btn btn-warning btn-sm"> + class="btn btn-dark btn-sm"> - @endif - + @endif + @endif
@@ -89,15 +118,15 @@
Bestelldatum
- {{$shopping_order->created_at->format("d.m.Y H:i")}} + {{ $shopping_order->created_at->format('d.m.Y H:i') }}
Anzahl Artikel
- {{$shopping_order->getItemsCount()}} + {{ $shopping_order->getItemsCount() }}
Preis gesamt
- {{$shopping_order->getFormattedTotalShipping()}} € + {{ $shopping_order->getFormattedTotalShipping() }} €
White Label
@@ -108,12 +137,12 @@
-@if($isAdmin) - + @if ($isAdmin) +
- @if(isset($change_member_error) && $change_member_error) + @if (isset($change_member_error) && $change_member_error)
@@ -125,31 +154,33 @@
@endif
Zugewiesener Vertriebspartner
- @if($isView === 'sales_user') - {{-- @if($shopping_order->user_shop) + @if ($isView === 'sales_user') + {{-- @if ($shopping_order->user_shop) {{$shopping_order->user_shop->title}} @endif --}} @endif - @if($isView === 'sales_customer') - @if($shopping_order->shopping_user && $shopping_order->shopping_user->is_like) - + @if ($isView === 'sales_customer') + @if ($shopping_order->shopping_user && $shopping_order->shopping_user->is_like) + @else - @if($shopping_order->member) - - {{$shopping_order->member->getFullName()}} #{{$shopping_order->member->number}} + @if ($shopping_order->member) + + {{ $shopping_order->member->getFullName() }} #{{ $shopping_order->member->number }} @endif - + @endif @endif @@ -163,20 +194,20 @@

-@endif + @endif - +
- @if($shopping_order->shopping_user->is_from === 'shopping' || $shopping_order->shopping_user->is_from === 'extern') + @if ($shopping_order->shopping_user->is_from === 'shopping' || $shopping_order->shopping_user->is_from === 'extern') Rechnungsadresse des Kunden @else Rechnungsadresse des Vertriebspartners @endif
- @if($shopping_order->shopping_user->billing_company) + @if ($shopping_order->shopping_user->billing_company)
Firma
{{ $shopping_order->shopping_user->billing_company }} @@ -230,44 +261,43 @@ - @if($shopping_order->shopping_user->is_from !== 'homeparty') + @if ($shopping_order->shopping_user->is_from !== 'homeparty')
- @if($shopping_order->shopping_user->is_from === 'user_order' || $shopping_order->shopping_user->is_from === 'extern') - @if($shopping_order->shopping_user->is_for === 'ot') + @if ($shopping_order->shopping_user->is_from === 'user_order' || $shopping_order->shopping_user->is_from === 'extern') + @if ($shopping_order->shopping_user->is_for === 'ot') Lieferadresse des Kunden @else Lieferadresse des Vertriebspartner @endif @endif - @if($shopping_order->shopping_user->is_from === 'wizard') + @if ($shopping_order->shopping_user->is_from === 'wizard') Lieferadresse des Vertriebspartner @endif - @if($shopping_order->shopping_user->is_from === 'membership') + @if ($shopping_order->shopping_user->is_from === 'membership') Lieferadresse des Vertriebspartner @endif - @if($shopping_order->shopping_user->is_from === 'shopping') - @if($shopping_order->isPickUp()) - Kunde holt die Ware persönlich ab + @if ($shopping_order->shopping_user->is_from === 'shopping') + @if ($shopping_order->isPickUp()) + Kunde holt die Ware persönlich ab @else - Lieferadresse des Kunden - + Lieferadresse des Kunden @endif @endif
- @if($shopping_order->isPickUp()) - @if($shopping_order->promotion_user) + @if ($shopping_order->isPickUp()) + @if ($shopping_order->promotion_user) {!! nl2br($shopping_order->promotion_user->user_address) !!} @endif @else - @if($shopping_order->shopping_user->same_as_billing) - {{__('email.checkout_mail_same_address')}} + @if ($shopping_order->shopping_user->same_as_billing) + {{ __('email.checkout_mail_same_address') }} @else
- @if($shopping_order->shopping_user->shipping_company) + @if ($shopping_order->shopping_user->shipping_company)
Firma
{{ $shopping_order->shopping_user->shipping_company }} @@ -327,53 +357,58 @@
- @if($shopping_order->shopping_user->is_from === 'user_order') - @if($shopping_order->shopping_user->is_for === 'ot') + @if ($shopping_order->shopping_user->is_from === 'user_order') + @if ($shopping_order->shopping_user->is_for === 'ot') Bestellung für Kunde @else Bestellung für Vertriebspartner @endif @endif - @if($shopping_order->shopping_user->is_from === 'wizard') + @if ($shopping_order->shopping_user->is_from === 'wizard') Vertriebspartnerbestellung für Registrierung @endif - @if($shopping_order->shopping_user->is_from === 'membership') + @if ($shopping_order->shopping_user->is_from === 'membership') Vertriebspartnerbestellung für Mitgliedschaft @endif - @if($shopping_order->shopping_user->is_from === 'shopping') - @if($shopping_order->payment_for === 7) + @if ($shopping_order->shopping_user->is_from === 'shopping') + @if ($shopping_order->payment_for === 7) Kundenbestellung über Promotion - @if($shopping_order->promotion_user) -
{{ $shopping_order->promotion_user->name }} || {{ $shopping_order->promotion_user->user->getFullName() }} + @if ($shopping_order->promotion_user) +
{{ $shopping_order->promotion_user->name }} || + {{ $shopping_order->promotion_user->user->getFullName() }} @endif @else Kundenbestellung über Shop @endif @endif - @if($shopping_order->shopping_user->is_from === 'homeparty') + @if ($shopping_order->shopping_user->is_from === 'homeparty')
Vertriebspartnerbestellung für eine Homeparty

@endif -
- - +
+
+ - @foreach($shopping_order->shopping_order_items as $shopping_order_item) + @foreach ($shopping_order->shopping_order_items as $shopping_order_item) @@ -420,64 +460,67 @@ {{ $shopping_order_item->qty }} - @endforeach - - + + - @if($shopping_order->shopping_user->is_from === 'user_order') - - - - - - - - - - - - + @if ($shopping_order->shopping_user->is_from === 'user_order') + + + + + + + + + + + + @endif - - @if($shopping_order->shopping_user->is_from === 'user_order' && $shopping_order->payment_credit > 0) + @if ($shopping_order->shopping_user->is_from === 'user_order' && $shopping_order->payment_credit > 0) - - @endif + @endif - -
Produkt - @if($shopping_order->shopping_user->is_from === 'user_order') + @if ($shopping_order->shopping_user->is_from === 'user_order') Netto-Preis @else Preis @@ -382,37 +417,42 @@ Anzahl Summe
- @if($shopping_order_item->product) - @if($shopping_order_item->product->images) - @if($image = $shopping_order_item->product->images->first()) - + @if ($shopping_order_item->product) + @if ($shopping_order_item->product->images) + @if ($image = $shopping_order_item->product->images->first()) + @endif @endif
- {{ $shopping_order_item->product->name }} - #{{ $shopping_order_item->product->number }} + {{ $shopping_order_item->product->name }} + #{{ $shopping_order_item->product->number }} - Inhalt: {{ $shopping_order_item->product->contents }}
- Gewicht: {{ $shopping_order_item->product->weight }} g
- @if($shopping_order_item->isFreeProduct()) + Inhalt: + {{ $shopping_order_item->product->contents }}
+ Gewicht: + {{ $shopping_order_item->product->weight }} g
+ @if ($shopping_order_item->isFreeProduct()) Promotionprodukt
@endif - {{-- Points: {{ $shopping_order_item->product->points }} --}} + {{-- Points: {{ $shopping_order_item->product->points }} --}}
@endif
- @if($shopping_order->shopping_user->is_from === 'user_order') - {{ $shopping_order_item->getFormattedPriceNet() }} € + @if ($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order_item->getFormattedPriceNet() }} € @else - {{ $shopping_order_item->getFormattedPrice() }} € + {{ $shopping_order_item->getFormattedPrice() }} € @endif - @if($shopping_order->shopping_user->is_from === 'user_order') - {{ $shopping_order_item->getFormattedTotalPriceNet() }} € + + @if ($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order_item->getFormattedTotalPriceNet() }} € @else - {{ $shopping_order_item->getFormattedTotalPrice() }} € + {{ $shopping_order_item->getFormattedTotalPrice() }} € @endif
- Zwischensumme - - {{ $shopping_order->getFormattedSubtotalFull() }} €* -
- Handelspanne - - - {{ $shopping_order->getFormattedDiscount() }} €* -
- Summe (Netto) - - {{ $shopping_order->getFormattedSubtotal() }} €* -
+ Zwischensumme + + {{ $shopping_order->getFormattedSubtotalFull() }} €* +
+ Handelspanne + + - {{ $shopping_order->getFormattedDiscount() }} €* +
+ Summe (Netto) + + {{ $shopping_order->getFormattedSubtotal() }} €* +
- {{__('email.checkout_mail_shipping')}} + {{ __('email.checkout_mail_shipping') }} - @if($shopping_order->shopping_user->is_from === 'user_order') - {{ $shopping_order->getFormattedShippingNet() }} €* + @if ($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order->getFormattedShippingNet() }} €* @else - {{ $shopping_order->getFormattedShipping() }} € + {{ $shopping_order->getFormattedShipping() }} € @endif
- {{__('email.checkout_mail_subtotal_ws')}} + {{ __('email.checkout_mail_subtotal_ws') }} {{ $shopping_order->getFormattedSubtotalShipping() }} €* @@ -485,30 +528,32 @@
- {{__('email.checkout_mail_tax')}} + {{ __('email.checkout_mail_tax') }} + {{ $shopping_order->getFormattedTax() }} €
- Summe (Brutto): + Summe (Brutto): - {{ $shopping_order->getFormattedTotalWithoutCredit() }} € + {{ $shopping_order->getFormattedTotalWithoutCredit() }} €
aus Guthaben (Brutto): + {{ $shopping_order->getFormattedPaymentCredit() }} €
Gesamtsumme (Brutto): @@ -519,67 +564,76 @@ * Nettobeträge
-
-
-
- @if($shopping_order->shopping_order_margin) - -
- -
- Provisionen / Handelspanne -
-
- -
-
Einzelrabatt
- {{ number_format( $shopping_order->shopping_order_margin->getRestoreContent('commission')->single_value_commission, 2, ",", ".") }} -
-
-
Staffelrabatt
- @foreach ($shopping_order->shopping_order_margin->getRestoreContent('items') as $item) - ab {{ $item->price_from }} / {{ $item->trading_margin }}% : - {{ number_format($item->value_margin , 2, ",", ".") }} €*
- @endforeach -
- @if($isAdmin) -
-
Provisionen Vertriebspartner
@if($shopping_order->member){{ $shopping_order->member->getFullName(false) }} @endif
- {{$shopping_order->shopping_order_margin->getFormattedNetDiscount()}} € -
-
-
Provisionen Sponsor
@if($shopping_order->member && $shopping_order->member->user_sponsor) {{ $shopping_order->member->user_sponsor->getFullName(false) }} @endif
- @if($shopping_order->shopping_order_margin->net_partner_commission) - {{ $shopping_order->shopping_order_margin->getFormattedNetPartnerCommission() }} € - @endif -
- @endif + +
-
+ @if ($shopping_order->shopping_order_margin) + +
+ +
+ Provisionen / Handelspanne +
+
+ +
+
Einzelrabatt
+ {{ number_format($shopping_order->shopping_order_margin->getRestoreContent('commission')->single_value_commission, 2, ',', '.') }} +
+
+
Staffelrabatt
+ @foreach ($shopping_order->shopping_order_margin->getRestoreContent('items') as $item) + ab {{ $item->price_from }} / {{ $item->trading_margin }}% : + {{ number_format($item->value_margin, 2, ',', '.') }} €*
+ @endforeach +
+ @if ($isAdmin) +
+
Provisionen Vertriebspartner
+ @if ($shopping_order->member) + {{ $shopping_order->member->getFullName(false) }} + @endif +
+ {{ $shopping_order->shopping_order_margin->getFormattedNetDiscount() }} € +
+
+
Provisionen Sponsor
+ @if ($shopping_order->member && $shopping_order->member->user_sponsor) + {{ $shopping_order->member->user_sponsor->getFullName(false) }} + @endif +
+ @if ($shopping_order->shopping_order_margin->net_partner_commission) + {{ $shopping_order->shopping_order_margin->getFormattedNetPartnerCommission() }} € + @endif +
+ @endif +
+
+ +
@endif - @if($shopping_order->txaction === 'extern') + @if ($shopping_order->txaction === 'extern')
- @if($shopping_order->wp_invoice_path) + @if ($shopping_order->wp_invoice_path) @endif - @if($shopping_order->wp_notice['wp_advertising']) + @if ($shopping_order->wp_notice['wp_advertising'])
Werbemittel: {!! $shopping_order->wp_notice['wp_advertising'] !!}
@endif - @if($shopping_order->wp_notice['wp_incentives']) + @if ($shopping_order->wp_notice['wp_incentives'])
Incentives: {!! $shopping_order->wp_notice['wp_incentives'] !!}
@@ -588,77 +642,81 @@ @endif

-@endif + @endif
Zahlung
- @if($shopping_order->txaction !== 'extern') + @if ($shopping_order->txaction !== 'extern')
- - - - - - - - + + + + + + + + - @php($count=0) - @foreach($shopping_order->shopping_payments as $shopping_payment) - - - - - + + + + - - - - @if($isAdmin && $shopping_payment->payment_transactions) - @php($ccount=0) - - - + + - @endif - @endforeach + @if ($isAdmin && $shopping_payment->payment_transactions) + @php($ccount = 0) + + + + + @endif + @endforeach
#ZahlungsartGesamtStatusDatumReferenznummer
#ZahlungsartGesamtStatusDatumReferenznummer
{{++$count}}{{$shopping_payment->getPaymentType()}}{{$shopping_payment->getPaymentAmount()}} - @if($isAdmin && ($shopping_payment->clearingtype === 'fnc' || $shopping_payment->clearingtype === 'vor')) -
{{ ++$count }}{{ $shopping_payment->getPaymentType() }}{{ $shopping_payment->getPaymentAmount() }} + @if ($isAdmin && ($shopping_payment->clearingtype === 'fnc' || $shopping_payment->clearingtype === 'vor')) + - @else - {!! \App\Services\Payment::getShoppingPaymentBadge($shopping_payment) !!} - @endif - {{$shopping_payment->created_at->format("d.m.Y H:i")}}{{$shopping_payment->reference}}
{{$count}}.{{++$ccount}} - - - - - - - - - - - @foreach($shopping_payment->payment_transactions as $payment_transaction) - - - - - - - @endforeach - -
RequestStatusTX-ActionDatum
{{$payment_transaction->request}}{{$payment_transaction->status}}{{$payment_transaction->txaction}} {{$payment_transaction->errormessage}}{{$payment_transaction->created_at->format("d.m.Y H:i")}}
+ data-back="{{ url()->current() }}" data-action="store_txaction"> + + {{ \App\Services\Payment::getFormattedTxaction($shopping_payment->txaction) }} + + @else + {!! \App\Services\Payment::getShoppingPaymentBadge($shopping_payment) !!} + @endif
{{ $shopping_payment->created_at->format('d.m.Y H:i') }}{{ $shopping_payment->reference }}
{{ $count }}.{{ ++$ccount }} + + + + + + + + + + + @foreach ($shopping_payment->payment_transactions as $payment_transaction) + + + + + + + @endforeach + +
RequestStatusTX-ActionDatum
{{ $payment_transaction->request }}{{ $payment_transaction->status }}{{ $payment_transaction->txaction }} + {{ $payment_transaction->errormessage }}{{ $payment_transaction->created_at->format('d.m.Y H:i') }} +
+
@@ -676,66 +734,77 @@
-@if($isAdmin) +@if ($isAdmin) + - -@endif \ No newline at end of file +@endif diff --git a/resources/views/layouts/includes/layout-sidenav.blade.php b/resources/views/layouts/includes/layout-sidenav.blade.php index 0e575ca..bac8455 100644 --- a/resources/views/layouts/includes/layout-sidenav.blade.php +++ b/resources/views/layouts/includes/layout-sidenav.blade.php @@ -1,218 +1,392 @@ +@if (Auth::check()) - - -@if(Auth::check()) - -
+
diff --git a/resources/views/layouts/layout-2.blade.php b/resources/views/layouts/layout-2.blade.php index 55e263b..9d7e891 100644 --- a/resources/views/layouts/layout-2.blade.php +++ b/resources/views/layouts/layout-2.blade.php @@ -38,6 +38,18 @@ @endif + @if(Session::has('alert-warning')) + + @endif +
@@ -56,6 +68,7 @@
@yield('content') + @yield('scripts')
diff --git a/resources/views/pdf/cancellation_invoice.blade.php b/resources/views/pdf/cancellation_invoice.blade.php new file mode 100644 index 0000000..a5e12df --- /dev/null +++ b/resources/views/pdf/cancellation_invoice.blade.php @@ -0,0 +1,524 @@ + + + + + + partner.gruene-seele.bio - Stornorechnung + + + + +
+
GRÜNE SEELE GmbH • Hauptstr. 174 • 51143 Köln
+ + @if ($shopping_order->shopping_user->billing_company) + {{ $shopping_order->shopping_user->billing_company }}
+ @else + @if ($shopping_order->payment_for !== 7) + Firma
+ @endif + @endif + {{ \App\Services\HTMLHelper::getSalutationLang($shopping_order->shopping_user->billing_salutation) }} + {{ $shopping_order->shopping_user->billing_firstname }} + {{ $shopping_order->shopping_user->billing_lastname }}
+ {{ $shopping_order->shopping_user->billing_address }}
+ @if ($shopping_order->shopping_user->billing_address_2) + {{ $shopping_order->shopping_user->billing_address_2 }}
+ @endif + {{ $shopping_order->shopping_user->billing_zipcode }} {{ $shopping_order->shopping_user->billing_city }}
+ @if ($shopping_order->shopping_user->billing_country) + {{ $shopping_order->shopping_user->billing_country->getLocated() }} + @endif +
+ +
+
STORNORECHNUNG
+
zur Rechnung Nr. {{ $original_invoice_number }}
+
+ +
+ + + + + + + + + + +
+ {{ __('Stornonummer') }}: {{ $cancellation_number }} +
+ {{ __('Ursprüngliche Rechnung') }}: {{ $original_invoice_number }} +
+ {{ __('Bestellnummer') }}: {{ $shopping_order->getLastShoppingPayment('reference') }} +
+
+
+ + + + + + + + + + +
+ {{ __('Stornodatum') }}: {{ $cancellation_date }} +
+ {{ __('Urspr. Rechnungsdatum') }}: {{ $original_invoice_date }} +
+ {{ __(' Umsatzsteuer-ID') }}: DE296797691 +
+
+
+

+ Hiermit stornieren wir die Rechnung Nr. {{ $original_invoice_number }} vom + {{ $original_invoice_date }}.
+ Die folgenden Beträge werden mit negativem Vorzeichen ausgewiesen: +

+ + + + + + + + + + + + @foreach ($shopping_order->shopping_order_items as $shopping_order_item) + + + + + + + @endforeach + + + @if ($shopping_order->shopping_user->is_from === 'user_order') + + + + + @if ($shopping_order->shopping_user->is_for !== 'cr') + + + + + + + + + + + @endif + @endif + + + + + + + + + + + + + + + + + @if ($shopping_order->shopping_user->is_from === 'user_order' && $shopping_order->payment_credit > 0) + + + + + + + + + + + @endif + + + + + + +
BezeichnungAnzahl + @if ($shopping_order->shopping_user->is_from === 'user_order') + Netto-Preis + @else + Preis + @endif + Summe
+ {{ $shopping_order_item->product->name }} + + -{{ $shopping_order_item->qty }} + + @if ($shopping_order->shopping_user->is_from === 'user_order') + -{{ $shopping_order_item->getFormattedPriceNet() }} € + @else + -{{ $shopping_order_item->getFormattedPrice() }} € + @endif + + @if ($shopping_order->shopping_user->is_from === 'user_order') + -{{ $shopping_order_item->getFormattedTotalPriceNet() }} € + @else + -{{ $shopping_order_item->getFormattedTotalPrice() }} € + @endif +
+ Zwischensumme + + -{{ $shopping_order->getFormattedSubtotalFull() }} €* +
  + Handelspanne + + {{ $shopping_order->getFormattedDiscount() }} €* +
  + Summe (Netto) + + -{{ $shopping_order->getFormattedSubtotal() }} €* +
  + {{ __('email.checkout_mail_shipping') }} + + @if ($shopping_order->shopping_user->is_from === 'user_order') + -{{ $shopping_order->getFormattedShippingNet() }} €* + @else + -{{ $shopping_order->getFormattedShipping() }} € + @endif +
  + {{ __('email.checkout_mail_subtotal_ws') }} + + -{{ $shopping_order->getFormattedSubtotalShipping() }} €* +
  + @if ($shopping_order->isTax()) + {{ __('email.checkout_mail_tax_19') }} + @else + {{ __('email.checkout_mail_tax') }} + @endif + + + -{{ $shopping_order->getFormattedTax() }} € +
  + Summe (Brutto): + + -{{ $shopping_order->getFormattedTotalWithoutCredit() }} € +
  + aus Guthaben (Brutto): + + -{{ $shopping_order->getFormattedPaymentCredit() }} € +
  + Stornobetrag (Brutto): + + -{{ $shopping_order->getFormattedTotalShipping() }} € +
+ * Nettobeträge +
+
+

+ Hinweis: Mit dieser Stornorechnung wird die ursprüngliche Rechnung Nr. + {{ $original_invoice_number }} vollständig storniert. + Der Rechnungsbetrag von {{ $shopping_order->getFormattedTotalShipping() }} € wird Ihnen gutgeschrieben + bzw. erstattet. +

+
+
+ + + + diff --git a/routes/web.php b/routes/web.php index 78495e5..b40cf05 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,13 @@ first()){ +Route::get('/product/image/{slug}', function ($slug = null) { + if ($image = ProductImage::where('slug', $slug)->first()) { $path = storage_path('app/public').$image->getImagePath(); if (file_exists($path)) { return Response::file($path); @@ -72,18 +79,15 @@ Route::get('/product/image/{slug}', function($slug = null) } })->name('product_image'); - -Route::get('/response/file/{disk}/{slug}', function($disk = null, $slug = null) -{ - $path = \Storage::disk($disk)->path(str_replace('_', '/', $slug)); +Route::get('/response/file/{disk}/{slug}', function ($disk = null, $slug = null) { + $path = Storage::disk($disk)->path(str_replace('_', '/', $slug)); if (file_exists($path)) { return Response::file($path); } })->name('response_file'); -Route::get('/iq/image/{slug}', function($slug = null) -{ - if($image = \App\Models\IqImage::where('slug', $slug)->first()){ +Route::get('/iq/image/{slug}', function ($slug = null) { + if ($image = IqImage::where('slug', $slug)->first()) { $path = storage_path('app/public').'/images/iq_images/'.$image->filename; if (file_exists($path)) { return Response::file($path); @@ -93,23 +97,24 @@ Route::get('/iq/image/{slug}', function($slug = null) })->name('iq_image'); Route::get('locale/{locale}', function ($locale) { - \Session::put('locale', $locale); - if(Auth::check()){ + Session::put('locale', $locale); + if (Auth::check()) { $user = Auth::user(); $user->lang = $locale; $user->save(); } + return redirect()->back(); })->name('locale'); Route::domain(config('app.domain'))->group(function () { Auth::routes(); - Route::get('/logout', function(){ + Route::get('/logout', function () { Auth::logout(); - return Redirect::to('login'); - })->name('logout'); + return Redirect::to('login'); + })->name('get.logout'); Route::post('/user_register', [RegisterController::class, 'register'])->name('user_register'); Route::post('/user_register_again', [RegisterController::class, 'registerAgain'])->name('user_register_again'); @@ -118,7 +123,6 @@ Route::domain(config('app.domain'))->group(function () { Route::post('/register/consent', [RegisterController::class, 'acceptConsent'])->name('register.consent.accept'); Route::get('/register', [RegisterController::class, 'showRegistrationForm'])->name('register.form'); - Route::get('/user_register/finish', [RegisterController::class, 'finish'])->name('user_register_finish'); Route::get('/register/verify/{confirmationCode}', [RegisterController::class, 'verify'])->name('register_verify'); Route::get('/reg/{member_id?}', [RegisterController::class, 'member'])->name('register_user_member'); @@ -132,14 +136,14 @@ Route::domain(config('app.domain'))->group(function () { Route::post('/user/check/mail', [HomeController::class, 'checkMail'])->name('user_check_mail'); - Route::get('/', [HomeController::class, 'index'])->name('home'); + Route::get('/', [HomeController::class, 'index'])->name('landing'); Route::get('/cron/jobs/action/{action}/{key}', [CronController::class, 'action'])->name('cron_jobs_action'); Route::get('/user/update_email_confirm/{token}', [UserUpdateEmailController::class, 'activateMail'])->name('user_update_email_confirm'); /* AUTH */ - Route::group(['middleware' => ['auth']], function() { + Route::group(['middleware' => ['auth']], function () { Route::get('/user_blocked', [HomeController::class, 'blocked'])->name('user_blocked'); Route::get('/wizard-create', [WizardController::class, 'create'])->name('wizard_create'); Route::get('/wizard-register', [WizardController::class, 'register'])->name('wizard_register'); @@ -155,13 +159,12 @@ Route::domain(config('app.domain'))->group(function () { Route::get('/storage/file/{id}/{disk}/{do?}', [FileController::class, 'show'])->name('storage_file'); }); - /* AUTH user*/ - Route::group(['middleware' => ['auth:user']], function() { + /* AUTH user */ + Route::group(['middleware' => ['auth:user']], function () { - Route::get('storage/{type?}/{file?}', function($type = null, $file = null) - { - if($type == 'xls'){ - $path = storage_path("app/export/"); + Route::get('storage/{type?}/{file?}', function ($type = null, $file = null) { + if ($type == 'xls') { + $path = storage_path('app/export/'); $filename = $file.'.xls'; } @@ -174,59 +177,57 @@ Route::domain(config('app.domain'))->group(function () { Route::post('/modal/load', [ModalController::class, 'load'])->name('modal_load'); Route::get('/user/edit', [UserDataController::class, 'userEdit'])->name('user_edit'); - Route::post('/user/edit', [UserDataController::class, 'userEditStore'])->name('user_edit'); + Route::post('/user/edit', [UserDataController::class, 'userEditStore'])->name('user_edit.store'); Route::post('/user/data/store', [UserDataController::class, 'userDataStore'])->name('user_data_store'); Route::get('/user/profile', [UserDataController::class, 'userProfile'])->name('user_profile'); - Route::post('/user/profile', [UserDataController::class, 'userProfileStore'])->name('user_profile'); + Route::post('/user/profile', [UserDataController::class, 'userProfileStore'])->name('user_profile.store'); Route::post('/user/profile/image/upload', [UserDataController::class, 'imageUpload'])->name('user_profile_image_upload'); Route::get('/user/profile/image/delete/{image_id}', [UserDataController::class, 'imageDelete'])->name('user_profile_image_delete'); - + Route::get('/user/update_password', [UserUpdatePasswordController::class, 'updatePassword'])->name('user_update_password'); - Route::post('/user/update_password', [UserUpdatePasswordController::class, 'updatePasswordStore'])->name('user_update_password'); + Route::post('/user/update_password', [UserUpdatePasswordController::class, 'updatePasswordStore'])->name('user_update_password.store'); Route::get('/user/update_password_first', [UserUpdatePasswordController::class, 'updatePasswordFirst'])->name('user_update_password_first'); - Route::post('/user/update_password_first', [UserUpdatePasswordController::class, 'updatePasswordFirstStore'])->name('user_update_password_first'); + Route::post('/user/update_password_first', [UserUpdatePasswordController::class, 'updatePasswordFirstStore'])->name('user_update_password_first.store'); Route::get('/user/update_email', [UserUpdateEmailController::class, 'index'])->name('user_update_email'); - Route::post('/user/update_email', [UserUpdateEmailController::class, 'update'])->name('user_update_email'); + Route::post('/user/update_email', [UserUpdateEmailController::class, 'update'])->name('user_update_email.store'); Route::get('/user/delete_account', [UserDeleteController::class, 'deleteAccount'])->name('user_delete_account'); - Route::post('/user/delete_account', [UserDeleteController::class, 'deleteAccountAction'])->name('user_delete_account'); + Route::post('/user/delete_account', [UserDeleteController::class, 'deleteAccountAction'])->name('user_delete_account.store'); Route::post('/user/data/accepted/form', [UserDataController::class, 'userDataAcceptedForm'])->name('user_data_accepted_form'); Route::get('/user/data/free', [UserDataController::class, 'userDataFree'])->name('user_data_free'); Route::post('/user/data/free/form', [UserDataController::class, 'userDataFreeForm'])->name('user_data_free_form'); + // user Sales (Bestellungen des Users) + Route::get('/user/sales', [UserSalesController::class, 'orders'])->name('user_sales_orders'); + Route::get('/user/sales/detail/{id}', [UserSalesController::class, 'orderDetail'])->name('user_sales_order_detail'); + Route::get('/user/sales/datatable', [UserSalesController::class, 'ordersDatatable'])->name('user_sales_orders_datatable'); - //user Sales - Route::get('/user/sales', [UserSalesController::class, 'orders'])->name('user_sales'); - Route::get('/user/sales/detail/{id}', [UserSalesController::class, 'orderDetail'])->name('user_sales_detail'); - Route::get('/user/sales/datatable', [UserSalesController::class, 'ordersDatatable'])->name('user_sales_datatable'); - - //user team + // user team Route::get('/user/team/members', [TeamController::class, 'members'])->name('user_team_members'); - //user customers + // user customers Route::get('/user/customers', [UserCustomerController::class, 'index'])->name('user_customers'); Route::get('/user/customer/detail/{id}', [UserCustomerController::class, 'detail'])->name('user_customer_detail'); Route::get('/user/customer/edit/{id}', [UserCustomerController::class, 'edit'])->name('user_customer_edit'); Route::get('/user/customer/add/{id}/{step?}', [UserCustomerController::class, 'add'])->name('user_customer_add'); - Route::post('/user/customer/edit/{id}', [UserCustomerController::class, 'store'])->name('user_customer_edit'); + Route::post('/user/customer/edit/{id}', [UserCustomerController::class, 'store'])->name('user_customer_edit.store'); Route::get('/user/customer/datatable', [UserCustomerController::class, 'getCustomers'])->name('user_customer_datatable'); - //user order & do order + // user order & do order Route::get('/user/myorders', [MyOrderController::class, 'index'])->name('user_myorders'); Route::get('/user/myorder/datatable', [MyOrderController::class, 'datatable'])->name('user_myorder_datatable'); Route::get('/user/myorder/detail/{id}', [MyOrderController::class, 'detail'])->name('user_myorder_detail'); - Route::get('/user/order/my/delivery/{for}/{id?}', [OrderController::class, 'delivery'])->name('user_order_my_delivery'); - Route::post('/user/order/my/delivery/{for}/{id?}', [OrderController::class, 'delivery'])->name('user_order_my_delivery'); + Route::post('/user/order/my/delivery/{for}/{id?}', [OrderController::class, 'delivery'])->name('user_order_my_delivery.store'); Route::get('/user/order/my/list/{for}/{id?}', [OrderController::class, 'list'])->name('user_order_my_list'); - Route::post('/user/order/my/list/{for}/{id?}', [OrderController::class, 'list'])->name('user_order_my_list'); + Route::post('/user/order/my/list/{for}/{id?}', [OrderController::class, 'list'])->name('user_order_my_list.store'); Route::post('/user/order/my/payment/{for}/{id?}', [OrderController::class, 'payment'])->name('user_order_my_payment'); Route::get('/user/order/my/datatable', [OrderController::class, 'datatable'])->name('user_order_my_datatable'); @@ -235,8 +236,7 @@ Route::domain(config('app.domain'))->group(function () { Route::get('/user/membership', [MembershipController::class, 'index'])->name('user_membership'); Route::post('/user/membership/store/{action}', [MembershipController::class, 'storePayment'])->name('user_membership_store'); - - //user shop + // user shop Route::get('/user/shop', [UserShopController::class, 'index'])->name('user_shop'); Route::post('/user/shop/store', [UserShopController::class, 'store'])->name('user_shop_store'); Route::post('/user/shop/load', [UserShopController::class, 'load'])->name('user_shop_load'); @@ -244,12 +244,11 @@ Route::domain(config('app.domain'))->group(function () { Route::get('/user/shop/translate', [UserShopController::class, 'translate'])->name('user_shop_translate'); Route::post('/user/shop/translate/store', [UserShopController::class, 'translateStore'])->name('user_shop_tanslate_store'); - //user shop Sales + // user shop Sales Route::get('/user/sales/', [UserSalesController::class, 'index'])->name('user_sales'); Route::get('/user/sales/detail/{id}', [UserSalesController::class, 'detail'])->name('user_sales_detail'); Route::get('/user/sales/datatable', [UserSalesController::class, 'datatable'])->name('user_sales_datatable'); - Route::get('/user/payment/paycredit', [UserPaymentController::class, 'paycredit'])->name('user_payment_paycredit'); Route::get('/user/payment/paycredit/datatable', [UserPaymentController::class, 'paycredit_datatable'])->name('user_payment_paycredit_datatable'); @@ -257,59 +256,79 @@ Route::domain(config('app.domain'))->group(function () { Route::get('/user/payment/credit/datatable', [UserPaymentController::class, 'credit_datatable'])->name('user_payment_credit_datatable'); Route::get('/user/payment/revenue', [UserPaymentController::class, 'revenue'])->name('user_payment_revenue'); - Route::post('/user/payment/revenue', [UserPaymentController::class, 'revenue'])->name('user_payment_revenue'); + Route::post('/user/payment/revenue', [UserPaymentController::class, 'revenue'])->name('user_payment_revenue.store'); + + // Route::get('/user/payment/credit/datatable', [UserPaymentController::class, 'credit_datatable'])->name('user_payment_credit_datatable'); - //Route::get('/user/payment/credit/datatable', [UserPaymentController::class, 'credit_datatable'])->name('user_payment_credit_datatable'); - Route::get('/user/checkout/{identifier?}', [CheckoutController::class, 'checkout'])->name('user_checkout'); Route::post('/user/checkout_store/{identifier?}', [CheckoutController::class, 'store'])->name('user_checkout_store'); Route::get('/user/checkout_final/{payid}/{reference}/{identifier?}', [CheckoutController::class, 'final'])->name('user_checkout_final'); Route::get('/user/promotion', [UserPromotionController::class, 'index'])->name('user_promotion'); Route::get('/user/promotion/detail/{id}', [UserPromotionController::class, 'detail'])->name('user_promotion_detail'); - Route::post('/user/promotion/detail/{id}', [UserPromotionController::class, 'store'])->name('user_promotion_detail'); + Route::post('/user/promotion/detail/{id}', [UserPromotionController::class, 'store'])->name('user_promotion_detail.store'); Route::post('/user/promotion/load', [UserPromotionController::class, 'load'])->name('user_promotion_load'); Route::get('/user/promotion/delete/{id}/{del?}', [UserPromotionController::class, 'delete'])->name('user_promotion_delete'); + Route::middleware(['superadmin'])->prefix('admin/inventory')->name('admin.inventory.')->group(function () { + Route::resource('locations', InventoryLocationController::class)->except(['show']); + Route::resource('material-qualities', InventoryMaterialQualityController::class)->except(['show']); + Route::resource('packaging-materials', InventoryPackagingMaterialController::class)->except(['show']); + }); + + Route::middleware(['admin'])->prefix('admin/inventory')->name('admin.inventory.')->group(function () { + Route::resource('supplier-categories', InventorySupplierCategoryController::class)->except(['show']); + Route::resource('suppliers', InventorySupplierController::class)->except(['show']); + Route::resource('packaging-items', InventoryPackagingItemController::class)->except(['show']); + }); + + Route::middleware(['copyreader'])->prefix('admin/inventory')->name('admin.inventory.')->group(function () { + Route::get('api/ingredients/search', [InventoryStockEntryController::class, 'searchIngredients'])->name('api.ingredients.search'); + Route::get('api/packaging-items/search', [InventoryStockEntryController::class, 'searchPackagingItems'])->name('api.packaging-items.search'); + Route::get('api/products/{product}/recipe', [InventoryProductionController::class, 'recipeJson'])->name('api.products.recipe'); + Route::put('stock-entries/{stock_entry}/receive', [InventoryStockEntryController::class, 'receive'])->name('stock-entries.receive'); + Route::resource('stock-entries', InventoryStockEntryController::class); + Route::resource('productions', InventoryProductionController::class)->only(['index', 'create', 'store', 'show', 'edit', 'update']); + Route::get('productions/{production}/copy', [InventoryProductionController::class, 'copy'])->name('productions.copy'); + }); + }); - Route::group(['middleware' => ['copyreader']], function() - { - //products + Route::group(['middleware' => ['copyreader']], function () { + // products Route::get('/admin/product/show', [ProductController::class, 'index'])->name('admin_product_show'); Route::post('/admin/product/store', [ProductController::class, 'store'])->name('admin_product_store'); Route::get('/admin/product/edit/{id}', [ProductController::class, 'edit'])->name('admin_product_edit'); Route::get('/admin/product/copy/{id}', [ProductController::class, 'copy'])->name('admin_product_copy'); Route::get('/admin/product/delete/{id}/{do?}/{did?}', [ProductController::class, 'delete'])->name('admin_product_delete'); - //products images + // products images Route::post('/admin/product/image/upload', [ProductController::class, 'imageUpload'])->name('admin_product_image_upload'); Route::get('/admin/product/image/delete/{image_id}/{product_id}', [ProductController::class, 'imageDelete'])->name('admin_product_image_delete'); Route::get('/admin/product/image/attribute/{image_id}/{attr}/{val}', [ProductController::class, 'imageAttribute'])->name('admin_product_image_attribute'); - //products categories + // products categories Route::get('/admin/product/categories', [CategoryController::class, 'index'])->name('admin_product_categories'); Route::get('/admin/product/category/edit/{id}', [CategoryController::class, 'edit'])->name('admin_product_category_edit'); Route::post('/admin/product/category/store', [CategoryController::class, 'store'])->name('admin_product_category_store'); Route::get('/admin/product/category/delete/{id}', [CategoryController::class, 'delete'])->name('admin_product_category_delete'); - //products categories + // products categories Route::get('/admin/product/ingredients', [IngredientController::class, 'index'])->name('admin_product_ingredients'); Route::get('/admin/product/ingredient/edit/{id}', [IngredientController::class, 'edit'])->name('admin_product_ingredient_edit'); Route::post('/admin/product/ingredient/store', [IngredientController::class, 'store'])->name('admin_product_ingredient_store'); Route::get('/admin/product/ingredient/delete/{id}', [IngredientController::class, 'delete'])->name('admin_product_ingredient_delete'); - //products images + // products images Route::post('/admin/product/category/image/upload', [CategoryController::class, 'imageUpload'])->name('admin_product_category_image_upload'); Route::get('/admin/product/category/image/delete{image_id}/{category_id}', [CategoryController::class, 'imageDelete'])->name('admin_product_category_image_delete'); Route::get('/admin/product/category/image/attribute/{image_id}/{attr}/{val}', [CategoryController::class, 'imageAttribute'])->name('admin_product_category_image_attribute'); - //products attributes + // products attributes Route::get('/admin/product/attributes', [AttributeController::class, 'index'])->name('admin_product_attributes'); Route::post('/admin/product/attribute/store', [AttributeController::class, 'store'])->name('admin_product_attribute_store'); Route::get('/admin/product/attribute/delete/{attr}/{id}', [AttributeController::class, 'delete'])->name('admin_product_attribute_delete'); }); - Route::group(['middleware' => ['admin']], function() - { - //translate + Route::group(['middleware' => ['admin']], function () { + // translate Route::get('/admin/translate/all', [TranslationController::class, 'index'])->name('admin_translate_all'); Route::get('/admin/translate/all/edit/{lang}/{from?}', [TranslationController::class, 'edit'])->name('admin_translate_all_edit'); Route::post('/admin/translate/all/update/{lang}/{from?}', [TranslationController::class, 'update'])->name('admin_translate_all_update'); @@ -318,36 +337,35 @@ Route::domain(config('app.domain'))->group(function () { Route::get('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', [TranslationFileController::class, 'edit'])->name('admin_translate_file_edit'); Route::post('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', [TranslationFileController::class, 'update'])->name('admin_translate_file_update'); - //site + // site Route::get('/admin/sites/{site}', [SitesController::class, 'show'])->name('admin_sites'); Route::post('/admin/sites/store/{site}', [SitesController::class, 'store'])->name('admin_sites_store'); Route::post('/admin/sites/image/upload/{site}', [SitesController::class, 'imageUpload'])->name('admin_sites_image_upload'); Route::get('/admin/sites/image/delete/{site}/{image_id}', [SitesController::class, 'imageDelete'])->name('admin_sites_image_delete'); Route::get('/admin/sites/image/attribute/{site}/{image_id}/{attr}/{val}', [SitesController::class, 'imageAttribute'])->name('admin_sites_image_attribute'); - - //Auswertungen products sales volume + // Auswertungen products sales volume Route::get('/admin/stats/sales/volumes', [StatsSalesController::class, 'index'])->name('admin_stats_sales_volumes'); Route::post('/admin/stats/sales/volumes/download', [StatsSalesController::class, 'download'])->name('admin_stats_sales_volumes_download'); Route::get('/admin/stats/sales/volumes/datatable', [StatsSalesController::class, 'datatable'])->name('admin_stats_sales_volumes_datatable'); - //leads + // leads Route::get('/admin/leads', [LeadController::class, 'index'])->name('admin_leads'); Route::get('/admin/lead/edit/{id}', [LeadController::class, 'edit'])->name('admin_lead_edit'); - Route::post('/admin/lead/edit/{id}', [LeadController::class, 'editPost'])->name('admin_lead_edit'); + Route::post('/admin/lead/edit/{id}', [LeadController::class, 'editPost'])->name('admin_lead_edit.store'); - //customers + // customers Route::get('/admin/customers', [CustomerController::class, 'index'])->name('admin_customers'); Route::get('/admin/customer/detail/{id}', [CustomerController::class, 'detail'])->name('admin_customer_detail'); Route::get('/admin/customer/edit/{id}', [CustomerController::class, 'edit'])->name('admin_customer_edit'); - Route::post('/admin/customer/edit/{id}', [CustomerController::class, 'store'])->name('admin_customer_edit'); + Route::post('/admin/customer/edit/{id}', [CustomerController::class, 'store'])->name('admin_customer_edit.store'); Route::get('/admin/customer/datatable', [CustomerController::class, 'getCustomers'])->name('admin_customer_datatable'); Route::get('/admin/lead/change_mail/{id}', [UserUpdateEmailController::class, 'adminChangeMail'])->name('admin_lead_change_mail'); - Route::post('/admin/lead/change_mail/{id}', [UserUpdateEmailController::class, 'adminUpdateMail'])->name('admin_lead_change_mail'); + Route::post('/admin/lead/change_mail/{id}', [UserUpdateEmailController::class, 'adminUpdateMail'])->name('admin_lead_change_mail.store'); Route::get('/admin/lead/new_mail/verified/{id}', [LeadController::class, 'newMailVerified'])->name('admin_lead_new_mail_verified'); Route::get('/admin/lead/released/{action}/{id}', [LeadController::class, 'released'])->name('admin_lead_released'); - Route::post('/admin/lead/released/{action}/{id}', [LeadController::class, 'released'])->name('admin_lead_released'); + Route::post('/admin/lead/released/{action}/{id}', [LeadController::class, 'released'])->name('admin_lead_released.store'); Route::get('/admin/lead/delete/file/{user_id}/{file_id}/{relation}', [LeadController::class, 'deleteFile'])->name('admin_lead_delete_file'); @@ -357,11 +375,10 @@ Route::domain(config('app.domain'))->group(function () { Route::post('/admin/lead/update', [LeadController::class, 'update'])->name('admin_lead_update'); Route::get('/admin/lead/remove/{action}/{user_id}/{id}/{mid?}', [LeadController::class, 'remove'])->name('admin_lead_remove'); - - //sales + // sales Route::get('/admin/sales', [SalesController::class, 'index'])->name('admin_sales'); Route::get('/admin/sales/detail/{id}', [SalesController::class, 'detail'])->name('admin_sales_detail'); - Route::post('/admin/sales/detail/{id}', [SalesController::class, 'detailStore'])->name('admin_sales_detail'); + Route::post('/admin/sales/detail/{id}', [SalesController::class, 'detailStore'])->name('admin_sales_detail.store'); Route::get('/admin/sales/datatable', [SalesController::class, 'datatable'])->name('admin_sales_datatable'); Route::get('/admin/sales/send_logistic_mail/{id}', [SalesController::class, 'sendLogisticMail'])->name('admin_sales_send_logistic_mail'); @@ -379,22 +396,22 @@ Route::domain(config('app.domain'))->group(function () { */ Route::post('/admin/sales/store', [SalesController::class, 'store'])->name('admin_sales_store'); Route::post('/admin/sales/invoice', [SalesController::class, 'invoice'])->name('admin_sales_invoice'); + Route::post('/admin/sales/invoice/cancellation', [SalesController::class, 'invoiceCancellation'])->name('admin_sales_invoice_cancellation'); - //payments + // payments Route::get('/admin/payments/credit', [PaymentCreditController::class, 'index'])->name('admin_payments_credit'); - Route::post('/admin/payments/credit', [PaymentCreditController::class, 'store'])->name('admin_payments_credit'); + Route::post('/admin/payments/credit', [PaymentCreditController::class, 'store'])->name('admin_payments_credit.store'); Route::get('/admin/payments/credit/datatable', [PaymentCreditController::class, 'datatable'])->name('admin_payments_credit_datatable'); Route::post('/admin/payments/credit/create', [PaymentCreditController::class, 'create'])->name('admin_payments_credit_create'); Route::get('/admin/payments/credit/delete/{id}/{del?}', [PaymentCreditController::class, 'delete'])->name('admin_payments_credit_delete'); - Route::get('/admin/payments/paycredit', [PaymentPayCreditController::class, 'index'])->name('admin_payments_paycredit'); - Route::post('/admin/payments/paycredit', [PaymentPayCreditController::class, 'store'])->name('admin_payments_paycredit'); + Route::post('/admin/payments/paycredit', [PaymentPayCreditController::class, 'store'])->name('admin_payments_paycredit.store'); Route::get('/admin/payments/paycredit/datatable', [PaymentPayCreditController::class, 'datatable'])->name('admin_payments_paycredit_datatable'); Route::get('/admin/payments/paycredit/delete/{id}', [PaymentPayCreditController::class, 'delete'])->name('admin_payments_paycredit_delete'); Route::get('/admin/payments/invoice', [PaymentInvoiceController::class, 'index'])->name('admin_payments_invoice'); - Route::post('/admin/payments/invoice', [PaymentInvoiceController::class, 'index'])->name('admin_payments_invoice'); + Route::post('/admin/payments/invoice', [PaymentInvoiceController::class, 'index'])->name('admin_payments_invoice.store'); Route::get('/admin/payments/invoice/datatable', [PaymentInvoiceController::class, 'datatable'])->name('admin_payments_invoice_datatable'); Route::get('/admin/payments/reminder', [PaymentReminderController::class, 'index'])->name('admin_payments_reminder'); @@ -406,27 +423,24 @@ Route::domain(config('app.domain'))->group(function () { Route::get('/admin/payments/reminder/delete/{id}', [PaymentReminderController::class, 'delete'])->name('admin_payments_reminder_delete'); - - Route::get('/admin/promotions', [AdminPromotionController::class, 'index'])->name('admin_promotions'); Route::get('/admin/promotion/detail/{id}', [AdminPromotionController::class, 'detail'])->name('admin_promotion_detail'); - Route::post('/admin/promotion/detail/{id}', [AdminPromotionController::class, 'store'])->name('admin_promotion_detail'); + Route::post('/admin/promotion/detail/{id}', [AdminPromotionController::class, 'store'])->name('admin_promotion_detail.store'); Route::get('/admin/promotion/delete/{id}/{del?}', [AdminPromotionController::class, 'delete'])->name('admin_promotion_delete'); Route::get('/admin/promotion/show/{by}/{id?}', [AdminPromotionController::class, 'show'])->name('admin_promotion_show'); Route::get('/admin/promotion/datatable/{by}/{id?}', [AdminPromotionController::class, 'datatable'])->name('admin_promotion_datatable'); }); - //login pages for superadmin - Route::group(['middleware' => ['superadmin']], function() { - //leads + // login pages for superadmin + Route::group(['middleware' => ['superadmin']], function () { + // leads Route::get('/admin/users', [AdminUserController::class, 'index'])->name('admin_users'); Route::get('/admin/user/edit/{user_id}', [AdminUserController::class, 'edit'])->name('admin_user_edit'); Route::post('/admin/user/store', [AdminUserController::class, 'store'])->name('admin_user_store'); Route::get('/admin/user/delete/{user_id}', [AdminUserController::class, 'deleteUser'])->name('admin_user_delete'); Route::get('/admin/user/login_as/{userId?}', [AdminUserController::class, 'userLoginAs'])->name('admin_user_login_as'); - Route::get('/admin/shippings', [ShippingController::class, 'index'])->name('admin_shippings'); Route::get('/admin/shipping/edit/{shipping_id}', [ShippingController::class, 'edit'])->name('admin_shipping_edit'); Route::post('/admin/shipping/store', [ShippingController::class, 'store'])->name('admin_shipping_store'); @@ -443,7 +457,6 @@ Route::domain(config('app.domain'))->group(function () { Route::get('/admin/lead_types', [LeadTypeController::class, 'index'])->name('admin_lead_types'); Route::post('/admin/lead_types/store', [LeadTypeController::class, 'store'])->name('admin_lead_types_store'); - Route::get('/admin/countries', [CountryController::class, 'index'])->name('admin_countries'); Route::get('/admin/country/edit/{id}', [CountryController::class, 'edit'])->name('admin_country_edit'); Route::post('/admin/country/store', [CountryController::class, 'store'])->name('admin_country_store'); @@ -453,42 +466,39 @@ Route::domain(config('app.domain'))->group(function () { Route::post('/admin/level/store', [UserLevelController::class, 'store'])->name('admin_level_store'); Route::get('/admin/level/delete/{do}/{id}', [UserLevelController::class, 'delete'])->name('admin_level_delete'); - Route::get('/admin/settings', [SettingController::class, 'index'])->name('admin_settings'); Route::post('/admin/setting/store', [SettingController::class, 'store'])->name('admin_setting_store'); }); - //login pages for sysadmin - Route::group(['middleware' => ['sysadmin']], function() { + // login pages for sysadmin + Route::group(['middleware' => ['sysadmin']], function () { Route::get('/sysadmin/tools/{action}', [AdminToolsController::class, 'index'])->name('sysadmin_tools'); - Route::post('/sysadmin/tools/{action}', [AdminToolsController::class, 'store'])->name('sysadmin_tools'); + Route::post('/sysadmin/tools/{action}', [AdminToolsController::class, 'store'])->name('sysadmin_tools.store'); }); }); - Route::domain(config('app.promo_domain'))->group(function () { - Route::get("/", [PromotionController::class, 'serve'])->where('path', '.+'); + Route::get('/', [PromotionController::class, 'serve'])->where('path', '.+'); Route::post('/web/promotion/modal/load', [PromotionController::class, 'load'])->name('web_promotion_modal_load'); Route::post('/web/promotion/store/{id}', [PromotionController::class, 'store'])->name('web_promotion_store'); - Route::get("/web/promotion/goto/{load}/{id}/{payid?}/{reference?}/{identifier?}", [PromotionController::class, 'goto'])->name('web_promotion_goto'); + Route::get('/web/promotion/goto/{load}/{id}/{payid?}/{reference?}/{identifier?}', [PromotionController::class, 'goto'])->name('web_promotion_goto'); Route::get('/web/paypal_payment/success/{for}/{id}/{payid?}/{reference?}/{identifier?}', [PayPalController::class, 'paymentSuccess'])->name('success.paypal_payment'); Route::get('/web/paypal_payment/cancel/{for}/{id}/{payid?}/{reference?}/{identifier?}', [PayPalController::class, 'paymentCancel'])->name('cancel.paypal_payment'); - - Route::get("/{path?}", [PromotionController::class, 'serve'])->where('path', '.+'); + + Route::get('/{path?}', [PromotionController::class, 'serve'])->where('path', '.+'); }); - Route::domain(config('app.shop_domain'))->group(function () { - Route::get("/", [ShopController::class, 'serve'])->where('path', '.+'); + Route::get('/', [ShopController::class, 'serve'])->where('path', '.+'); Route::post('/web/shop/modal/load', [ShopController::class, 'load'])->name('web_shop_modal_load'); Route::post('/web/shop/store/{id}', [ShopController::class, 'store'])->name('web_shop_store'); - Route::get("/web/shop/goto/{load}/{id}/{payid?}/{reference?}/{identifier?}", [ShopController::class, 'goto'])->name('web_shop_goto'); + Route::get('/web/shop/goto/{load}/{id}/{payid?}/{reference?}/{identifier?}', [ShopController::class, 'goto'])->name('web_shop_goto'); - Route::get('/web/paypal_payment/success/{for}/{id}/{payid?}/{reference?}/{identifier?}', [PayPalController::class, 'paymentSuccess'])->name('success.paypal_payment'); - Route::get('/web/paypal_payment/cancel/{for}/{id}/{payid?}/{reference?}/{identifier?}', [PayPalController::class, 'paymentCancel'])->name('cancel.paypal_payment'); - - Route::get("/{path?}", [ShopController::class, 'serve'])->where('path', '.+'); -}); \ No newline at end of file + Route::get('/web/paypal_payment/success/{for}/{id}/{payid?}/{reference?}/{identifier?}', [PayPalController::class, 'paymentSuccess'])->name('shop.success.paypal_payment'); + Route::get('/web/paypal_payment/cancel/{for}/{id}/{payid?}/{reference?}/{identifier?}', [PayPalController::class, 'paymentCancel'])->name('shop.cancel.paypal_payment'); + + Route::get('/{path?}', [ShopController::class, 'serve'])->where('path', '.+'); +}); diff --git a/storage/fonts/installed-fonts.json b/storage/fonts/installed-fonts.json index 33eb691..5ee2439 100644 --- a/storage/fonts/installed-fonts.json +++ b/storage/fonts/installed-fonts.json @@ -1,8 +1,8 @@ { "roboto": { - "300": "\/Users\/kadmin\/Websites\/partner.gruene-seele.bio\/storage\/fonts\/roboto_300_0ad88984b9f198326c24fec92aed1dd9", - "normal": "\/Users\/kadmin\/Websites\/partner.gruene-seele.bio\/storage\/fonts\/roboto_normal_f3da6241e732c10ab5ca1d8dd49e6ce2", - "500": "\/Users\/kadmin\/Websites\/partner.gruene-seele.bio\/storage\/fonts\/roboto_500_856d3f1c369a6fe7a02e7d7e6e29566b", - "bold": "roboto_bold_2e6c29a5b8010d8fba665fe873c5fdc4" + "300": "\/var\/www\/html\/storage\/fonts\/roboto_300_22960d4cd411770560d4d9cea16f3864", + "normal": "\/var\/www\/html\/storage\/fonts\/roboto_normal_571a9cfece0739eed437614401e4383e", + "500": "\/var\/www\/html\/storage\/fonts\/roboto_500_8be5e408a14fb8eb292a00011dd3d0ef", + "bold": "roboto_bold_8b68a5f5144c6e1cf84bdd7d532e3bf9" } } \ No newline at end of file diff --git a/storage/fonts/roboto_300_22960d4cd411770560d4d9cea16f3864.ttf b/storage/fonts/roboto_300_22960d4cd411770560d4d9cea16f3864.ttf new file mode 100644 index 0000000000000000000000000000000000000000..57a24e82f2d327ec0825d9d8a20af60060587806 GIT binary patch literal 36224 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 literal 0 HcmV?d00001 diff --git a/storage/fonts/roboto_300_22960d4cd411770560d4d9cea16f3864.ufm b/storage/fonts/roboto_300_22960d4cd411770560d4d9cea16f3864.ufm new file mode 100644 index 0000000..91253a9 --- /dev/null +++ b/storage/fonts/roboto_300_22960d4cd411770560d4d9cea16f3864.ufm @@ -0,0 +1,248 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/dompdf/php-font-lib +EncodingScheme FontSpecific +Copyright Copyright 2011 Google Inc. All Rights Reserved. +FontName Roboto Light +FontSubfamily Regular +UniqueID Roboto Light +FullName Roboto Light +Version Version 2.137; 2017 +PostScriptName Roboto-Light +LicenseURL http://www.apache.org/licenses/LICENSE-2.0 +Weight Medium +ItalicAngle 0 +IsFixedPitch false +UnderlineThickness 49 +UnderlinePosition -73 +FontHeightOffset 0 +Ascender 928 +Descender -244 +FontBBox -734 -271 1138 1056 +StartCharMetrics 248 +U 0 ; WX 0 ; N uni0000 ; G 1 +U 13 ; WX 243 ; N uni000d ; G 3 +U 32 ; WX 243 ; N uni0020 ; G 4 +U 33 ; WX 226 ; N uni0021 ; G 5 +U 34 ; WX 287 ; N uni0022 ; G 6 +U 35 ; WX 582 ; N uni0023 ; G 7 +U 36 ; WX 554 ; N uni0024 ; G 8 +U 37 ; WX 739 ; N uni0025 ; G 9 +U 38 ; WX 615 ; N uni0026 ; G 10 +U 39 ; WX 170 ; N uni0027 ; G 11 +U 40 ; WX 319 ; N uni0028 ; G 12 +U 41 ; WX 326 ; N uni0029 ; G 13 +U 42 ; WX 424 ; N uni002a ; G 14 +U 43 ; WX 564 ; N uni002b ; G 15 +U 44 ; WX 191 ; N uni002c ; G 16 +U 45 ; WX 286 ; N uni002d ; G 17 +U 46 ; WX 239 ; N uni002e ; G 18 +U 47 ; WX 397 ; N uni002f ; G 19 +U 48 ; WX 554 ; N uni0030 ; G 20 +U 49 ; WX 554 ; N uni0031 ; G 21 +U 50 ; WX 554 ; N uni0032 ; G 22 +U 51 ; WX 554 ; N uni0033 ; G 23 +U 52 ; WX 554 ; N uni0034 ; G 24 +U 53 ; WX 554 ; N uni0035 ; G 25 +U 54 ; WX 554 ; N uni0036 ; G 26 +U 55 ; WX 554 ; N uni0037 ; G 27 +U 56 ; WX 554 ; N uni0038 ; G 28 +U 57 ; WX 554 ; N uni0039 ; G 29 +U 58 ; WX 210 ; N uni003a ; G 30 +U 59 ; WX 195 ; N uni003b ; G 31 +U 60 ; WX 511 ; N uni003c ; G 32 +U 61 ; WX 553 ; N uni003d ; G 33 +U 62 ; WX 518 ; N uni003e ; G 34 +U 63 ; WX 454 ; N uni003f ; G 35 +U 64 ; WX 913 ; N uni0040 ; G 36 +U 65 ; WX 625 ; N uni0041 ; G 37 +U 66 ; WX 613 ; N uni0042 ; G 38 +U 67 ; WX 649 ; N uni0043 ; G 39 +U 68 ; WX 655 ; N uni0044 ; G 40 +U 69 ; WX 569 ; N uni0045 ; G 41 +U 70 ; WX 563 ; N uni0046 ; G 42 +U 71 ; WX 684 ; N uni0047 ; G 43 +U 72 ; WX 708 ; N uni0048 ; G 44 +U 73 ; WX 266 ; N uni0049 ; G 45 +U 74 ; WX 550 ; N uni004a ; G 46 +U 75 ; WX 631 ; N uni004b ; G 47 +U 76 ; WX 527 ; N uni004c ; G 48 +U 77 ; WX 865 ; N uni004d ; G 49 +U 78 ; WX 710 ; N uni004e ; G 50 +U 79 ; WX 677 ; N uni004f ; G 51 +U 80 ; WX 616 ; N uni0050 ; G 52 +U 81 ; WX 677 ; N uni0051 ; G 53 +U 82 ; WX 635 ; N uni0052 ; G 54 +U 83 ; WX 592 ; N uni0053 ; G 55 +U 84 ; WX 597 ; N uni0054 ; G 56 +U 85 ; WX 657 ; N uni0055 ; G 57 +U 86 ; WX 617 ; N uni0056 ; G 58 +U 87 ; WX 896 ; N uni0057 ; G 59 +U 88 ; WX 612 ; N uni0058 ; G 60 +U 89 ; WX 599 ; N uni0059 ; G 61 +U 90 ; WX 598 ; N uni005a ; G 62 +U 91 ; WX 240 ; N uni005b ; G 63 +U 92 ; WX 394 ; N uni005c ; G 64 +U 93 ; WX 240 ; N uni005d ; G 65 +U 94 ; WX 416 ; N uni005e ; G 66 +U 95 ; WX 432 ; N uni005f ; G 67 +U 96 ; WX 286 ; N uni0060 ; G 68 +U 97 ; WX 536 ; N uni0061 ; G 69 +U 98 ; WX 554 ; N uni0062 ; G 70 +U 99 ; WX 515 ; N uni0063 ; G 71 +U 100 ; WX 556 ; N uni0064 ; G 72 +U 101 ; WX 517 ; N uni0065 ; G 73 +U 102 ; WX 331 ; N uni0066 ; G 74 +U 103 ; WX 555 ; N uni0067 ; G 75 +U 104 ; WX 549 ; N uni0068 ; G 76 +U 105 ; WX 224 ; N uni0069 ; G 77 +U 106 ; WX 228 ; N uni006a ; G 78 +U 107 ; WX 490 ; N uni006b ; G 79 +U 108 ; WX 224 ; N uni006c ; G 80 +U 109 ; WX 886 ; N uni006d ; G 81 +U 110 ; WX 549 ; N uni006e ; G 82 +U 111 ; WX 560 ; N uni006f ; G 83 +U 112 ; WX 554 ; N uni0070 ; G 84 +U 113 ; WX 558 ; N uni0071 ; G 85 +U 114 ; WX 336 ; N uni0072 ; G 86 +U 115 ; WX 506 ; N uni0073 ; G 87 +U 116 ; WX 321 ; N uni0074 ; G 88 +U 117 ; WX 549 ; N uni0075 ; G 89 +U 118 ; WX 481 ; N uni0076 ; G 90 +U 119 ; WX 754 ; N uni0077 ; G 91 +U 120 ; WX 486 ; N uni0078 ; G 92 +U 121 ; WX 475 ; N uni0079 ; G 93 +U 122 ; WX 486 ; N uni007a ; G 94 +U 123 ; WX 330 ; N uni007b ; G 95 +U 124 ; WX 221 ; N uni007c ; G 96 +U 125 ; WX 330 ; N uni007d ; G 97 +U 126 ; WX 685 ; N uni007e ; G 98 +U 160 ; WX 243 ; N uni00a0 ; G 189 +U 161 ; WX 221 ; N uni00a1 ; G 99 +U 162 ; WX 544 ; N uni00a2 ; G 100 +U 163 ; WX 571 ; N uni00a3 ; G 101 +U 164 ; WX 723 ; N uni00a4 ; G 102 +U 165 ; WX 516 ; N uni00a5 ; G 103 +U 166 ; WX 217 ; N uni00a6 ; G 104 +U 167 ; WX 605 ; N uni00a7 ; G 105 +U 168 ; WX 430 ; N uni00a8 ; G 106 +U 169 ; WX 799 ; N uni00a9 ; G 107 +U 170 ; WX 442 ; N uni00aa ; G 108 +U 171 ; WX 456 ; N uni00ab ; G 109 +U 172 ; WX 545 ; N uni00ac ; G 110 +U 173 ; WX 286 ; N uni00ad ; G 190 +U 174 ; WX 802 ; N uni00ae ; G 111 +U 175 ; WX 427 ; N uni00af ; G 112 +U 176 ; WX 378 ; N uni00b0 ; G 113 +U 177 ; WX 530 ; N uni00b1 ; G 114 +U 178 ; WX 361 ; N uni00b2 ; G 115 +U 179 ; WX 361 ; N uni00b3 ; G 116 +U 180 ; WX 281 ; N uni00b4 ; G 117 +U 181 ; WX 557 ; N uni00b5 ; G 118 +U 182 ; WX 475 ; N uni00b6 ; G 119 +U 183 ; WX 246 ; N uni00b7 ; G 120 +U 184 ; WX 243 ; N uni00b8 ; G 121 +U 185 ; WX 361 ; N uni00b9 ; G 122 +U 186 ; WX 450 ; N uni00ba ; G 123 +U 187 ; WX 453 ; N uni00bb ; G 124 +U 188 ; WX 725 ; N uni00bc ; G 125 +U 189 ; WX 756 ; N uni00bd ; G 126 +U 190 ; WX 776 ; N uni00be ; G 127 +U 191 ; WX 459 ; N uni00bf ; G 128 +U 192 ; WX 625 ; N uni00c0 ; G 192 +U 193 ; WX 625 ; N uni00c1 ; G 193 +U 194 ; WX 625 ; N uni00c2 ; G 194 +U 195 ; WX 625 ; N uni00c3 ; G 195 +U 196 ; WX 625 ; N uni00c4 ; G 196 +U 197 ; WX 625 ; N uni00c5 ; G 197 +U 198 ; WX 911 ; N uni00c6 ; G 129 +U 199 ; WX 649 ; N uni00c7 ; G 198 +U 200 ; WX 569 ; N uni00c8 ; G 199 +U 201 ; WX 569 ; N uni00c9 ; G 200 +U 202 ; WX 569 ; N uni00ca ; G 201 +U 203 ; WX 569 ; N uni00cb ; G 202 +U 204 ; WX 266 ; N uni00cc ; G 203 +U 205 ; WX 266 ; N uni00cd ; G 204 +U 206 ; WX 266 ; N uni00ce ; G 205 +U 207 ; WX 266 ; N uni00cf ; G 206 +U 208 ; WX 669 ; N uni00d0 ; G 191 +U 209 ; WX 710 ; N uni00d1 ; G 207 +U 210 ; WX 677 ; N uni00d2 ; G 208 +U 211 ; WX 677 ; N uni00d3 ; G 209 +U 212 ; WX 677 ; N uni00d4 ; G 210 +U 213 ; WX 677 ; N uni00d5 ; G 211 +U 214 ; WX 677 ; N uni00d6 ; G 212 +U 215 ; WX 523 ; N uni00d7 ; G 130 +U 216 ; WX 677 ; N uni00d8 ; G 131 +U 217 ; WX 657 ; N uni00d9 ; G 213 +U 218 ; WX 657 ; N uni00da ; G 214 +U 219 ; WX 657 ; N uni00db ; G 215 +U 220 ; WX 657 ; N uni00dc ; G 216 +U 221 ; WX 599 ; N uni00dd ; G 217 +U 222 ; WX 593 ; N uni00de ; G 132 +U 223 ; WX 586 ; N uni00df ; G 133 +U 224 ; WX 536 ; N uni00e0 ; G 218 +U 225 ; WX 536 ; N uni00e1 ; G 219 +U 226 ; WX 536 ; N uni00e2 ; G 220 +U 227 ; WX 536 ; N uni00e3 ; G 221 +U 228 ; WX 536 ; N uni00e4 ; G 222 +U 229 ; WX 536 ; N uni00e5 ; G 223 +U 230 ; WX 846 ; N uni00e6 ; G 134 +U 231 ; WX 515 ; N uni00e7 ; G 224 +U 232 ; WX 517 ; N uni00e8 ; G 225 +U 233 ; WX 517 ; N uni00e9 ; G 226 +U 234 ; WX 517 ; N uni00ea ; G 227 +U 235 ; WX 517 ; N uni00eb ; G 228 +U 236 ; WX 223 ; N uni00ec ; G 229 +U 237 ; WX 223 ; N uni00ed ; G 230 +U 238 ; WX 223 ; N uni00ee ; G 231 +U 239 ; WX 223 ; N uni00ef ; G 232 +U 240 ; WX 582 ; N uni00f0 ; G 135 +U 241 ; WX 549 ; N uni00f1 ; G 233 +U 242 ; WX 560 ; N uni00f2 ; G 234 +U 243 ; WX 560 ; N uni00f3 ; G 235 +U 244 ; WX 560 ; N uni00f4 ; G 236 +U 245 ; WX 560 ; N uni00f5 ; G 237 +U 246 ; WX 560 ; N uni00f6 ; G 238 +U 247 ; WX 568 ; N uni00f7 ; G 136 +U 248 ; WX 557 ; N uni00f8 ; G 137 +U 249 ; WX 549 ; N uni00f9 ; G 239 +U 250 ; WX 549 ; N uni00fa ; G 240 +U 251 ; WX 549 ; N uni00fb ; G 241 +U 252 ; WX 549 ; N uni00fc ; G 242 +U 253 ; WX 475 ; N uni00fd ; G 243 +U 254 ; WX 562 ; N uni00fe ; G 138 +U 255 ; WX 475 ; N uni00ff ; G 244 +U 305 ; WX 223 ; N uni0131 ; G 139 +U 338 ; WX 934 ; N uni0152 ; G 140 +U 339 ; WX 924 ; N uni0153 ; G 141 +U 700 ; WX 178 ; N uni02bc ; G 247 +U 710 ; WX 430 ; N uni02c6 ; G 142 +U 730 ; WX 310 ; N uni02da ; G 143 +U 732 ; WX 435 ; N uni02dc ; G 144 +U 8194 ; WX 510 ; N uni2002 ; G 145 +U 8201 ; WX 204 ; N uni2009 ; G 146 +U 8203 ; WX 0 ; N uni200b ; G 148 +U 8211 ; WX 651 ; N uni2013 ; G 149 +U 8212 ; WX 771 ; N uni2014 ; G 150 +U 8216 ; WX 178 ; N uni2018 ; G 151 +U 8217 ; WX 178 ; N uni2019 ; G 152 +U 8218 ; WX 172 ; N uni201a ; G 153 +U 8220 ; WX 299 ; N uni201c ; G 154 +U 8221 ; WX 301 ; N uni201d ; G 155 +U 8222 ; WX 290 ; N uni201e ; G 156 +U 8226 ; WX 323 ; N uni2022 ; G 157 +U 8230 ; WX 641 ; N uni2026 ; G 158 +U 8242 ; WX 170 ; N uni2032 ; G 245 +U 8243 ; WX 287 ; N uni2033 ; G 246 +U 8249 ; WX 297 ; N uni2039 ; G 159 +U 8250 ; WX 297 ; N uni203a ; G 160 +U 8260 ; WX 448 ; N uni2044 ; G 161 +U 8308 ; WX 361 ; N uni2074 ; G 162 +U 8364 ; WX 554 ; N uni20ac ; G 163 +U 8482 ; WX 617 ; N uni2122 ; G 164 +U 8722 ; WX 570 ; N uni2212 ; G 165 +U 65279 ; WX 0 ; N unifeff ; G 170 +U 65533 ; WX 1026 ; N unifffd ; G 171 +EndCharMetrics +EndFontMetrics diff --git a/storage/fonts/roboto_500_8be5e408a14fb8eb292a00011dd3d0ef.ttf b/storage/fonts/roboto_500_8be5e408a14fb8eb292a00011dd3d0ef.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dd04ff19d02f52cdf313633d919423bdf80b3e0c GIT binary patch literal 36420 zcmbrn2YeJo8$Uj?yLXqKOD6@=NJ0wukiA||KI2LKbYOyz1i7ko_Xf!Ghv)D7LJ3$l3Fxv z*4(tx^d4igPvh?379BfuxicR_n#RnInJ1Td(h-bNp%v;Z5W%0Hd&vch5vE4F?%fw6H( zsGmO^Hv;aOOYwVMTvr`FdeYP%hII(R?>+GTYoo>v8ra{_WF}){&>p`(df?P?ay2;= z*FmVCG-lxFA@Ls-;`=PTgU=l|cH$)GXf_z|Y^2}EO&BsRPTE$Tu^GehdlzP+-{fj0 zJCm82`LiGv%Eqce*08YfdiEfzot4qiERO!-7+l8etXU7cloekpB{l3RE*LJDwP8)-*0T947n2?Iw$3mNey2m^9VVPwKZ+>c=Fu+IgRE6YvMK`l>l3lpr@-?fgk_ z1_90>z*%Yzwg=Sgk^E)+A3agi&a<-X@Kn4$H$NvjD$<;i&S!rb!$$C4E^Nv7 zDe}Wp_1d(lSJ1jO!&`^Qe@I1UqA`D#rXxf~+j0sJB9#F-c1xMvl4X~zcE2*aA2lzh zhS^MX;1Q|M?dO>|n5Jm6q@ZPVK$`>5+~(29m9Kfz`MW=toZk`s46R z9HGB*kVM_DoK?zXPY0DUdu1_*I0ly41G7r~ynYSDDBz~m9u7dQ_DE4Vy3Ee3_DbST zl`?^x)QHr)WKnFgEdnJfRTLZ}Ql(4R+P>NLCvGY%=V9%4w*MZb?6<;yKWe*k^0mTi z{AFz@e|Zb9x0S!D4WP1B`)G?cRI1DCG0p}%GnI7nCRU5hRcmC{Mi-vYeSdV)-{^iS zE>ex|C*dNAx*r>qMBR_ImP*{+eKpiSmF@;vOC!AQW~BPl-BfF74bNS4G&emxBRwxS zzaY;R6&)Rwnwy@QVvdT8R;oxK3`fzJUx5u@PXY&^y@fmaj#vUMVvYr zeecZdmYF_e!7Pqtusl|etyE2gPZ4}3t39HOj`8AHO&s$<+xc1cx>;iM z1>qTpNdqp@2r;0%fHHePR%w{zMg?w`R`R+`v)Zea*{fvP)2yX6z3x}Bmgaaav+G3U z=G!nY(Erqw^t>3+`MkW`bRY&Z#`RN@_b-GqQwEP2w0rrAUAvYqIk3Ck(+%6Uo83kV z-@jz(zMa~wJ-a(JENa!hLBn>MG)wwuma=i-u3gJoE_m~e73OBoJkzRGvu@p6RFo~= zv14V6`MY*5Gd1nrrA?dWUAwmaqop#TCHPf0U@gpank8Tc)?qKJwR3EQvD#LO3bv6Uj|6de|e zlRe&ATG>NAYGP%oZ1bClja6j~zBPv0=ByExPh$ zLv~FXxuN-nZ?2zI z^sP2X+t+BxB>r!n6T_qVx#bB<8)~PuX=T*Yc&VK{2|P7~CFwm?FyxAuEM>8FmQ~5_ zkF$SPCA=-Iz$Dw`v=~!_MV2#oTkTQ-uO0eUD6gKcoj<$wpt?@J&|_B#@1eauac>Xp zK`~F#ejZA1Y0B0qHIzdv5WE|Wk<JZxf7; z=5BzsG|bZ_!PPvM=%H0gO_Ah0Yq%{ZJR(EPC`*{&S_MkVulH`>m4E&H?yqwBxam{I z$rGlRjFY7y+8ONxFW_}5cp)#;E^3z|KRNdHaqZBBvqwH8EWHVEou;>;B^BzFWCCa= z12m5U#7xu$C972SfTT(?-G!=?8fMB%vq{eT+9s)PqOx}SC!eD2PLTXXz(OqRsD{N6 z57J)|hF66B$1CJ8(y{De)>413S48V~892P>E-6=eJm1AtAk6Xww+0X5$x2a0CcinN zXUU++^UJ4w|NQ5F&RC&smbUMd!b)E0FnsQsS&J@DzWm=wVNy}3G%rtk^U{Q;@5S2=kKZDzNa+pQl_V(N5j^`}Wq(_c5 zd{($*Ii1i=?}1aTJSvg_yBW6VXy`h+T(a!% zAcr{Kt2Sg#*-uXP-C6CQz+XdV4jwma`LxD;@}qPEEkSPzOz*Hr=(a=DsH9{9B+6=m~u*jq-GZdKK@v z1j3_I&1Q?c9}Gf-CCe$$;3A`Q@~!Fez$zF1h$%UA;ydlp=U;2T^Ag_gcE?4DOTU~w z*YwUg`RlVYw0mECtKH#^xv2}E!&OJCUTs>xe(ZJbw*%wT40Mu@@i8;o6ZnA`B^nr$ z@4zq@Bj7xh_^^`iIO>#|IYQ;%P1PTMq1-tIo;}>f6JuC1tI4LQ{qzIr8Y&UsoI$wP@k!k#lECj{Y-Bh76uO8I;o3`A`W5pNT^6 zhpGN4LU%{6qg}oBnT&!#Qm>=KNP(MakIt&(Jsnjh2`wMIGThTS63$*~8~O^pR)T&8 zYGGkfR%S}g1ILkbAY@&=m8(qOcKpVqD=V*ZN!zS#t(^MBk5^mGO18AhQO4lLGE#dC@FNH0N=?^e7n_oE^Qop-D{ zN6^e=Z^+l40F99AIy7knOP=(LV}m@P;#Fzp4|lZ{C$trJ0Zo19AM!?wXeE})2B`j3 z(}+GXq6w}M^|5PHK-4K1(b5Eu(n0zZ%Tg6)r6;Yvaxcg#JPuLfM|1d`9%lp+DwCFczV3*R1 z7v9;nWm=mx+PSA%>88KLdTURazcQ_1`K&Rl)u);?C77PF+EdY+8d-LmmrX|VpA;!S z^vRE?)MTTPR71td9-0MvyR^__XxXF6>^875uRArYrKw(*ke)@JOCnroIvHj%%L?+t zLB7#3vKidEAe<$qD3Zk-uFzEs)u@`09uXd1)s~}#b2G8@f(SA-%%22(`@!1{Y)e|N zdokQP=hT?4^Sb9oEE>AN9HyPnj-S>(RsDmWXG-h+Sm zFttJsZrv$=K$Xm#tg$O3^F!^sm)o|zcWxUuuddP9@yVHQ_Ve+4>1l1{o!_->hpMG4 zt5)ZW3;*KjJeSLD}OOes4p?#y)odup`Q7r`h~_2p+KTpJ$FfL zSMgkC*Rh2q=P2Z6&^a&1B_wY~no9tuuIJ@{acR`>$@8>-{?vZqu~Qb`(mwlp@}e2@ zADHZCP7i*yR#NHAPp(R9wR)3B{9rmd^4U?s;u{K?@+;@lAZ6s`5;?J$)N~>w60Ag3%CFJd=l|^2{#qli<6&?8&eJPZgg?LPjZ$gX zwih-;@~?l^9=*Y{&n>;k3wLV|@4oWf??2DG{rBR{WDgMjKLh>)!T(#TQnWxC@E+yj z6;H%Fp)tsVMnZD1=hB7MaJVldB~=b17)hI1&-b6;HMhT^UHWjx8y{VkE}k~o_iCpv zw7R67*{$4o^y5E2ce?Ws+>c;tD`4uR)1;t0L-4xw!9cUn2jN}wX0wWqFA9#yQa^9d zpbL^!D2n`(W4H8fMN7HV(N^jvE!T?9o9q{~F~orhhB|=3A6!T9lqb%MCr<@CVDPd< zX-beLO0Si_aU62UuQ&!st)&r;7wL5!@U~)5%RNv_71l!yOe8Oe{?b4&vOuHbZfXhq zU)GpfB~T{9uaf1fo~4;dbq5VWE6Y)0Ql(@;L9o~gND3+UI%v1lceEd0l6id|U(Tyk z{=0_u&+bzBqtcU|wa=w$?++{9!SgOo;H~+@d)K+;&pYF8Yma*H%Ew*!GF1{|*6s;o z=3`YFv)6-GV%7d;VPt`+c)1dV0Y}KgJcTp2QiY?$;gFuIkd`>6ne2|&;gAOQw&Ac9 z@0Ky!M5BiJD=v)JiMDKfYefaB;;BsMZTSYihO%tcB>eCC!#{gBCt~ce#?`k{5Kqq6?`|(ar_|F$DoxQ&|uOyp4rDW z$BYW{R1jUKqt_KN-tE5ah%5-(c3W><68(D^8~c{41h6V z#p?{wEG~@bfXW$7<%2_D6QGM0{i@h9-GZwC*Hysu0P3*6MD!2=bv^=TewAJXb^@YSESRk_R0L&}1WTft{I49XF( z8naK8OhW&$h!YVNrxD;F&lrbe3X$g{#sAS?0HjERN!Q`2$tk>?mRjU2^B7c!b@WDJ{ z19!ah=Jq4fyF1=|TT-uR@9*2ki$3jqnK$3JM>}@ebRTNA^VhETw1=EMaLI+wfvo_< z);g#Gk;29au-b!MPz!VzWMdd#Y9JT9=P{NHapn~W0L=nnLhLH3X+qwnXC(8r4k_~w zo~Zrg(Ei14UTK{LTFKQoXn)8=uZfg%bnEe)*4Ph~?k7}wU{Mv{&SY18v zVGjmJP(vjl>_UBfi@>*tzCm6iq68X=@#z&!6qkC#qo9uor$R=uv`72VA+ZV`zH&Bi zq5bYS$(6Zl7A@5NlhSST#4pRYsjbNz)1f}+D}_tH;f@5Rl-Nn5FTbiF{GzmD}1Ci zR2D#uNlR@Okp*gY9%KBky4`F)is9!72!Z*4us%0~V`36xRzRk} zX(GMAC-7*;AAdR?z~XG6Onlf8?Q)jQnE58Y1;NHN1&6r%=ko?1e)?o>#@q9)>hD%f z0t7X{fF!~ONbuhl!EL61YmYSheeGB6X1Qj6be%_k&W9^4A9hqS9(@I_dsJx-=n!#N zeg<@bhSc=|%SRtE&@R}#1w?ESQkT<&Q_cDb!FsyVl@uK{LgJFpUB+{GRjnmIsePq= z1h4kj{FK&$SCwCvLL9XnDN?lK7wKE+Ga41-K`2)Ml^^0~;&nbyiFX@3)qn~pAwcwZ zg4*!HvAhGXq*cwSyBPNZ{zJQ%RckU135C(1CiG5ASA1CjTn z0ryPyfBuE{2El*3L%bIr7u4oiuou0%Kvs&68Xkey=GnqhgD5(_bEkRL-?iU2cc(t& zNngo%c(a*h_{+P5Q!79j(dEMl=}c zM}j^E#?P4{UV zQIVLi$e5@!G7e$PQao0+22FZ%+eOarzR+(#m*VotAJ6*Wx?J7iXgMco!IGtY6Pr&v zx@_N(7F~yQDeAeY$FY4{rFGrI4m5x2Lcea!yATFug6HM{hoOjW4OJub=vIWTwNRK4 z1SQlh0|~~!h+o|P4O0+}v>G5zkEJpEXY4DIJVF*SQQ!^=4-?TZOPFq%=Y0R+2gN~G z%SWhZu9wf8yrrno)(JBuDZE0vvaH0+9G}h9zSjP>*zL=;#w&O41r;FbBmappOknL) zR=En`&`C%{eGIS-y~dlKRN0S)MvVw1mluV7qCK-2(-?TRg#c9e<#QSNtvpTysb24? z%1veR`H~-?r1;%9QEtAeOzAUuE}yf%xc!g=L*YG=WB=mSzkjFi)IIw%?E47U6rYlT z>kvfIhN>|libm8XLys|gIpqwX4P{^8+US95k}3YF28a{k+S_dm#nDHjLEPJx69Y`A z5=}`33G;_|COqYr)XYx$g#7n(JBVe(ul?IF*aD%E(%#x3MI_un|O zh+mxlF2UXfum=LmQLq>ntI@(gV~@5Xbx6my0M7v2Fay*$CQuufb?{i+r8ueY!Txb$ ztL=klgz-y$6C!!){VK0JS7|?L+Ovx{ zFPSxPq`Y;-tnlfxKu;9(y<(0+9OxO<5*6*HC(%Pno}xJ+c){b{#l(hA>aDp`;ugSu z%+&+ey~wmcB0_3PR1}5XK6~Shvj>Y>nycmQzj{?(d~ndg)8QZZy*1!q#dN}cXRVtO z1nkFx(=Aq0($a}wQz(e%#V!qS#H=(fga#4rf?BXMVp=9yc&&WhB5G(D-BqLXAHm1G zA`mo-eFC03Wfi#WdZa#(12FF~BI|tT^pWDgZ?wO@pYp>~6US|zwqnGA4}QPDX!7$d znms>tk(5@!Gv|$d^wZ@BgF3ETv|vuF5?=ekws&Xqt1~_zDKibs{cp?|D{G<#xHLkm zK2wBXHhSp}GJ2~42R zB^>%nA&;%wx^>-xR;>`ge_LzA7vY^j@b9)!2GXp(l9-HnjB?7^JwUf17XMg7b@F4a6vnVo|F%) z_I!u*GZ=*7s8tcYQV$p=S9f#X;wMYAO$l~^*7Bp+y* zaOSIyldrsWKq~Jwyvv9vUT*qeU4wF^aQvbjJI`WnERo^nvCl@CBc)gg~;}@hXwK(H#gkW?vyWoux#bDDJ!Imt7n`c4`ygdvxQvl zfSyR`3F#E0AJZwQCq9(zBN@buHF{!PYNi$lIFFW!Cf zm+}RZ)--RvYSJPpUE?+8jC`2RE5`Ax2Rq)M!EaAKs?SO3AbJqYTB!aaH~I-0gQWCVM=zE%G~J%x$8CX>K#jPzEvZD(QmEpv~}xhZlVzqyVCrEuCxB&>7R2D;;U zygQwZRQ)rmx#x|~kSAcOB+%TJ5=5jP>^)j!&v{L4H8`3gzXyYY6N06__5^EbRnG)c zldB5OCnrZF3lFrBzzZhemAy-z8eo!gccY^rO{H%}{@vx!?L#N;mJjdNaY#R2Wm|{) zrx%q?x^0>|Xux2e-l%DAwH`ZHym$Pi=6zc?tlRME?$f)kdwal}1H1KYMZNQL-j*hq z8bOoksxmK4CITIbFp%jMogjZ`DS{=jj?XyR<`aL^UbvhaBVO}{|j7#xRoK*iB^3WuYk({ z(np{O#h%84Ng~w3&&Rm%v3}hGg9Ye5AN};W&nJRHEHZ-I zFueIi9-_U?yJ>%X`2|eyZrULpBwgWy9ltuh;S;n~QkoP6h=Q~>@)bZ7%8FFvOSosG zk2NPo1FTDBCgIHu6{L$iCa-Km!bUPDOEWJ9mK=q9{<_L#t@EHec}2DR^o>u|7IHK1 zBYpcQMY|jRp4_BEUnLI^bOuh20|H-vkbwq+5`7HG|7(BHT&bvHos{OdDR($|a;x;k z>6d8~>S`OMwdMx!ZWpNG!n@6&J&FMrGP@FbYG!2h!AvYQc?=~r+(b?`bhWCSmz$cG zlb46ok{F6}TaXJM9U~3Ywpvb{kl(gv?=$bie{JI+KH&2A>h;eLew(wR?!zy?@7?Ez z%Ma@Uiv1XsXW-EhzNG)iiX|r$e`e=S?Y>!P=J9~J1Ta?u%%)h%)?(!RplK{p)(PgY zN|aw{56dbI_k!6JPNRxETZ(ZPr03Bu3SLH0=tr6ZuQ2~aG6;-Yzh(gXHlir(e zL5arN638*{I1y+khSV}*y|qCuW^%UJa;ivV&nQ&@tGg_Dc-KAOJhd=oTvzB5i?#LqC8Zs37YaMUqOVP|SiwzoS?0sc#Eb@hh^<;Y z8oJJU$!iC?)t51de4yQ*R??i@(y~$GmMt4MYAJ1aq?ropwrNwhpbZvz(aMxSCBT%< zl30H=J~>5TfrdfEbqul zN#TiC6E5?ll<%)4e7Si*iFURn`9?THSX!BBIt7k2T#XYMEjs4HA*;d-53eEkeT0)= znOX%j1$Ys__x7v72CHJVhnA_)`p@A$AuSAfOr#|lz5>eJ&4BF6$jwi3%i|b$ZylB* z=`ervQ|FADme)4(m1{W+pv&td+&KDa>90UfP9kwi_SCVITQ0iE^=Mr8hkY$D?1M?)e zAftd3#+ZT_Ozud8-*{v+RN#DQ6UdQL8f^Xe{FZqumkb`gX633)$4_oryK4Q&XP;YD zF?GxbS3ej%`u%S|7(H^%?1gKVZT|4=8_%y5_D4L1j)bMxHKd6@Q_~IXuqoibT>tJoqFB*Ke+NTxT1)i&2_*>h> z!{iRqKu7+@+fJ+&9{z8I+o+w~a6O#@40cqk(Z{EDA z-IwDlZpvpRistsx(h(InjrdjrcwCYiK24*TWVL5w6wyPPU`Zg&Bx+TAzrFrV2D_plcPV9V=b-a^cRMN1P~8J!Qq7CEER89%$F@Z(cfW<>GhW`=IZxMooFdkN0>` z`P!*7o}0=Sob2WJq*L2bgI;*6_Qa+9qr*K1AK7>2t4n;$)czgX^)9fDd3p5VUO7t# z@4oQ;h2pvWJ9q6qeEdseq7tgj?9?qQ&ze=zX&}+R@|~P&x`2pH7$VLHWv}qmvL^gkSWC&cx=)_@; z<+F8aVnJO(T%r|gW$0*g%{3c_$VOIfW|=)ROOiAT&Zd* zG9RtsN>bJEG$g1Y8^Nk4Cn)_6Xvg0_wq@JC&3$_G88*Ck&t81T2JN?PTeZ8JH(~i{ z5s%pT@b0_34WG+fzx%Fs_~Z%go%f`!8(+VCaQyzuZ@e&|%hJgulNWb-cF_)AdCzw3 znzmQFwsSX6+IgP$`sgEVhc-&vaqcYdg^^k*y(QD?v^aPb*Qvp}S25U=^%@E6MG}F_ zX_R=6IjzemI63GVE@*K(Aj=*JAEy_NtO2B$s~4=iZ&5^$HNjfTTHo5%+Q&M|I@7ws z>fcvAYQ;heNMi3qQY@KC^fUq-y22p&Hn>YkFoQvp#e^V;9s@ChzNGd(X{i75o4y==Gd}BhR<8OP&+-a)BLKj%Xs}dJs2{Z zyR+r;B6%0AzpcMg#`9JV-4C*84xcQal+%#$gSApvKnAl2F)a8aeDbWI5m7km}YHh3a4(&TDGGQ}qdXkg{04ienvdG$>Rk1BQGvq%>hB+(S-ysPUN$$G)_8YNK3Bz^35F?Y69L z*0)99mC{#_k>kgYk!x@5fZTb>tdgfIkKNWZ#+veK+a`+}<~M(eV|+Hj-O}2$8+;&E zd*ZfH<@<>JWmL8@M()SMrn&M5uk>Hk*P|nd| zX*2Jx?fO#N#D{#zb1DwVo#X`{X*2o4kNC7l=sa*&U)m(8rgxz;_g4K}Ix`6~pEXhf zACb@&qdi?$B}TCj6)X9PmPobs`Y}k{MJSDa6xhcCQu4FA)M=1VsFWInV~ubg!?92sfoTD)k50=QK? zkDxQQoX5ICa+rv~y{s!El?QcNnBOqF(a|^Nuim!gh0@ha_8e_i|LF#c`zWIarb53Q zG;`XBDYojXif7LmpPpAxV+c|5I7F~p3NJP!r36VS0c7EVIT#967@j03jxv^i%3}E^ zWtZ4^l=kZ>Gt)lB^XuUKON6Z&&IYQ%u9c}YnqmMA-QUNpBGP9Jub-Rz=ovTj0m{6b zKWbpGp4Py_$SWlrD#VyGz#8~Msb}$GS-wcK6{|Sh#ZjG&%gynQkKsw1%dy ziQ=#dN$v(cEP&NiC9k!c!sTI%qyU(FI`CQv3WDy3Wpl`8N)D42cKlKMiwFD&CD2d1 za@qM1DI1)vlA7^da%Z#~qx!kpMN)%cZC}P;?dj4i^pRTCdU2cfMUC1@=L_4nFMNu2 zNZ@R=)`*`27YSi`s(&c?@7!@%w|m?SBu=gHUcdcX0JoWti+~Bs$2^bJP5M9vFfk;v%yo03^`$Q;4S!x^cySy z{vRriKpZR~7me#{=|w&|X7iL|JpcH6uWb3?K;Mq-d-J{>+V@okzIy89j+R?bo!(}8 zcFd@O9S4pXJ(T2YU&z;&gnWI~pXBSSd^V%|J>d~sVA_M+xP8vAq>VVg#^aeEe1mog z3t5@f7d6>+@C=6BbOHE7U3L$;B|TdvZNf8qEFrA@|rl3aRxb{$}{u{KA310La6=&plQtDY@swc0DYL`5%%2|Fsw>TC52IbAdfA*4C3uwTWdiQ0NQbu!Qd)NI@EhCuww##9Jstwd`2fi8ju{vVJ~2bb ztziavoJ^!86B{u6d}^4UUJmb#m)c|ZT^*oei9XR2(pMi_-QX>?!bK&-;;_yI&Oit) zTEGb}N3v|`UNJjV3plKOD>sp^Ii`n6RUJ1Xr57LG;nU)IS8cD!{-HMfLoJ^Vla|sv zYR9g~x0S_^qjed$A{PD#UC2L64e+OLsv?V2N-jK-WLcWZREr|iBut1v7?=?pi>P@F z=N8V}@%q~7_53Mbf4z2E9JCMlD6FS!yg~aw9JCKM@J8A(vN}dMUo)kceuL~xLcY*& z)vD(U3F?61Zclg7$P-f()i|qgm8OalHua$GGGOg{$Jpa&FCxiZS@)MIf9& z3yYLgT7(R{JO_@A48G*|KX|zITlxL+@&~ilu9%MG=3Bp={phZSRBJ6wi<|%LLXmH~ z6!|HekhM{Z^;J{7_Gc0N)d&mwglyd+C&VOTwOC!6;6b~Z5=Dxo9ZqGR%~!BIUbjLb zL$KM3*l-1k0C_NlQcUK!uJ~B^^!qn2zWYUdv*<=@r?1X*+>>4>b58!iUd{J+n%$@4 zVMXb5<+pctHGFn_ql{Wz*Dq_c=SW8Esf4s{P3rVsy0l}DbL~0}{EMirrSrCVq0$i) zm&@w2GF58OkN^YzVbtPS*EI@0xoU=|%w@0znMA%vP?own2pR@79IL0Rl!63WjL%Z* zGO;ASZq~uXx>hPW|hSrPHyxm+HdCSWy?|ytmH^={l)i&H18?GL*7B9xYlp zpXaHJoIcm$K(dvMbT?t>#pK6efwwEMhcbISMqe}+Nj`9E{ODNG=*nXI+24LX*1t#Z ziT52Jem8c(+0TD-wDRA$c-hDXt(t#Yv9WMz=IP;6`^q&3&9U;+qa$By*VVpx%ib2f zhxKe6vF^yCC6ea&b=h-U3R8B}Ejs*E%}=HN%^P))ep)`K%6P0GVZ%UMMdn(_8mNg` zZ_(E}!+}xFh51;>gjj>d+@XZ(&1gUSxs_waE;Gewe`#Yo@6i5PH~ae17k--6d)M?OqbGE(aVlrY)X|RE@a(#8 zzA*dEv-?1EP1y5FfpP)gf*}dJtBRhhhWsWdr#RBy7mqF01*i2l6s1zdTNt9c`-d3M z59lIH7LPsUUj2$LD+Lun@*kQ%ZQjwOH9k%BZ&LHmx!QI@n>G{LRu|$ z>!v6Tly^mTS{lYkNhg;XK?=ggG1WCvK3NCuIASG5;>Jj>A*Gm@bcD{A%`Uc_PuU5@JzA_CdK&2oeS5WBJM?0C5wDq54;c#n zh1!=jZ8MgMRE3n)WiM&Rk*rYV`AZvk{^n<;fzj{pT;JERGwe9=;rY<^3t%l!P6cu` zeX?8IEh?^@?!gkKa?++Y@{murG1K21f1xhU8;N#t76&MubBidS|{+o}DvURuio-<+{i?n7%RX+7nmS%Zd8=>6IOu0}r3 zgLm`7y*zwFB$id4)rt~=mAWC9-qX&X_!M~S4Owts>41FY8Z3uxQDben1bnQ}8*r@c z!ing)fmol|vXKHPaAM>$sU|;>`Ii+V(lxWd|Fg2PC^IwbvCK?g$)U!I=jJ z`qzrZ4}Q?@-(Ng!%HkzcOP0#tKQlFwzdc^c_?u^ycI}6?dbgK8x1~nTmZux-$G&x3 z^51>*$nhN?96h>hTI|^A&>Pn)*W@NTka`eTL3xPO> zh=?5wwItGlI@v<18wDs#s9_SecvLDTdmgvRO-^li;RFv|t^69ed2=w2B$}P7tdwl# z8t^tnLL1Urd*O;+;>eSsc%CZ_2W!G-f1pS+?d?R-^{Rs|;)wgie`XTW&>rkj)qFhD(WWx}-Xb=1Xc6i0gOnt` z!HoQ1R$2A)C-q!6OavDoS*m~s(*|1<%}zyFo5#)UEnnut%yI1&t=YJIz^BxT4cmSV z0Y`ki6~X6)L@t9b1f-aOV6zPd?SYxS|-wx z=6>F6-Z$eJ`D;E@yV8En`sWw*Eko}{DM`{@^dz0VD6HHUIqX~9FG5zpaln?&HU^XR zyOH;Xohq>$?WDAuIYArYEJY0zUK`rm(1f`Q>hO9mmZ*7NZ866fohY3{Kor#ZdrlAK z>!I4o_RC&5cXZT*!HwFl+VJtALH{PqES1bsQ~4Xn?-*5fWmSPJ1g*KfBjiojt^ACo z(*_TlI%U|PX_74WpEm8;w0=`2_C+t2JO4CQo0kiHa$X{&R6p_crKHTmdBeizzh9BFbJRGfdcH}x0^QT8!fio z1Jrr&jeKCTqft9hzKK@HkZo&t2e79PjD57$&v{45M$|c#tx}_eWYH@|L!*l}#E5u` zd{e2>BL6EDQ`qB`!8Re@?lL%xDft)X9o84(D5m_O(1^r{tO&WUkJlyIXN9UA`B&KK z5N2c&fa69!dukGsDPJ5VpV%p-j3dFFqN8%Lw%NRGHwci5MSzXF}a0dL!nEcrT($i1&t5 z4`pn0fXFK{mBLaHOTj;Q>~GC%ICJc>d5ac})xwsStmG?9{@QbVlD0xh&=&AnjvGh^ zZpPn*H=Q^Qc95w9O8753$YGlpc)+F6@Ow*$05c^9_F)X-G9{|NzRm>>fmoNs6g@R` zcpo)U>|AQdQXlat^nUW2KwdI^dP>1xDm$lH3XzWoH?iHCA zc@hTvLJKlLHpo}Z072LUGLj*@-8vz}f9z0=yz+h_LoiIBHyuzKAR8F5EyskEx_U!f zpT2sv9DsjudOB}fZhAW8aBlz!s0Y4tD*ItPaE_G}=H~%xHORojYNW8r5h}FTaN%4i zCI-v`GUK8q=3h;t13oS{pR5+2ajJ%Asu^CaG+c;1Mu~81;Gzco0ymwv$(4?{-s9^t z?3k5aZUAH0$mVw~*GT@)F+`9ojK8qxHn6KO=twH3-mF{sAU4&T9*7mESb zM_6DjgT1Lnc&!{3&Is7pl86OD@uTx1vss)~!M#)TIld+%mu_g%VT z_w|s_j0Of%KqNY8`{2k$C#3!wR7h-(EST3u#Gl9NRd zLG0K_((SNIf^5PTV#X$Z79<6cbd1CXmQgXOQSQBjl}hrlibfSpmC!0xTld-d!kSm5 zkEOzz_3HNRopt{F`8Eo&u@!UYiaHf_6U9-n$)b zm4Gd@Uuk_XChX+;M;t?n#k2 z5)_gg0STX@3rFEwGQe{$dO;?SP}zJV7MK;@5ep+;(Z>0wv>QE#c0zk<>MQ!8qZ;uF z;Y2iE;WpzC2Df?%Ug)k-o=dPQJtjwvB#c}JQU;I*iHMc7d&`=2TeqxT^Xj`L6XYpl z72a^`?%i89zOsMcmY`i*5AS*zV^IKzb^)TQZ2o`78x2Sd?vI=(J>H1jSr2x^uGrG} zLvz_0_9}y_{aC~?K&*qNIC51FuxfZ!q3-yG8rAr!w0sdg`TrMjc?U+~^L(gU~MEYh@S@5n$B`96C`LQNNYN80i%Qvd$_-_>6B=cC`( zo;w=C3t!x}Z5sbaOS>NpTz3Gj_XCDFtXK#ZUJRYEM3l+^#2uSN{*6}jMLHORGgfd7b`0!(KQ`;$Pf1-ay! zn6gGcjFlBc0o)5VbC93_B=kml?vk@K&T|P$h=R7~fmmb|$+$&?jY%!#tX&q|Vr0pZ zHy1y@=iav)G8>1^$!jX7ywv~MW~-)8d1>dSI-lLrx>t> zVBNWiuuByW9N19DwX%ZNP$SP^zqao*_9bg8O_laKx=M34fGZnwIs*K;Dtk$_==ntO zlY-yknBu~Ykl@A(-QH5HegZwsw5K3~KR0Df%Bv}I--8`f2Bg66%u=j$DoW{?f+eJ7 zDc5jS8tVm~ltQjnH7J&{U-2#Wepq%iA_^ZvXc8{CTyBY6dCf~ z6&;hnn@k{>eaS@c4s|641|1v|Ir$kmM$8r&DnB*uHG9eKh0nb%UA-2udfK4&sf}}O zjq3CKddp``-M-_+r@r`#Ki_$8ZnKt++Se;+O7?3TX{EH=bQm_&espQ0VM7VlOs0_) zf}iT;NgH8n?Q_{$?s{(1LD*WT*8%PA7xhX-dscnY8!4qCV%rXNj+l<3E!F#-VnWe7 zBVF&z$2;}5-tulsNG8-1ZF%57DC)%O?{jZ=11B#Mo)cXyHkVdQ+eB~Q_I|U_v*^un zu6nM0t0jaqVgE`_glMo28O2sBvqh>^Ul$D{&g`Og10)|=j?l2Mk`ceWB-6ITGBzL{ zONT@{Y^8glGM`W?c?C{jH-UwCFZRYH_4ZLiepUvQLK&l7Y+T#PVR0ex3eo`ZO?~%W z&!%!u-`w``<%_3FZ%Qk6OViyu%SkJ=hK_s9?>y8xW8A`_d^NV@OX=9do?_=s!2|LQ zY7pXr@Dqf;l0nq)c^@nj$X7+ z9m!p%nEi$pU3lUJQGf+O%F3-Z1oPs8*l$CPb|ajJkzQ z4+H2TVKr z8Rmh-&4I&Rtv_D7gxgVD_oGGl)S=$#Ev{mvPiWD=v)&@XtJf|@@7(aZ-(Tq}f@fm3 ziQRkzybT1rGy~kc#E=B`Ko=}xcNQ~4>&PLaQDplt`&_tlhr4V3m)a$~Eo!58FFg{+pgcs@f z@yoIsGeNII_@NeopGI!{xZ5*mRn#?6pY^)MquhOV*G;>Mkd)vzkil@~VPjiH>2PM& zbiqFcHpLt#NDXd-IH5Gct8PiMyRJL1W$>DJP5p{rdBTjfl3x@)^zHh2wEw59Q; z58btko$XQEg?V>v53iYq;PT&s209C<*F3|CqTonRaAB49bZH>QpbKgcjUMuhfsi-U zv;S7Rgg>K?0i;c3pB8Bhs6~uHH}@F0+cU;gyj{Sj*Im;?z=zh-y;~Ebq{COt=HZR5 z9=qF1xhf)d;I3kAuINusSAPz8`s2*qD87>X2p%&ExMPK##|LX zcl6%%S7&51^2^-y1eVD024^At6)x0s{cSDOLx6`OeD3Ii;h=Lr1RpbuX5ho~v@2=_ z9g_CE;wXP3HXhB|!^=fiv_lY#2q_z_)Aa!NzfI718uODy?wHNYhf&1+&e(*?i8@((;z&nB`;3FMi>Eb^JE^H}_xSUmnmRU~Ry^0s{g^ z2JQ+x9r$<9(?NrR-V6FWxJ&TX5Ejxa*(sytD^75WX5ccxm78vQvXW(Dm{oT zh#eRER_yt>ptw$PtK;s+caJ}k5T8((@I__+%6qHSs#3Q~w?x0hl*DHfcO*Vc8lAK< z>AU2>Y|DgKC>c7-5*NCl=Sz}+#z?vyF7uUR6Yf7e! zf1@&wW&T_{r}mE8x3XGh?a2C9cF*j0voB@;ko{*J|2pw?a_Th4zxH*G)wxpVPL7fj zol`rfQBJ#@!8tQ>*5&NZIg#^a&Rv_u7HiA4wXpTGmDpC=w%ZQbKC#`jRpdtGrsY1B z+bMT=?%doJx!ZEz&iy#|dhXwOA$e(e4f5LO4au95w=!=_-l4ot^1jRaGe0Q5N`78` ztNh{l<1peh>QZWW@w>W#0Mr!>W$U{(ayNB^f8tUGS zHcx%FM6SUk)E|NJCQ2ui4k)=O^H54qnxPCw=_@6&`TQqVTM1)NE7RFpr3RZT-(dAE z)mU#+7Zz>`V(U%y*icg;;_!=6hTwVvD>fZq>!rqQn=+ndngVgZD_d_ttR8v3>rIPM zzp^+FP&EAZIcu$agL(yQmMN2kTLM_N$;zrL*O*25ly#Kqu!V9D7Kw9^Jd)+fo0%-F z#~yKASubTCo2g_2{)H%QSQqIE%T$)J&Uo)MDUi*Qxbtl#6X!s-!u$YrC$eeED%7Rt zo`dCDhI2A3;$6&7nZTyVf3j%PeU_}4S)zQC1>xLTI>72m65Ee+yr~l_k*cu8$}Bcm zd7Je!y@FM7MJ$k4u%*i1te3oq^))wT-Q~4xrF@-rS4Oir;`$r5Ne*Chl-8_2Rw33$ zDM0jc95S2M$#+;Y;A)j*WutL_uDla)TxWd|HtuPz$vR?NzG1+5W6L7v1EnczXIhA{ zI}g15#Fm;*u$IbBHcVN|nkY-ruNM)Mk7KJX2iagtA?q#wh;dNaRQXHf5k!J+Ue`&G zXvtKay<*O0^Z0Q#h`+~d{36SdBiSf9o)yV{EJym7Ej8^xGQRf%iBj~CFMpgW>HSCJY!&l2t7{4vTgH_Z{^s>o@aZJ?D@~3Plu?ZKez_+=KW#H5XB?*PK=+L1BD?;vq1FK6I8)|u3!Vi2a z{U-j-PZBO=T+ll!{QVU)hRA@~WWnE6lNFOVn2ZlrJD5z0pBW#M3EQ%n%qDRmuKaM6 zC{iMe>Nujh6qeGuJ|bp#R~s3hP>_@HwD zQ1d2J_zGON1SU<$DZ!s`WwQ|&*bCd`7(2r*u^-u8=HzvF7wJ9ejP$j1HAzbHPYO(m zOo~gYl9ZB^o@7fZOlq1mDQRzVN=mrqbUL7M&?gx9e--N=_Q4}}oPC7N1%6`p&{F5e zT8c=jl$0P^%1NsCA1!g`1LqA^*?E$MIZud86$TxcIeR$^wWl0s9dA1hUR!-_8UD?` zHs{*xYcsA*y>{x_&})6K)&B0U@8*B|Jl})&Q=h#*NY#Vxi$C(}ee?h7`*C)Hon)uj zY4#y>(__F;8T*ud#{R`VXY<(tc9~saU$8IPS8O3$#J*|6F7Tg;ZQpV=?? zOLVu{9rhbr%9a7Q_t@|3J}YO-*&hru1w=}4(I-nki6g-u>?$;lNhq^XK-9poUf##~ zHI%(5gHXu&r1AmEeiV2v*jSX~C?C4cXKpNkt9n5o zj3r@~P+@Cv_SXwrhconQD&*Ztia>$1VK3lZ2_+8SU&J{9r3${kjB|=!*ef`v>xFH> z8NQz+a5wfR&h=0V@qH`K7;7ptZb_5$!d}N2V@QSm@i5Bs=TUV+4*}dnDV7dd9oI z4(ZvmFw?G3Gk5~Em-j>i#jXZ$7Pqn-nRZjHHc56lydgo;@?|W;cw0b=HVVI<%Hrc5{tPyPw`dmmc<_csuL4d^xq(rAKPAeeUw* z@ypQzvrKznEqf+TLA9{?!P2DVU3wfT!fYIL*pDsk+T#eTCEps?Gv1yGV3U>}#@12B zJ?dp}Eql?@!%3`HkJ3!mH2w(7ly5b~{h*q5({$= zVf9$L=f7ZZ`@&TE7BJ=6w)x5QEpY9WKKi|&$phNtSEhTxwW=mW2GO^WCIvMU!|{!& z)({JT)yGJk8_6fCb~<#7KFqs7+dnr;`$*hQ#M4BtH zDD!bNPSURMG z-i{gf_qx7^An))DRyT}gbw`T)O;^Qp#*pd1j*O4;`BP2l|3B`!f zNa&yT_#S}xP($2phLNHjDW~B$5C1r1_yQak;~$5FrrkTAV=Hmo!FJ)fV~{(v7Ft46 zK`2&yhv30KYJvXdYc|?dnl^9SmBkI3HenQt8#ZCcNESD0;G{7aTLpC}ULu|vIb^~Z zp>^qPAO#mc0ybqXet%iiZOLmZ`Rgz&afh!m+*lH#PQQlZpV8Y9ic zAJbkZZB%+7L&qvdEB)|qu-sJcrWDJQP?js>>EZf^ zHr)S;m16PyI6&4Ckdey6d6{UJR!qL-V1Q*W*63^b9m>>P5OJ(|^5?0a~fe_%I!G^lcn z#h=g}{sK&Oou>g6W-Z>EjyFd`KcVc62&W(5vTDCEtjl9*&LURZnGN_NSu^LitcCMe ztXTV%wL)ow(go!ily1%+Sx@IL*m3<9c1XI#R^r}Ecz!d=7L?;?=LE`0lv60DQ9eZZ z8f|`qauwy@DBq%dhjI->%tLO*`Wd7CwG{+oS;qTudD+`WT4Ww=uY3R8fcZq8$9 zeKqQu}gE2zTiYAYPry#?&v0(Nf!ySISZTcYiiIKPN`8&O_Hp|#D| zaPNDR>nJ~<+(7vg_aC7Ag~HiJ=SH;N0zJhVL$rAtZQe$kw=p`m@%(K(e;d!=#`CxF z{B881HG0(p+@d#nMsKrVgs?M@VC|gjd z$G6er+vxFa^!PScK!4J@?)Of6Abp|nBi;v5HvHez3uN_b}=AlnGYHUhGZfNUcm z+X%=u;_c(`_HlUoIJ|uv-aZc8EY*2{^>E(BD1C>kV9;PA=O1h!?nw9xEx+OZFTle* z{2Ian056SMi1QLgDICB5f|2?X&;KHDJleS*qx=bKzlu>lfl)rrUUAajRoIAcbX+Qq zYjA9hmOx>ES2A@3*06Tn5(yg-TCUdzx+i^{KY-r!Pnhfc#1p7Se4KlnWFg?={KZK+ zK7CsZC|w`tug)^(A5Lh-xPQ@k*SQq@T<5KH2bO^IE0nkB_s2g@vK_?7Nfre@&Nq$s z>ev5YN2lGl24)RD&O5+4oqxoEbpHR#j|U#(0lgjL>hZJQYr1PZ3GBN2^muL5Du4W* z^S{iql)J%Q z^}FCA`1~(C`abQVPuQ+_>N@4GJod5DwX=(H*F_JY8^jL(gdXJeaem?y?ZA#4MYo+T zy?*>JUp*9SQ~)=@2Xq*L<09uRr%iLsa=Ncw!(CXh&K$bJ8J-7F0qj?d??wF{zHfJb z`^NaDpLL8ozsHQc48BJnLyOZZh@*2n+BofX!|N+(^_no&-_&7f&3_1T#U1#zd zMG%GYnx08|mKYt=ag1XiNL->JiYRU|ILbt_hj9`yL?J{JAqxb(_$P>ZQxSsT#RY;y zH13Eey^9|7q>xKIisCK$dtWCy66HZnSM}?vdS6vnfA38%Z<%#7q*{gkq1}Ma@Y3?7 zCG&rew#Vub{_B=vb&c3uW-VWdL}5-1thJ3WrUZPXg|a+sz6QS3#@gG7)WVsH+_l+{ ztb;WT@Z`@Re6^lv(FJ(dH8%)LQ>4~*R&8f# zdp-L%AT`vpk#lkrVqaBi;40XJB&lsH$8AGa!RsuVy8{X6>u%1SJxCJ1wHHpi4_VFq z;mx$LAF05a7Uo(WDd*X`R<65;k!sl%mu)fe!5ED22v`&mUv^f>&IEQ2(%0ii0*g;D z>SnVq&X{r6k*v651`H_R?7zM#^wEG<#Grw_63&*r@45&E`E;f>Z(B#WPh=>2ah13wt z2sOKhc_$^ikV;{f6m|(=S1s(SgxzvsmlAd>gq@+*M!!3di13OEubA+PGSYpNA4Mwo zxB3`%+8l|OU>6s5%jDB|M8+=ClS}euuDGl8-xzpWXa+(vEi?n684x*qiH@OJE;K#i z=n2P!a7+nD9~5Wli6Iyjf-$0YU+ItG7#EJl70k;?(!%_I{iDssJ~-EYQjh7wy_}yL z$P+6$R49_R7IJm2xvQtM&UJR@`bi5tU8KcA2YYp-)xh^AIo9eaQ;s_r7xLj=Uj1C6 z>yh(Mj*XAH##0kR!*2V?nbSkAS?NKg-6P|}Bd&k!+~@@8TK!gU6j3|m&2zJ-B)o;~ z#b2{Iw8UrT)Z;r%;8{)+F}6MSgs)j?{v+?llJ#NP0rL2+?5lKlXr~=-`WE@F5}mar zI(Mbh>u#gdtJ>O0|Fm#fW%gV|SVpvgxf>yVVRegTYz1M2_) literal 0 HcmV?d00001 diff --git a/storage/fonts/roboto_500_8be5e408a14fb8eb292a00011dd3d0ef.ufm b/storage/fonts/roboto_500_8be5e408a14fb8eb292a00011dd3d0ef.ufm new file mode 100644 index 0000000..1908583 --- /dev/null +++ b/storage/fonts/roboto_500_8be5e408a14fb8eb292a00011dd3d0ef.ufm @@ -0,0 +1,248 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/dompdf/php-font-lib +EncodingScheme FontSpecific +Copyright Copyright 2011 Google Inc. All Rights Reserved. +FontName Roboto Medium +FontSubfamily Regular +UniqueID Roboto Medium +FullName Roboto Medium +Version Version 2.137; 2017 +PostScriptName Roboto-Medium +LicenseURL http://www.apache.org/licenses/LICENSE-2.0 +Weight Bold +ItalicAngle 0 +IsFixedPitch false +UnderlineThickness 49 +UnderlinePosition -73 +FontHeightOffset 0 +Ascender 928 +Descender -244 +FontBBox -732 -271 1170 1056 +StartCharMetrics 248 +U 0 ; WX 0 ; N uni0000 ; G 1 +U 13 ; WX 249 ; N uni000d ; G 3 +U 32 ; WX 249 ; N uni0020 ; G 4 +U 33 ; WX 268 ; N uni0021 ; G 5 +U 34 ; WX 324 ; N uni0022 ; G 6 +U 35 ; WX 610 ; N uni0023 ; G 7 +U 36 ; WX 568 ; N uni0024 ; G 8 +U 37 ; WX 734 ; N uni0025 ; G 9 +U 38 ; WX 639 ; N uni0026 ; G 10 +U 39 ; WX 169 ; N uni0027 ; G 11 +U 40 ; WX 349 ; N uni0028 ; G 12 +U 41 ; WX 353 ; N uni0029 ; G 13 +U 42 ; WX 442 ; N uni002a ; G 14 +U 43 ; WX 557 ; N uni002b ; G 15 +U 44 ; WX 220 ; N uni002c ; G 16 +U 45 ; WX 328 ; N uni002d ; G 17 +U 46 ; WX 279 ; N uni002e ; G 18 +U 47 ; WX 396 ; N uni002f ; G 19 +U 48 ; WX 568 ; N uni0030 ; G 20 +U 49 ; WX 568 ; N uni0031 ; G 21 +U 50 ; WX 568 ; N uni0032 ; G 22 +U 51 ; WX 568 ; N uni0033 ; G 23 +U 52 ; WX 568 ; N uni0034 ; G 24 +U 53 ; WX 568 ; N uni0035 ; G 25 +U 54 ; WX 568 ; N uni0036 ; G 26 +U 55 ; WX 568 ; N uni0037 ; G 27 +U 56 ; WX 568 ; N uni0038 ; G 28 +U 57 ; WX 568 ; N uni0039 ; G 29 +U 58 ; WX 265 ; N uni003a ; G 30 +U 59 ; WX 238 ; N uni003b ; G 31 +U 60 ; WX 508 ; N uni003c ; G 32 +U 61 ; WX 560 ; N uni003d ; G 33 +U 62 ; WX 521 ; N uni003e ; G 34 +U 63 ; WX 486 ; N uni003f ; G 35 +U 64 ; WX 895 ; N uni0040 ; G 36 +U 65 ; WX 666 ; N uni0041 ; G 37 +U 66 ; WX 631 ; N uni0042 ; G 38 +U 67 ; WX 653 ; N uni0043 ; G 39 +U 68 ; WX 653 ; N uni0044 ; G 40 +U 69 ; WX 565 ; N uni0045 ; G 41 +U 70 ; WX 549 ; N uni0046 ; G 42 +U 71 ; WX 681 ; N uni0047 ; G 43 +U 72 ; WX 710 ; N uni0048 ; G 44 +U 73 ; WX 282 ; N uni0049 ; G 45 +U 74 ; WX 555 ; N uni004a ; G 46 +U 75 ; WX 630 ; N uni004b ; G 47 +U 76 ; WX 541 ; N uni004c ; G 48 +U 77 ; WX 875 ; N uni004d ; G 49 +U 78 ; WX 710 ; N uni004e ; G 50 +U 79 ; WX 690 ; N uni004f ; G 51 +U 80 ; WX 639 ; N uni0050 ; G 52 +U 81 ; WX 690 ; N uni0051 ; G 53 +U 82 ; WX 624 ; N uni0052 ; G 54 +U 83 ; WX 604 ; N uni0053 ; G 55 +U 84 ; WX 607 ; N uni0054 ; G 56 +U 85 ; WX 652 ; N uni0055 ; G 57 +U 86 ; WX 647 ; N uni0056 ; G 58 +U 87 ; WX 880 ; N uni0057 ; G 59 +U 88 ; WX 633 ; N uni0058 ; G 60 +U 89 ; WX 609 ; N uni0059 ; G 61 +U 90 ; WX 602 ; N uni005a ; G 62 +U 91 ; WX 274 ; N uni005b ; G 63 +U 92 ; WX 418 ; N uni005c ; G 64 +U 93 ; WX 274 ; N uni005d ; G 65 +U 94 ; WX 427 ; N uni005e ; G 66 +U 95 ; WX 451 ; N uni005f ; G 67 +U 96 ; WX 322 ; N uni0060 ; G 68 +U 97 ; WX 541 ; N uni0061 ; G 69 +U 98 ; WX 563 ; N uni0062 ; G 70 +U 99 ; WX 523 ; N uni0063 ; G 71 +U 100 ; WX 564 ; N uni0064 ; G 72 +U 101 ; WX 537 ; N uni0065 ; G 73 +U 102 ; WX 354 ; N uni0066 ; G 74 +U 103 ; WX 567 ; N uni0067 ; G 75 +U 104 ; WX 555 ; N uni0068 ; G 76 +U 105 ; WX 255 ; N uni0069 ; G 77 +U 106 ; WX 250 ; N uni006a ; G 78 +U 107 ; WX 522 ; N uni006b ; G 79 +U 108 ; WX 255 ; N uni006c ; G 80 +U 109 ; WX 870 ; N uni006d ; G 81 +U 110 ; WX 556 ; N uni006e ; G 82 +U 111 ; WX 569 ; N uni006f ; G 83 +U 112 ; WX 563 ; N uni0070 ; G 84 +U 113 ; WX 568 ; N uni0071 ; G 85 +U 114 ; WX 352 ; N uni0072 ; G 86 +U 115 ; WX 516 ; N uni0073 ; G 87 +U 116 ; WX 333 ; N uni0074 ; G 88 +U 117 ; WX 556 ; N uni0075 ; G 89 +U 118 ; WX 495 ; N uni0076 ; G 90 +U 119 ; WX 743 ; N uni0077 ; G 91 +U 120 ; WX 503 ; N uni0078 ; G 92 +U 121 ; WX 487 ; N uni0079 ; G 93 +U 122 ; WX 503 ; N uni007a ; G 94 +U 123 ; WX 335 ; N uni007b ; G 95 +U 124 ; WX 251 ; N uni007c ; G 96 +U 125 ; WX 335 ; N uni007d ; G 97 +U 126 ; WX 665 ; N uni007e ; G 98 +U 160 ; WX 249 ; N uni00a0 ; G 189 +U 161 ; WX 265 ; N uni00a1 ; G 99 +U 162 ; WX 561 ; N uni00a2 ; G 100 +U 163 ; WX 588 ; N uni00a3 ; G 101 +U 164 ; WX 702 ; N uni00a4 ; G 102 +U 165 ; WX 531 ; N uni00a5 ; G 103 +U 166 ; WX 248 ; N uni00a6 ; G 104 +U 167 ; WX 621 ; N uni00a7 ; G 105 +U 168 ; WX 440 ; N uni00a8 ; G 106 +U 169 ; WX 783 ; N uni00a9 ; G 107 +U 170 ; WX 446 ; N uni00aa ; G 108 +U 171 ; WX 485 ; N uni00ab ; G 109 +U 172 ; WX 553 ; N uni00ac ; G 110 +U 173 ; WX 328 ; N uni00ad ; G 190 +U 174 ; WX 783 ; N uni00ae ; G 111 +U 175 ; WX 482 ; N uni00af ; G 112 +U 176 ; WX 380 ; N uni00b0 ; G 113 +U 177 ; WX 536 ; N uni00b1 ; G 114 +U 178 ; WX 370 ; N uni00b2 ; G 115 +U 179 ; WX 370 ; N uni00b3 ; G 116 +U 180 ; WX 326 ; N uni00b4 ; G 117 +U 181 ; WX 591 ; N uni00b5 ; G 118 +U 182 ; WX 491 ; N uni00b6 ; G 119 +U 183 ; WX 282 ; N uni00b7 ; G 120 +U 184 ; WX 258 ; N uni00b8 ; G 121 +U 185 ; WX 370 ; N uni00b9 ; G 122 +U 186 ; WX 457 ; N uni00ba ; G 123 +U 187 ; WX 485 ; N uni00bb ; G 124 +U 188 ; WX 727 ; N uni00bc ; G 125 +U 189 ; WX 771 ; N uni00bd ; G 126 +U 190 ; WX 792 ; N uni00be ; G 127 +U 191 ; WX 486 ; N uni00bf ; G 128 +U 192 ; WX 666 ; N uni00c0 ; G 192 +U 193 ; WX 666 ; N uni00c1 ; G 193 +U 194 ; WX 666 ; N uni00c2 ; G 194 +U 195 ; WX 666 ; N uni00c3 ; G 195 +U 196 ; WX 666 ; N uni00c4 ; G 196 +U 197 ; WX 666 ; N uni00c5 ; G 197 +U 198 ; WX 940 ; N uni00c6 ; G 129 +U 199 ; WX 653 ; N uni00c7 ; G 198 +U 200 ; WX 565 ; N uni00c8 ; G 199 +U 201 ; WX 565 ; N uni00c9 ; G 200 +U 202 ; WX 565 ; N uni00ca ; G 201 +U 203 ; WX 565 ; N uni00cb ; G 202 +U 204 ; WX 282 ; N uni00cc ; G 203 +U 205 ; WX 282 ; N uni00cd ; G 204 +U 206 ; WX 282 ; N uni00ce ; G 205 +U 207 ; WX 282 ; N uni00cf ; G 206 +U 208 ; WX 668 ; N uni00d0 ; G 191 +U 209 ; WX 710 ; N uni00d1 ; G 207 +U 210 ; WX 690 ; N uni00d2 ; G 208 +U 211 ; WX 690 ; N uni00d3 ; G 209 +U 212 ; WX 690 ; N uni00d4 ; G 210 +U 213 ; WX 690 ; N uni00d5 ; G 211 +U 214 ; WX 690 ; N uni00d6 ; G 212 +U 215 ; WX 533 ; N uni00d7 ; G 130 +U 216 ; WX 689 ; N uni00d8 ; G 131 +U 217 ; WX 652 ; N uni00d9 ; G 213 +U 218 ; WX 652 ; N uni00da ; G 214 +U 219 ; WX 652 ; N uni00db ; G 215 +U 220 ; WX 652 ; N uni00dc ; G 216 +U 221 ; WX 609 ; N uni00dd ; G 217 +U 222 ; WX 599 ; N uni00de ; G 132 +U 223 ; WX 613 ; N uni00df ; G 133 +U 224 ; WX 541 ; N uni00e0 ; G 218 +U 225 ; WX 541 ; N uni00e1 ; G 219 +U 226 ; WX 541 ; N uni00e2 ; G 220 +U 227 ; WX 541 ; N uni00e3 ; G 221 +U 228 ; WX 541 ; N uni00e4 ; G 222 +U 229 ; WX 541 ; N uni00e5 ; G 223 +U 230 ; WX 844 ; N uni00e6 ; G 134 +U 231 ; WX 523 ; N uni00e7 ; G 224 +U 232 ; WX 537 ; N uni00e8 ; G 225 +U 233 ; WX 537 ; N uni00e9 ; G 226 +U 234 ; WX 537 ; N uni00ea ; G 227 +U 235 ; WX 537 ; N uni00eb ; G 228 +U 236 ; WX 263 ; N uni00ec ; G 229 +U 237 ; WX 263 ; N uni00ed ; G 230 +U 238 ; WX 263 ; N uni00ee ; G 231 +U 239 ; WX 263 ; N uni00ef ; G 232 +U 240 ; WX 582 ; N uni00f0 ; G 135 +U 241 ; WX 556 ; N uni00f1 ; G 233 +U 242 ; WX 569 ; N uni00f2 ; G 234 +U 243 ; WX 569 ; N uni00f3 ; G 235 +U 244 ; WX 569 ; N uni00f4 ; G 236 +U 245 ; WX 569 ; N uni00f5 ; G 237 +U 246 ; WX 569 ; N uni00f6 ; G 238 +U 247 ; WX 571 ; N uni00f7 ; G 136 +U 248 ; WX 566 ; N uni00f8 ; G 137 +U 249 ; WX 556 ; N uni00f9 ; G 239 +U 250 ; WX 556 ; N uni00fa ; G 240 +U 251 ; WX 556 ; N uni00fb ; G 241 +U 252 ; WX 556 ; N uni00fc ; G 242 +U 253 ; WX 487 ; N uni00fd ; G 243 +U 254 ; WX 574 ; N uni00fe ; G 138 +U 255 ; WX 487 ; N uni00ff ; G 244 +U 305 ; WX 263 ; N uni0131 ; G 139 +U 338 ; WX 963 ; N uni0152 ; G 140 +U 339 ; WX 903 ; N uni0153 ; G 141 +U 700 ; WX 217 ; N uni02bc ; G 247 +U 710 ; WX 487 ; N uni02c6 ; G 142 +U 730 ; WX 337 ; N uni02da ; G 143 +U 732 ; WX 480 ; N uni02dc ; G 144 +U 8194 ; WX 510 ; N uni2002 ; G 145 +U 8201 ; WX 204 ; N uni2009 ; G 146 +U 8203 ; WX 0 ; N uni200b ; G 148 +U 8211 ; WX 645 ; N uni2013 ; G 149 +U 8212 ; WX 773 ; N uni2014 ; G 150 +U 8216 ; WX 219 ; N uni2018 ; G 151 +U 8217 ; WX 217 ; N uni2019 ; G 152 +U 8218 ; WX 226 ; N uni201a ; G 153 +U 8220 ; WX 385 ; N uni201c ; G 154 +U 8221 ; WX 388 ; N uni201d ; G 155 +U 8222 ; WX 379 ; N uni201e ; G 156 +U 8226 ; WX 349 ; N uni2022 ; G 157 +U 8230 ; WX 706 ; N uni2026 ; G 158 +U 8242 ; WX 169 ; N uni2032 ; G 245 +U 8243 ; WX 324 ; N uni2033 ; G 246 +U 8249 ; WX 306 ; N uni2039 ; G 159 +U 8250 ; WX 301 ; N uni203a ; G 160 +U 8260 ; WX 451 ; N uni2044 ; G 161 +U 8308 ; WX 370 ; N uni2074 ; G 162 +U 8364 ; WX 568 ; N uni20ac ; G 163 +U 8482 ; WX 629 ; N uni2122 ; G 164 +U 8722 ; WX 564 ; N uni2212 ; G 165 +U 65279 ; WX 0 ; N unifeff ; G 170 +U 65533 ; WX 1026 ; N unifffd ; G 171 +EndCharMetrics +EndFontMetrics diff --git a/storage/fonts/roboto_bold_8b68a5f5144c6e1cf84bdd7d532e3bf9.ttf b/storage/fonts/roboto_bold_8b68a5f5144c6e1cf84bdd7d532e3bf9.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ea06a634fef93cc4edc23bddc716b87eaeed133c GIT binary patch literal 36012 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 literal 0 HcmV?d00001 diff --git a/storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ufm b/storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ufm new file mode 100644 index 0000000..db7924b --- /dev/null +++ b/storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ufm @@ -0,0 +1,248 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/dompdf/php-font-lib +EncodingScheme FontSpecific +Copyright Copyright 2011 Google Inc. All Rights Reserved. +FontName Roboto +FontSubfamily Regular +UniqueID Roboto +FullName Roboto +Version Version 2.137; 2017 +PostScriptName Roboto-Regular +LicenseURL http://www.apache.org/licenses/LICENSE-2.0 +Weight Medium +ItalicAngle 0 +IsFixedPitch false +UnderlineThickness 49 +UnderlinePosition -73 +FontHeightOffset 0 +Ascender 928 +Descender -244 +FontBBox -737 -271 1148 1056 +StartCharMetrics 248 +U 0 ; WX 0 ; N uni0000 ; G 1 +U 13 ; WX 248 ; N uni000d ; G 3 +U 32 ; WX 248 ; N uni0020 ; G 4 +U 33 ; WX 257 ; N uni0021 ; G 5 +U 34 ; WX 320 ; N uni0022 ; G 6 +U 35 ; WX 616 ; N uni0023 ; G 7 +U 36 ; WX 562 ; N uni0024 ; G 8 +U 37 ; WX 732 ; N uni0025 ; G 9 +U 38 ; WX 622 ; N uni0026 ; G 10 +U 39 ; WX 174 ; N uni0027 ; G 11 +U 40 ; WX 342 ; N uni0028 ; G 12 +U 41 ; WX 348 ; N uni0029 ; G 13 +U 42 ; WX 431 ; N uni002a ; G 14 +U 43 ; WX 567 ; N uni002b ; G 15 +U 44 ; WX 196 ; N uni002c ; G 16 +U 45 ; WX 276 ; N uni002d ; G 17 +U 46 ; WX 263 ; N uni002e ; G 18 +U 47 ; WX 412 ; N uni002f ; G 19 +U 48 ; WX 562 ; N uni0030 ; G 20 +U 49 ; WX 562 ; N uni0031 ; G 21 +U 50 ; WX 562 ; N uni0032 ; G 22 +U 51 ; WX 562 ; N uni0033 ; G 23 +U 52 ; WX 562 ; N uni0034 ; G 24 +U 53 ; WX 562 ; N uni0035 ; G 25 +U 54 ; WX 562 ; N uni0036 ; G 26 +U 55 ; WX 562 ; N uni0037 ; G 27 +U 56 ; WX 562 ; N uni0038 ; G 28 +U 57 ; WX 562 ; N uni0039 ; G 29 +U 58 ; WX 242 ; N uni003a ; G 30 +U 59 ; WX 211 ; N uni003b ; G 31 +U 60 ; WX 508 ; N uni003c ; G 32 +U 61 ; WX 549 ; N uni003d ; G 33 +U 62 ; WX 522 ; N uni003e ; G 34 +U 63 ; WX 472 ; N uni003f ; G 35 +U 64 ; WX 898 ; N uni0040 ; G 36 +U 65 ; WX 652 ; N uni0041 ; G 37 +U 66 ; WX 623 ; N uni0042 ; G 38 +U 67 ; WX 651 ; N uni0043 ; G 39 +U 68 ; WX 656 ; N uni0044 ; G 40 +U 69 ; WX 568 ; N uni0045 ; G 41 +U 70 ; WX 553 ; N uni0046 ; G 42 +U 71 ; WX 681 ; N uni0047 ; G 43 +U 72 ; WX 713 ; N uni0048 ; G 44 +U 73 ; WX 272 ; N uni0049 ; G 45 +U 74 ; WX 552 ; N uni004a ; G 46 +U 75 ; WX 627 ; N uni004b ; G 47 +U 76 ; WX 538 ; N uni004c ; G 48 +U 77 ; WX 873 ; N uni004d ; G 49 +U 78 ; WX 713 ; N uni004e ; G 50 +U 79 ; WX 688 ; N uni004f ; G 51 +U 80 ; WX 631 ; N uni0050 ; G 52 +U 81 ; WX 688 ; N uni0051 ; G 53 +U 82 ; WX 616 ; N uni0052 ; G 54 +U 83 ; WX 593 ; N uni0053 ; G 55 +U 84 ; WX 597 ; N uni0054 ; G 56 +U 85 ; WX 648 ; N uni0055 ; G 57 +U 86 ; WX 636 ; N uni0056 ; G 58 +U 87 ; WX 887 ; N uni0057 ; G 59 +U 88 ; WX 627 ; N uni0058 ; G 60 +U 89 ; WX 601 ; N uni0059 ; G 61 +U 90 ; WX 599 ; N uni005a ; G 62 +U 91 ; WX 265 ; N uni005b ; G 63 +U 92 ; WX 410 ; N uni005c ; G 64 +U 93 ; WX 265 ; N uni005d ; G 65 +U 94 ; WX 418 ; N uni005e ; G 66 +U 95 ; WX 451 ; N uni005f ; G 67 +U 96 ; WX 309 ; N uni0060 ; G 68 +U 97 ; WX 544 ; N uni0061 ; G 69 +U 98 ; WX 561 ; N uni0062 ; G 70 +U 99 ; WX 523 ; N uni0063 ; G 71 +U 100 ; WX 564 ; N uni0064 ; G 72 +U 101 ; WX 530 ; N uni0065 ; G 73 +U 102 ; WX 347 ; N uni0066 ; G 74 +U 103 ; WX 561 ; N uni0067 ; G 75 +U 104 ; WX 551 ; N uni0068 ; G 76 +U 105 ; WX 243 ; N uni0069 ; G 77 +U 106 ; WX 239 ; N uni006a ; G 78 +U 107 ; WX 507 ; N uni006b ; G 79 +U 108 ; WX 243 ; N uni006c ; G 80 +U 109 ; WX 876 ; N uni006d ; G 81 +U 110 ; WX 552 ; N uni006e ; G 82 +U 111 ; WX 570 ; N uni006f ; G 83 +U 112 ; WX 561 ; N uni0070 ; G 84 +U 113 ; WX 568 ; N uni0071 ; G 85 +U 114 ; WX 338 ; N uni0072 ; G 86 +U 115 ; WX 516 ; N uni0073 ; G 87 +U 116 ; WX 327 ; N uni0074 ; G 88 +U 117 ; WX 551 ; N uni0075 ; G 89 +U 118 ; WX 484 ; N uni0076 ; G 90 +U 119 ; WX 751 ; N uni0077 ; G 91 +U 120 ; WX 496 ; N uni0078 ; G 92 +U 121 ; WX 473 ; N uni0079 ; G 93 +U 122 ; WX 496 ; N uni007a ; G 94 +U 123 ; WX 338 ; N uni007b ; G 95 +U 124 ; WX 244 ; N uni007c ; G 96 +U 125 ; WX 338 ; N uni007d ; G 97 +U 126 ; WX 680 ; N uni007e ; G 98 +U 160 ; WX 248 ; N uni00a0 ; G 189 +U 161 ; WX 244 ; N uni00a1 ; G 99 +U 162 ; WX 547 ; N uni00a2 ; G 100 +U 163 ; WX 581 ; N uni00a3 ; G 101 +U 164 ; WX 713 ; N uni00a4 ; G 102 +U 165 ; WX 525 ; N uni00a5 ; G 103 +U 166 ; WX 240 ; N uni00a6 ; G 104 +U 167 ; WX 613 ; N uni00a7 ; G 105 +U 168 ; WX 418 ; N uni00a8 ; G 106 +U 169 ; WX 786 ; N uni00a9 ; G 107 +U 170 ; WX 447 ; N uni00aa ; G 108 +U 171 ; WX 469 ; N uni00ab ; G 109 +U 172 ; WX 554 ; N uni00ac ; G 110 +U 173 ; WX 276 ; N uni00ad ; G 190 +U 174 ; WX 786 ; N uni00ae ; G 111 +U 175 ; WX 458 ; N uni00af ; G 112 +U 176 ; WX 374 ; N uni00b0 ; G 113 +U 177 ; WX 534 ; N uni00b1 ; G 114 +U 178 ; WX 367 ; N uni00b2 ; G 115 +U 179 ; WX 367 ; N uni00b3 ; G 116 +U 180 ; WX 313 ; N uni00b4 ; G 117 +U 181 ; WX 566 ; N uni00b5 ; G 118 +U 182 ; WX 489 ; N uni00b6 ; G 119 +U 183 ; WX 261 ; N uni00b7 ; G 120 +U 184 ; WX 248 ; N uni00b8 ; G 121 +U 185 ; WX 367 ; N uni00b9 ; G 122 +U 186 ; WX 455 ; N uni00ba ; G 123 +U 187 ; WX 469 ; N uni00bb ; G 124 +U 188 ; WX 732 ; N uni00bc ; G 125 +U 189 ; WX 776 ; N uni00bd ; G 126 +U 190 ; WX 778 ; N uni00be ; G 127 +U 191 ; WX 473 ; N uni00bf ; G 128 +U 192 ; WX 652 ; N uni00c0 ; G 192 +U 193 ; WX 652 ; N uni00c1 ; G 193 +U 194 ; WX 652 ; N uni00c2 ; G 194 +U 195 ; WX 652 ; N uni00c3 ; G 195 +U 196 ; WX 652 ; N uni00c4 ; G 196 +U 197 ; WX 652 ; N uni00c5 ; G 197 +U 198 ; WX 935 ; N uni00c6 ; G 129 +U 199 ; WX 651 ; N uni00c7 ; G 198 +U 200 ; WX 568 ; N uni00c8 ; G 199 +U 201 ; WX 568 ; N uni00c9 ; G 200 +U 202 ; WX 568 ; N uni00ca ; G 201 +U 203 ; WX 568 ; N uni00cb ; G 202 +U 204 ; WX 272 ; N uni00cc ; G 203 +U 205 ; WX 272 ; N uni00cd ; G 204 +U 206 ; WX 272 ; N uni00ce ; G 205 +U 207 ; WX 272 ; N uni00cf ; G 206 +U 208 ; WX 670 ; N uni00d0 ; G 191 +U 209 ; WX 713 ; N uni00d1 ; G 207 +U 210 ; WX 688 ; N uni00d2 ; G 208 +U 211 ; WX 688 ; N uni00d3 ; G 209 +U 212 ; WX 688 ; N uni00d4 ; G 210 +U 213 ; WX 688 ; N uni00d5 ; G 211 +U 214 ; WX 688 ; N uni00d6 ; G 212 +U 215 ; WX 533 ; N uni00d7 ; G 130 +U 216 ; WX 688 ; N uni00d8 ; G 131 +U 217 ; WX 648 ; N uni00d9 ; G 213 +U 218 ; WX 648 ; N uni00da ; G 214 +U 219 ; WX 648 ; N uni00db ; G 215 +U 220 ; WX 648 ; N uni00dc ; G 216 +U 221 ; WX 601 ; N uni00dd ; G 217 +U 222 ; WX 591 ; N uni00de ; G 132 +U 223 ; WX 595 ; N uni00df ; G 133 +U 224 ; WX 544 ; N uni00e0 ; G 218 +U 225 ; WX 544 ; N uni00e1 ; G 219 +U 226 ; WX 544 ; N uni00e2 ; G 220 +U 227 ; WX 544 ; N uni00e3 ; G 221 +U 228 ; WX 544 ; N uni00e4 ; G 222 +U 229 ; WX 544 ; N uni00e5 ; G 223 +U 230 ; WX 844 ; N uni00e6 ; G 134 +U 231 ; WX 523 ; N uni00e7 ; G 224 +U 232 ; WX 530 ; N uni00e8 ; G 225 +U 233 ; WX 530 ; N uni00e9 ; G 226 +U 234 ; WX 530 ; N uni00ea ; G 227 +U 235 ; WX 530 ; N uni00eb ; G 228 +U 236 ; WX 247 ; N uni00ec ; G 229 +U 237 ; WX 247 ; N uni00ed ; G 230 +U 238 ; WX 247 ; N uni00ee ; G 231 +U 239 ; WX 247 ; N uni00ef ; G 232 +U 240 ; WX 586 ; N uni00f0 ; G 135 +U 241 ; WX 552 ; N uni00f1 ; G 233 +U 242 ; WX 570 ; N uni00f2 ; G 234 +U 243 ; WX 570 ; N uni00f3 ; G 235 +U 244 ; WX 570 ; N uni00f4 ; G 236 +U 245 ; WX 570 ; N uni00f5 ; G 237 +U 246 ; WX 570 ; N uni00f6 ; G 238 +U 247 ; WX 571 ; N uni00f7 ; G 136 +U 248 ; WX 566 ; N uni00f8 ; G 137 +U 249 ; WX 551 ; N uni00f9 ; G 239 +U 250 ; WX 551 ; N uni00fa ; G 240 +U 251 ; WX 551 ; N uni00fb ; G 241 +U 252 ; WX 551 ; N uni00fc ; G 242 +U 253 ; WX 473 ; N uni00fd ; G 243 +U 254 ; WX 576 ; N uni00fe ; G 138 +U 255 ; WX 473 ; N uni00ff ; G 244 +U 305 ; WX 247 ; N uni0131 ; G 139 +U 338 ; WX 954 ; N uni0152 ; G 140 +U 339 ; WX 908 ; N uni0153 ; G 141 +U 700 ; WX 200 ; N uni02bc ; G 247 +U 710 ; WX 471 ; N uni02c6 ; G 142 +U 730 ; WX 334 ; N uni02da ; G 143 +U 732 ; WX 472 ; N uni02dc ; G 144 +U 8194 ; WX 510 ; N uni2002 ; G 145 +U 8201 ; WX 204 ; N uni2009 ; G 146 +U 8203 ; WX 0 ; N uni200b ; G 148 +U 8211 ; WX 656 ; N uni2013 ; G 149 +U 8212 ; WX 781 ; N uni2014 ; G 150 +U 8216 ; WX 200 ; N uni2018 ; G 151 +U 8217 ; WX 200 ; N uni2019 ; G 152 +U 8218 ; WX 199 ; N uni201a ; G 153 +U 8220 ; WX 354 ; N uni201c ; G 154 +U 8221 ; WX 357 ; N uni201d ; G 155 +U 8222 ; WX 344 ; N uni201e ; G 156 +U 8226 ; WX 337 ; N uni2022 ; G 157 +U 8230 ; WX 669 ; N uni2026 ; G 158 +U 8242 ; WX 174 ; N uni2032 ; G 245 +U 8243 ; WX 320 ; N uni2033 ; G 246 +U 8249 ; WX 300 ; N uni2039 ; G 159 +U 8250 ; WX 300 ; N uni203a ; G 160 +U 8260 ; WX 455 ; N uni2044 ; G 161 +U 8308 ; WX 367 ; N uni2074 ; G 162 +U 8364 ; WX 562 ; N uni20ac ; G 163 +U 8482 ; WX 625 ; N uni2122 ; G 164 +U 8722 ; WX 571 ; N uni2212 ; G 165 +U 65279 ; WX 0 ; N unifeff ; G 170 +U 65533 ; WX 1026 ; N unifffd ; G 171 +EndCharMetrics +EndFontMetrics diff --git a/storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ufm.json b/storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ufm.json new file mode 100644 index 0000000..c92df76 --- /dev/null +++ b/storage/fonts/roboto_normal_571a9cfece0739eed437614401e4383e.ufm.json @@ -0,0 +1,478 @@ +{ + "codeToName": { + "0": "uni0000", + "13": "uni000d", + "32": "uni0020", + "33": "uni0021", + "34": "uni0022", + "35": "uni0023", + "36": "uni0024", + "37": "uni0025", + "38": "uni0026", + "39": "uni0027", + "40": "uni0028", + "41": "uni0029", + "42": "uni002a", + "43": "uni002b", + "44": "uni002c", + "45": "uni002d", + "46": "uni002e", + "47": "uni002f", + "48": "uni0030", + "49": "uni0031", + "50": "uni0032", + "51": "uni0033", + "52": "uni0034", + "53": "uni0035", + "54": "uni0036", + "55": "uni0037", + "56": "uni0038", + "57": "uni0039", + "58": "uni003a", + "59": "uni003b", + "60": "uni003c", + "61": "uni003d", + "62": "uni003e", + "63": "uni003f", + "64": "uni0040", + "65": "uni0041", + "66": "uni0042", + "67": "uni0043", + "68": "uni0044", + "69": "uni0045", + "70": "uni0046", + "71": "uni0047", + "72": "uni0048", + "73": "uni0049", + "74": "uni004a", + "75": "uni004b", + "76": "uni004c", + "77": "uni004d", + "78": "uni004e", + "79": "uni004f", + "80": "uni0050", + "81": "uni0051", + "82": "uni0052", + "83": "uni0053", + "84": "uni0054", + "85": "uni0055", + "86": "uni0056", + "87": "uni0057", + "88": "uni0058", + "89": "uni0059", + "90": "uni005a", + "91": "uni005b", + "92": "uni005c", + "93": "uni005d", + "94": "uni005e", + "95": "uni005f", + "96": "uni0060", + "97": "uni0061", + "98": "uni0062", + "99": "uni0063", + "100": "uni0064", + "101": "uni0065", + "102": "uni0066", + "103": "uni0067", + "104": "uni0068", + "105": "uni0069", + "106": "uni006a", + "107": "uni006b", + "108": "uni006c", + "109": "uni006d", + "110": "uni006e", + "111": "uni006f", + "112": "uni0070", + "113": "uni0071", + "114": "uni0072", + "115": "uni0073", + "116": "uni0074", + "117": "uni0075", + "118": "uni0076", + "119": "uni0077", + "120": "uni0078", + "121": "uni0079", + "122": "uni007a", + "123": "uni007b", + "124": "uni007c", + "125": "uni007d", + "126": "uni007e", + "160": "uni00a0", + "161": "uni00a1", + "162": "uni00a2", + "163": "uni00a3", + "164": "uni00a4", + "165": "uni00a5", + "166": "uni00a6", + "167": "uni00a7", + "168": "uni00a8", + "169": "uni00a9", + "170": "uni00aa", + "171": "uni00ab", + "172": "uni00ac", + "173": "uni00ad", + "174": "uni00ae", + "175": "uni00af", + "176": "uni00b0", + "177": "uni00b1", + "178": "uni00b2", + "179": "uni00b3", + "180": "uni00b4", + "181": "uni00b5", + "182": "uni00b6", + "183": "uni00b7", + "184": "uni00b8", + "185": "uni00b9", + "186": "uni00ba", + "187": "uni00bb", + "188": "uni00bc", + "189": "uni00bd", + "190": "uni00be", + "191": "uni00bf", + "192": "uni00c0", + "193": "uni00c1", + "194": "uni00c2", + "195": "uni00c3", + "196": "uni00c4", + "197": "uni00c5", + "198": "uni00c6", + "199": "uni00c7", + "200": "uni00c8", + "201": "uni00c9", + "202": "uni00ca", + "203": "uni00cb", + "204": "uni00cc", + "205": "uni00cd", + "206": "uni00ce", + "207": "uni00cf", + "208": "uni00d0", + "209": "uni00d1", + "210": "uni00d2", + "211": "uni00d3", + "212": "uni00d4", + "213": "uni00d5", + "214": "uni00d6", + "215": "uni00d7", + "216": "uni00d8", + "217": "uni00d9", + "218": "uni00da", + "219": "uni00db", + "220": "uni00dc", + "221": "uni00dd", + "222": "uni00de", + "223": "uni00df", + "224": "uni00e0", + "225": "uni00e1", + "226": "uni00e2", + "227": "uni00e3", + "228": "uni00e4", + "229": "uni00e5", + "230": "uni00e6", + "231": "uni00e7", + "232": "uni00e8", + "233": "uni00e9", + "234": "uni00ea", + "235": "uni00eb", + "236": "uni00ec", + "237": "uni00ed", + "238": "uni00ee", + "239": "uni00ef", + "240": "uni00f0", + "241": "uni00f1", + "242": "uni00f2", + "243": "uni00f3", + "244": "uni00f4", + "245": "uni00f5", + "246": "uni00f6", + "247": "uni00f7", + "248": "uni00f8", + "249": "uni00f9", + "250": "uni00fa", + "251": "uni00fb", + "252": "uni00fc", + "253": "uni00fd", + "254": "uni00fe", + "255": "uni00ff", + "305": "uni0131", + "338": "uni0152", + "339": "uni0153", + "700": "uni02bc", + "710": "uni02c6", + "730": "uni02da", + "732": "uni02dc", + "8194": "uni2002", + "8201": "uni2009", + "8203": "uni200b", + "8211": "uni2013", + "8212": "uni2014", + "8216": "uni2018", + "8217": "uni2019", + "8218": "uni201a", + "8220": "uni201c", + "8221": "uni201d", + "8222": "uni201e", + "8226": "uni2022", + "8230": "uni2026", + "8242": "uni2032", + "8243": "uni2033", + "8249": "uni2039", + "8250": "uni203a", + "8260": "uni2044", + "8308": "uni2074", + "8364": "uni20ac", + "8482": "uni2122", + "8722": "uni2212", + "65279": "unifeff", + "65533": "unifffd" + }, + "isUnicode": true, + "EncodingScheme": "FontSpecific", + "FontName": "Roboto", + "FullName": "Roboto", + "Version": "Version 2.137; 2017", + "PostScriptName": "Roboto-Regular", + "Weight": "Medium", + "ItalicAngle": "0", + "IsFixedPitch": "false", + "UnderlineThickness": "49", + "UnderlinePosition": "-73", + "FontHeightOffset": "0", + "Ascender": "928", + "Descender": "-244", + "FontBBox": [ + "-737", + "-271", + "1148", + "1056" + ], + "StartCharMetrics": "248", + "C": { + "0": 0, + "13": 248, + "32": 248, + "33": 257, + "34": 320, + "35": 616, + "36": 562, + "37": 732, + "38": 622, + "39": 174, + "40": 342, + "41": 348, + "42": 431, + "43": 567, + "44": 196, + "45": 276, + "46": 263, + "47": 412, + "48": 562, + "49": 562, + "50": 562, + "51": 562, + "52": 562, + "53": 562, + "54": 562, + "55": 562, + "56": 562, + "57": 562, + "58": 242, + "59": 211, + "60": 508, + "61": 549, + "62": 522, + "63": 472, + "64": 898, + "65": 652, + "66": 623, + "67": 651, + "68": 656, + "69": 568, + "70": 553, + "71": 681, + "72": 713, + "73": 272, + "74": 552, + "75": 627, + "76": 538, + "77": 873, + "78": 713, + "79": 688, + "80": 631, + "81": 688, + "82": 616, + "83": 593, + "84": 597, + "85": 648, + "86": 636, + "87": 887, + "88": 627, + "89": 601, + "90": 599, + "91": 265, + "92": 410, + "93": 265, + "94": 418, + "95": 451, + "96": 309, + "97": 544, + "98": 561, + "99": 523, + "100": 564, + "101": 530, + "102": 347, + "103": 561, + "104": 551, + "105": 243, + "106": 239, + "107": 507, + "108": 243, + "109": 876, + "110": 552, + "111": 570, + "112": 561, + "113": 568, + "114": 338, + "115": 516, + "116": 327, + "117": 551, + "118": 484, + "119": 751, + "120": 496, + "121": 473, + "122": 496, + "123": 338, + "124": 244, + "125": 338, + "126": 680, + "160": 248, + "161": 244, + "162": 547, + "163": 581, + "164": 713, + "165": 525, + "166": 240, + "167": 613, + "168": 418, + "169": 786, + "170": 447, + "171": 469, + "172": 554, + "173": 276, + "174": 786, + "175": 458, + "176": 374, + "177": 534, + "178": 367, + "179": 367, + "180": 313, + "181": 566, + "182": 489, + "183": 261, + "184": 248, + "185": 367, + "186": 455, + "187": 469, + "188": 732, + "189": 776, + "190": 778, + "191": 473, + "192": 652, + "193": 652, + "194": 652, + "195": 652, + "196": 652, + "197": 652, + "198": 935, + "199": 651, + "200": 568, + "201": 568, + "202": 568, + "203": 568, + "204": 272, + "205": 272, + "206": 272, + "207": 272, + "208": 670, + "209": 713, + "210": 688, + "211": 688, + "212": 688, + "213": 688, + "214": 688, + "215": 533, + "216": 688, + "217": 648, + "218": 648, + "219": 648, + "220": 648, + "221": 601, + "222": 591, + "223": 595, + "224": 544, + "225": 544, + "226": 544, + "227": 544, + "228": 544, + "229": 544, + "230": 844, + "231": 523, + "232": 530, + "233": 530, + "234": 530, + "235": 530, + "236": 247, + "237": 247, + "238": 247, + "239": 247, + "240": 586, + "241": 552, + "242": 570, + "243": 570, + "244": 570, + "245": 570, + "246": 570, + "247": 571, + "248": 566, + "249": 551, + "250": 551, + "251": 551, + "252": 551, + "253": 473, + "254": 576, + "255": 473, + "305": 247, + "338": 954, + "339": 908, + "700": 200, + "710": 471, + "730": 334, + "732": 472, + "8194": 510, + "8201": 204, + "8203": 0, + "8211": 656, + "8212": 781, + "8216": 200, + "8217": 200, + "8218": 199, + "8220": 354, + "8221": 357, + "8222": 344, + "8226": 337, + "8230": 669, + "8242": 174, + "8243": 320, + "8249": 300, + "8250": 300, + "8260": 455, + "8308": 367, + "8364": 562, + "8482": 625, + "8722": 571, + "65279": 0, + "65533": 1026 + }, + "CIDtoGID_Compressed": true, + "CIDtoGID": "eJzt0FPPYGcYhtGrqW3btm3btm3bZmrzpP0NtW3btk47TeZgOplpJ+1MvyZdK3n362ffezdawzP6cHeGNEZjNlZjN07jNl7jN0ETNlETN0mTNlmTN0VTNlVTN03TNl3TN0MzNlMzN0uzNluzN0dzNldzN0\/zNl\/zt0ALtlALt0iLtliLt0RLtlRLt0zLtlzLt0IrtlIrt0qrtlqrt0ZrtlZrt07rtl7rt0EbtlEbt0mbtlmbt0VbtlVbt03btl3bt0M7tlM7t0u7ttsIfeGfu7vd26M926u926d926\/9O6ADO6h7OrhDOrTDOrwjOrKjOrpjOrbjOr4TOrGTOrlTuq\/7e6AHe6iHO7VHerTHerwnerKnerpnurdne67ne6EXe6nTOr2Xe6VXe63XO6Mze6M3e6u3e6d3O6v3er8P+rCP+rhP+rTPOrvP+6Iv+6qv+6ZzOrdv+67v+6EfO6+fRsIf+Cvn\/+MKF3ThSMgB\/x2\/DmPtohG8e\/GgdsnIiwIAAAAAAAAAAAAAAAAAwH\/MpX+YXTaoXT7UiSu6cvDoqq7umkH9tV3X9YPXbhjc3zic+j\/3yxCzm7p5GGduGeG0f8+to7j+0G77l983kG4f6ACMUncMdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/mfuHOgADJi7fn\/8Bsu+aH4=", + "_version_": 6 +} \ No newline at end of file diff --git a/tests/Feature/InventoryPhase2Test.php b/tests/Feature/InventoryPhase2Test.php new file mode 100644 index 0000000..b37f4e3 --- /dev/null +++ b/tests/Feature/InventoryPhase2Test.php @@ -0,0 +1,294 @@ +create([ + 'email' => uniqid('inv_', true).'@test.example', + 'password' => bcrypt('password'), + ]); + $user->forceFill([ + 'admin' => $adminLevel, + 'confirmed' => true, + 'active' => true, + 'wizard' => 100, + 'blocked' => false, + ])->save(); + + return $user->fresh(); +} + +function ensureCountry(): Country +{ + return Country::query()->firstOrCreate( + ['code' => 'DE'], + [ + 'phone' => '00', + 'en' => 'Germany', + 'de' => 'Deutschland', + 'es' => 'Germany', + 'fr' => 'Germany', + 'it' => 'Germany', + 'ru' => 'Germany', + 'active' => true, + ] + ); +} + +test('locations full CRUD as superadmin', function () { + $user = makeUser(8); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.locations.index'))->assertSuccessful(); + $this->get(route('admin.inventory.locations.create'))->assertSuccessful(); + + $this->post(route('admin.inventory.locations.store'), [ + 'name' => 'CRUD-Lager-A', + 'active' => '1', + ])->assertRedirect(route('admin.inventory.locations.index')); + + $location = Location::query()->where('name', 'CRUD-Lager-A')->firstOrFail(); + + $this->get(route('admin.inventory.locations.edit', $location))->assertSuccessful(); + + $this->put(route('admin.inventory.locations.update', $location), [ + 'name' => 'CRUD-Lager-B', + 'active' => '1', + ])->assertRedirect(route('admin.inventory.locations.index')); + + $location->refresh(); + expect($location->name)->toBe('CRUD-Lager-B'); + + $this->delete(route('admin.inventory.locations.destroy', $location)) + ->assertRedirect(route('admin.inventory.locations.index')); + + expect(Location::query()->whereKey($location->id)->exists())->toBeFalse(); +}); + +test('material qualities full CRUD as superadmin', function () { + $user = makeUser(8); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.material-qualities.index'))->assertSuccessful(); + $this->get(route('admin.inventory.material-qualities.create'))->assertSuccessful(); + + $this->post(route('admin.inventory.material-qualities.store'), [ + 'name' => 'CRUD-Qualität', + 'pos' => 7, + ])->assertRedirect(route('admin.inventory.material-qualities.index')); + + $model = MaterialQuality::query()->where('name', 'CRUD-Qualität')->firstOrFail(); + expect($model->pos)->toBe(7); + + $this->get(route('admin.inventory.material-qualities.edit', $model))->assertSuccessful(); + + $this->put(route('admin.inventory.material-qualities.update', $model), [ + 'name' => 'CRUD-Qualität-upd', + 'pos' => 8, + ])->assertRedirect(route('admin.inventory.material-qualities.index')); + + $model->refresh(); + expect($model->name)->toBe('CRUD-Qualität-upd'); + expect($model->pos)->toBe(8); + + $this->delete(route('admin.inventory.material-qualities.destroy', $model)) + ->assertRedirect(route('admin.inventory.material-qualities.index')); + + expect(MaterialQuality::query()->whereKey($model->id)->exists())->toBeFalse(); +}); + +test('packaging materials full CRUD as superadmin', function () { + $user = makeUser(8); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.packaging-materials.index'))->assertSuccessful(); + $this->get(route('admin.inventory.packaging-materials.create'))->assertSuccessful(); + + $this->post(route('admin.inventory.packaging-materials.store'), [ + 'name' => 'CRUD-Verpackungsmat', + 'pos' => 3, + ])->assertRedirect(route('admin.inventory.packaging-materials.index')); + + $model = PackagingMaterial::query()->where('name', 'CRUD-Verpackungsmat')->firstOrFail(); + + $this->get(route('admin.inventory.packaging-materials.edit', $model))->assertSuccessful(); + + $this->put(route('admin.inventory.packaging-materials.update', $model), [ + 'name' => 'CRUD-Verpackungsmat-upd', + 'pos' => 4, + ])->assertRedirect(route('admin.inventory.packaging-materials.index')); + + $model->refresh(); + expect($model->name)->toBe('CRUD-Verpackungsmat-upd'); + + $this->delete(route('admin.inventory.packaging-materials.destroy', $model)) + ->assertRedirect(route('admin.inventory.packaging-materials.index')); + + expect(PackagingMaterial::query()->whereKey($model->id)->exists())->toBeFalse(); +}); + +test('supplier categories full CRUD as admin', function () { + $user = makeUser(7); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.supplier-categories.index'))->assertSuccessful(); + $this->get(route('admin.inventory.supplier-categories.create'))->assertSuccessful(); + + $this->post(route('admin.inventory.supplier-categories.store'), [ + 'name' => 'CRUD-Lief-Kat', + 'pos' => 2, + ])->assertRedirect(route('admin.inventory.supplier-categories.index')); + + $model = SupplierCategory::query()->where('name', 'CRUD-Lief-Kat')->firstOrFail(); + + $this->get(route('admin.inventory.supplier-categories.edit', $model))->assertSuccessful(); + + $this->put(route('admin.inventory.supplier-categories.update', $model), [ + 'name' => 'CRUD-Lief-Kat-upd', + 'pos' => 3, + ])->assertRedirect(route('admin.inventory.supplier-categories.index')); + + $model->refresh(); + expect($model->name)->toBe('CRUD-Lief-Kat-upd'); + + $this->delete(route('admin.inventory.supplier-categories.destroy', $model)) + ->assertRedirect(route('admin.inventory.supplier-categories.index')); + + expect(SupplierCategory::query()->whereKey($model->id)->exists())->toBeFalse(); +}); + +test('suppliers full CRUD with category sync as admin', function () { + $country = ensureCountry(); + $cat = SupplierCategory::query()->create(['name' => 'CRUD-Kat-Sup', 'pos' => 1]); + + $user = makeUser(7); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.suppliers.index'))->assertSuccessful(); + $this->get(route('admin.inventory.suppliers.create'))->assertSuccessful(); + + $this->post(route('admin.inventory.suppliers.store'), [ + 'name' => 'CRUD-Lieferant', + 'country_id' => (string) $country->id, + 'active' => '1', + 'supplier_category_ids' => [(string) $cat->id], + 'email' => 'crud@example.test', + ])->assertRedirect(route('admin.inventory.suppliers.index')); + + $supplier = Supplier::query()->where('name', 'CRUD-Lieferant')->firstOrFail(); + expect($supplier->supplierCategories()->pluck('supplier_categories.id')->all())->toEqual([$cat->id]); + + $this->get(route('admin.inventory.suppliers.edit', $supplier))->assertSuccessful(); + + $this->put(route('admin.inventory.suppliers.update', $supplier), [ + 'name' => 'CRUD-Lieferant-upd', + 'country_id' => (string) $country->id, + 'active' => '1', + 'supplier_category_ids' => [(string) $cat->id], + 'email' => 'crud-upd@example.test', + ])->assertRedirect(route('admin.inventory.suppliers.index')); + + $supplier->refresh(); + expect($supplier->name)->toBe('CRUD-Lieferant-upd'); + + $this->delete(route('admin.inventory.suppliers.destroy', $supplier)) + ->assertRedirect(route('admin.inventory.suppliers.index')); + + expect(Supplier::query()->whereKey($supplier->id)->exists())->toBeFalse(); + expect(Supplier::withTrashed()->whereKey($supplier->id)->exists())->toBeTrue(); +}); + +test('packaging items full CRUD as admin', function () { + $material = PackagingMaterial::factory()->create(['name' => 'CRUD-PM-'.uniqid('', true)]); + $supplier = Supplier::factory()->create(); + $product = Product::query()->create([ + 'name' => 'CRUD-Produkt', + 'title' => 'CRUD-Produkt', + 'active' => true, + ]); + + $user = makeUser(7); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.packaging-items.index'))->assertSuccessful(); + $this->get(route('admin.inventory.packaging-items.create'))->assertSuccessful(); + + $this->post(route('admin.inventory.packaging-items.store'), [ + 'packaging_material_id' => (string) $material->id, + 'supplier_id' => (string) $supplier->id, + 'name' => 'CRUD-Verpack-Art', + 'category' => 'packaging', + 'weight_grams' => '12.5', + 'min_stock_alert' => '100', + 'product_id' => (string) $product->id, + 'active' => '1', + ])->assertRedirect(route('admin.inventory.packaging-items.index', ['category' => 'packaging'])); + + $item = PackagingItem::query()->where('name', 'CRUD-Verpack-Art')->firstOrFail(); + expect($item->packaging_material_id)->toBe($material->id); + expect($item->product_id)->toBe($product->id); + + $this->get(route('admin.inventory.packaging-items.edit', $item))->assertSuccessful(); + + $this->put(route('admin.inventory.packaging-items.update', $item), [ + 'packaging_material_id' => (string) $material->id, + 'supplier_id' => '', + 'name' => 'CRUD-Verpack-Art-upd', + 'category' => 'label', + 'weight_grams' => '5', + 'min_stock_alert' => '', + 'product_id' => '', + 'active' => '1', + ])->assertRedirect(route('admin.inventory.packaging-items.index', ['category' => 'shipping'])); + + $item->refresh(); + expect($item->name)->toBe('CRUD-Verpack-Art-upd'); + expect($item->category)->toBe('label'); + expect($item->supplier_id)->toBeNull(); + expect($item->product_id)->toBeNull(); + + $this->delete(route('admin.inventory.packaging-items.destroy', $item)) + ->assertRedirect(route('admin.inventory.packaging-items.index', ['category' => 'shipping'])); + + expect(PackagingItem::query()->whereKey($item->id)->exists())->toBeFalse(); + expect(PackagingItem::withTrashed()->whereKey($item->id)->exists())->toBeTrue(); +}); + +test('admin cannot access superadmin inventory routes', function () { + $user = makeUser(7); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.locations.index'))->assertRedirect(route('home')); +}); + +test('admin cannot store locations', function () { + $user = makeUser(7); + $this->actingAs($user, 'user'); + + $this->post(route('admin.inventory.locations.store'), [ + 'name' => 'Forbidden-Lager', + 'active' => '1', + ])->assertRedirect(route('home')); + + expect(Location::query()->where('name', 'Forbidden-Lager')->exists())->toBeFalse(); +}); + +test('copyreader cannot access inventory suppliers', function () { + $user = makeUser(1); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.suppliers.index'))->assertRedirect(route('home')); +}); diff --git a/tests/Feature/InventoryPhase3Test.php b/tests/Feature/InventoryPhase3Test.php new file mode 100644 index 0000000..4960058 --- /dev/null +++ b/tests/Feature/InventoryPhase3Test.php @@ -0,0 +1,228 @@ +create([ + 'email' => uniqid('inv3_', true).'@test.example', + 'password' => bcrypt('password'), + ]); + $user->forceFill([ + 'admin' => $adminLevel, + 'confirmed' => true, + 'active' => true, + 'wizard' => 100, + 'blocked' => false, + ])->save(); + + return $user->fresh(); +} + +function phase3EnsureCountry(): Country +{ + return Country::query()->firstOrCreate( + ['code' => 'DE'], + [ + 'phone' => '00', + 'en' => 'Germany', + 'de' => 'Deutschland', + 'es' => 'Germany', + 'fr' => 'Germany', + 'it' => 'Germany', + 'ru' => 'Germany', + 'active' => true, + ] + ); +} + +function phase3MakeIngredient(): Ingredient +{ + return Ingredient::query()->create([ + 'name' => 'Test-INCI-'.uniqid('', true), + 'trans_name' => '', + 'inci' => '', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); +} + +test('copyreader can list stock entries and receive but not create form', function () { + $user = phase3MakeUser(1); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.stock-entries.index'))->assertSuccessful(); + $this->get(route('admin.inventory.stock-entries.create'))->assertRedirect(route('home')); +}); + +test('non-copyreader cannot access stock entries', function () { + $user = phase3MakeUser(0); + $this->actingAs($user, 'user'); + + $this->get(route('admin.inventory.stock-entries.index'))->assertRedirect(route('home')); +}); + +test('admin creates pending stock entry with unit gram', function () { + phase3EnsureCountry(); + $admin = phase3MakeUser(7); + $ingredient = phase3MakeIngredient(); + $location = Location::factory()->create(); + $supplier = Supplier::factory()->create(); + + $this->actingAs($admin, 'user'); + + $this->post(route('admin.inventory.stock-entries.store'), [ + 'entry_type' => 'ingredient', + 'ingredient_id' => (string) $ingredient->id, + 'supplier_id' => (string) $supplier->id, + 'location_id' => (string) $location->id, + 'ordered_at' => '2026-03-27', + 'ordered_quantity' => '1000', + 'price_per_kg' => '12,50', + ])->assertRedirect(route('admin.inventory.stock-entries.index')); + + $entry = StockEntry::query()->latest('id')->firstOrFail(); + expect($entry->status)->toBe('pending'); + expect($entry->unit)->toBe('gram'); + expect((float) $entry->ordered_quantity)->toBe(1000.0); +}); + +test('copyreader can book receive for pending entry', function () { + phase3EnsureCountry(); + $admin = phase3MakeUser(7); + $copy = phase3MakeUser(1); + $ingredient = phase3MakeIngredient(); + $location = Location::factory()->create(); + $supplier = Supplier::factory()->create(); + $mq = MaterialQuality::query()->create(['name' => 'MQ-Test-'.uniqid('', true), 'pos' => 1]); + + $entry = StockEntry::query()->create([ + 'entry_type' => 'ingredient', + 'ingredient_id' => $ingredient->id, + 'packaging_item_id' => null, + 'supplier_id' => $supplier->id, + 'location_id' => $location->id, + 'unit' => 'gram', + 'ordered_by' => $admin->id, + 'ordered_at' => '2026-03-01', + 'ordered_quantity' => 500, + 'price_per_kg' => 10, + 'price_total' => null, + 'status' => 'pending', + ]); + + $this->actingAs($copy, 'user'); + $this->put(route('admin.inventory.stock-entries.receive', $entry), [ + 'received_at' => '2026-03-15', + 'received_quantity' => '500', + 'batch_number' => 'B-001', + 'best_before' => '2027-12-31', + 'quality_id' => (string) $mq->id, + ])->assertRedirect(route('admin.inventory.stock-entries.show', $entry)); + + $entry->refresh(); + expect($entry->status)->toBe('received'); + expect((float) $entry->received_quantity)->toBe(500.0); + expect($entry->received_by)->toBe($copy->id); +}); + +test('ingredient search returns select2 results shape', function () { + $user = phase3MakeUser(1); + $ingredient = phase3MakeIngredient(); + + $this->actingAs($user, 'user'); + $response = $this->getJson(route('admin.inventory.api.ingredients.search', ['q' => $ingredient->name])); + + $response->assertSuccessful(); + $response->assertJsonStructure(['results' => [['id', 'text']]]); + expect($response->json('results.0.id'))->toBe($ingredient->id); +}); + +test('stock entry factory creates valid pending ingredient entry', function () { + phase3EnsureCountry(); + $e = StockEntry::factory()->create(); + expect($e->status)->toBe('pending'); + expect($e->unit)->toBe('gram'); + expect($e->ingredient_id)->toBeGreaterThan(0); +}); + +test('stock entry factory packaging and received states', function () { + phase3EnsureCountry(); + MaterialQuality::query()->create(['name' => 'MQ-Factory-'.uniqid('', true), 'pos' => 99]); + + $p = StockEntry::factory()->packaging()->create(); + expect($p->entry_type)->toBe('packaging'); + expect($p->unit)->toBe('piece'); + expect($p->price_total)->not->toBeNull(); + + $r = StockEntry::factory()->received()->create(); + expect($r->status)->toBe('received'); + expect($r->received_quantity)->not->toBeNull(); +}); + +test('listForIndex sorts pending before received', function () { + phase3EnsureCountry(); + $admin = phase3MakeUser(7); + $ingredient = phase3MakeIngredient(); + $location = Location::factory()->create(); + $supplier = Supplier::factory()->create(); + + $this->actingAs($admin, 'user'); + + $this->post(route('admin.inventory.stock-entries.store'), [ + 'entry_type' => 'ingredient', + 'ingredient_id' => (string) $ingredient->id, + 'supplier_id' => (string) $supplier->id, + 'location_id' => (string) $location->id, + 'ordered_at' => '2026-01-01', + 'ordered_quantity' => '100', + 'price_per_kg' => '1', + ]); + + $this->post(route('admin.inventory.stock-entries.store'), [ + 'entry_type' => 'ingredient', + 'ingredient_id' => (string) $ingredient->id, + 'supplier_id' => (string) $supplier->id, + 'location_id' => (string) $location->id, + 'ordered_at' => '2026-06-01', + 'ordered_quantity' => '200', + 'price_per_kg' => '1', + ]); + + $entries = StockEntry::query()->orderBy('id')->get(); + expect($entries)->toHaveCount(2); + $older = $entries[0]; + $newer = $entries[1]; + + $this->actingAs($admin, 'user'); + $this->put(route('admin.inventory.stock-entries.receive', $older), [ + 'received_at' => '2026-03-10', + 'received_quantity' => '100', + 'batch_number' => 'X', + 'best_before' => '2028-01-01', + 'quality_id' => '', + ]); + + $repo = app(StockEntryRepository::class); + $list = $repo->listForIndex(); + + expect($list)->toHaveCount(2); + expect($list[0]->id)->toBe($newer->id); + expect($list[0]->status)->toBe('pending'); + expect($list[1]->id)->toBe($older->id); + expect($list[1]->status)->toBe('received'); +}); diff --git a/tests/Feature/ProductPhase0Test.php b/tests/Feature/ProductPhase0Test.php new file mode 100644 index 0000000..7fa0f5f --- /dev/null +++ b/tests/Feature/ProductPhase0Test.php @@ -0,0 +1,186 @@ + 'Relation Test', + 'title' => 'Relation Test', + 'active' => true, + ]); + + $ingredient = Ingredient::create([ + 'name' => 'Test INCI', + 'trans_name' => '', + 'inci' => '', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + ProductIngredient::create([ + 'product_id' => $product->id, + 'ingredient_id' => $ingredient->id, + ]); + + $product->refresh(); + + expect($product->product_ingredients)->toHaveCount(1); + expect($product->product_ingredients->first()->ingredient_id)->toBe($ingredient->id); +}); + +test('ingredient product_ingredients relation uses ingredient_id foreign key', function () { + $product = Product::create([ + 'name' => 'Relation Test 2', + 'title' => 'Relation Test 2', + 'active' => true, + ]); + + $ingredient = Ingredient::create([ + 'name' => 'Test INCI 2', + 'trans_name' => '', + 'inci' => '', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + ProductIngredient::create([ + 'product_id' => $product->id, + 'ingredient_id' => $ingredient->id, + ]); + + $ingredient->refresh(); + + expect($ingredient->product_ingredients)->toHaveCount(1); + expect($ingredient->product_ingredients->first()->product_id)->toBe($product->id); +}); + +test('updateIngredients removes deselected ingredients', function () { + $product = Product::create([ + 'name' => 'Sync Test', + 'title' => 'Sync Test', + 'active' => true, + ]); + + $a = Ingredient::create([ + 'name' => 'Alpha', + 'trans_name' => '', + 'inci' => '', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + $b = Ingredient::create([ + 'name' => 'Beta', + 'trans_name' => '', + 'inci' => '', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + $repo = new ProductRepository($product); + $repo->updateIngredients(['product_ingredients' => [(string) $a->id, (string) $b->id]]); + + expect($product->fresh()->p_ingredients)->toHaveCount(2); + + $repo->updateIngredients(['product_ingredients' => [(string) $a->id]]); + + expect($product->fresh()->p_ingredients)->toHaveCount(1); + expect($product->fresh()->p_ingredients->first()->id)->toBe($a->id); +}); + +test('getProductIngredientsOptions lists ingredients alphabetically by name', function () { + Ingredient::create([ + 'name' => 'Zebra', + 'trans_name' => '', + 'inci' => '', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + Ingredient::create([ + 'name' => 'Alpha', + 'trans_name' => '', + 'inci' => '', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + $html = HTMLHelper::getProductIngredientsOptions([], false); + + expect(strpos($html, 'Alpha'))->toBeLessThan(strpos($html, 'Zebra')); +}); + +test('copy preserves product attribute type_id', function () { + $type = AttributeType::create([ + 'name' => 'Type A', + 'slug' => 'type-a-'.uniqid(), + 'pos' => 0, + 'active' => true, + ]); + + $typeB = AttributeType::create([ + 'name' => 'Type B', + 'slug' => 'type-b-'.uniqid(), + 'pos' => 1, + 'active' => true, + ]); + + $attr = Attribute::create([ + 'attribute_type_id' => $type->id, + 'name' => 'Attr', + 'trans_name' => '', + 'pos' => 0, + 'active' => true, + 'slug' => 'attr-'.uniqid(), + ]); + + $source = Product::create([ + 'name' => 'Source', + 'title' => 'Source', + 'active' => true, + ]); + + ProductAttribute::create([ + 'product_id' => $source->id, + 'type_id' => $typeB->id, + 'attribute_id' => $attr->id, + ]); + + $repo = new ProductRepository(new Product); + $copy = $repo->copy($source->fresh()); + + $copied = $copy->attributes()->first(); + + expect($copied)->not->toBeNull(); + expect($copied->type_id)->toBe($typeB->id); + expect($copied->attribute_id)->toBe($attr->id); +}); diff --git a/tests/Feature/ProductPhase1Test.php b/tests/Feature/ProductPhase1Test.php new file mode 100644 index 0000000..8aedbb7 --- /dev/null +++ b/tests/Feature/ProductPhase1Test.php @@ -0,0 +1,92 @@ + 'Salbe', + 'title' => 'Salbe', + 'active' => true, + ]); + + $a = Ingredient::create([ + 'name' => 'Shea', + 'trans_name' => '', + 'inci' => 'Butyrospermum', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + 'default_factor' => 1.15, + ]); + + $repo = new ProductRepository($product); + $repo->update([ + 'id' => (string) $product->id, + 'name' => $product->name, + 'title' => $product->title, + 'active' => '1', + 'product_inci_sync_sent' => '1', + 'pi_ingredient_id' => [(string) $a->id], + 'pi_gram' => ['10,5'], + 'pi_factor' => ['1,20'], + 'shelf_life_type' => 'fixed', + 'shelf_life_months' => '12', + ]); + + $product->refresh(); + expect($product->shelf_life_type)->toBe('fixed'); + expect($product->shelf_life_months)->toBe(12); + + $pivot = $product->p_ingredients()->where('ingredients.id', $a->id)->first(); + expect($pivot)->not->toBeNull(); + expect((float) $pivot->pivot->gram)->toBe(10.5); + expect((float) $pivot->pivot->factor)->toBe(1.20); + expect((int) $pivot->pivot->pos)->toBe(0); +}); + +test('product copy preserves inci pivot fields', function () { + $source = Product::create([ + 'name' => 'Original', + 'title' => 'Original', + 'active' => true, + 'shelf_life_type' => 'pao', + ]); + + $ing = Ingredient::create([ + 'name' => 'Oel', + 'trans_name' => '', + 'inci' => 'Oil', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + ProductIngredient::create([ + 'product_id' => $source->id, + 'ingredient_id' => $ing->id, + 'pos' => 2, + 'gram' => 3.25, + 'factor' => 1.08, + ]); + + $repo = new ProductRepository(new Product); + $copy = $repo->copy($source->fresh()); + + $row = ProductIngredient::where('product_id', $copy->id)->where('ingredient_id', $ing->id)->first(); + expect($row)->not->toBeNull(); + expect((float) $row->gram)->toBe(3.25); + expect((float) $row->factor)->toBe(1.08); + expect($row->pos)->toBe(2); + expect($copy->shelf_life_type)->toBe('pao'); +}); diff --git a/tests/Feature/ProductPhase4Test.php b/tests/Feature/ProductPhase4Test.php new file mode 100644 index 0000000..49b93b4 --- /dev/null +++ b/tests/Feature/ProductPhase4Test.php @@ -0,0 +1,88 @@ + 'Creme', + 'title' => 'Creme', + 'active' => true, + ]); + + $material = PackagingMaterial::factory()->create(['name' => 'Glas-P4']); + $supplier = Supplier::factory()->create(); + $a = PackagingItem::factory()->create([ + 'packaging_material_id' => $material->id, + 'supplier_id' => $supplier->id, + 'name' => 'Flasche 30 ml', + 'category' => 'packaging', + 'weight_grams' => 40, + ]); + $b = PackagingItem::factory()->create([ + 'packaging_material_id' => $material->id, + 'supplier_id' => $supplier->id, + 'name' => 'Etikett', + 'category' => 'label', + 'weight_grams' => 1.5, + ]); + + $repo = new ProductRepository($product); + $repo->update([ + 'id' => (string) $product->id, + 'name' => $product->name, + 'title' => $product->title, + 'active' => '1', + 'product_inci_sync_sent' => '1', + 'pp_packaging_item_id' => [(string) $b->id, (string) $a->id], + 'pp_quantity' => ['2', '1,5'], + ]); + + $product->refresh(); + $rows = $product->packagings()->orderByPivot('pos')->get(); + expect($rows)->toHaveCount(2); + expect($rows[0]->id)->toBe($b->id); + expect((float) $rows[0]->pivot->quantity)->toBe(2.0); + expect((int) $rows[0]->pivot->pos)->toBe(0); + expect($rows[1]->id)->toBe($a->id); + expect((float) $rows[1]->pivot->quantity)->toBe(1.5); + expect((int) $rows[1]->pivot->pos)->toBe(1); +}); + +test('product copy preserves packaging bom', function () { + $product = Product::create([ + 'name' => 'Serum', + 'title' => 'Serum', + 'active' => true, + ]); + + $material = PackagingMaterial::factory()->create(); + $supplier = Supplier::factory()->create(); + $pk = PackagingItem::factory()->create([ + 'packaging_material_id' => $material->id, + 'supplier_id' => $supplier->id, + 'name' => 'Pumpflasche', + 'category' => 'packaging', + ]); + + $product->packagings()->sync([ + $pk->id => ['quantity' => 3, + 'pos' => 0, + ], + ]); + + $repo = new ProductRepository(new Product); + $copy = $repo->copy($product->fresh()); + + $copy->load('packagings'); + expect($copy->packagings)->toHaveCount(1); + expect($copy->packagings->first()->id)->toBe($pk->id); + expect((float) $copy->packagings->first()->pivot->quantity)->toBe(3.0); +}); diff --git a/tests/Feature/ProductionPhase5Test.php b/tests/Feature/ProductionPhase5Test.php new file mode 100644 index 0000000..5a2cc13 --- /dev/null +++ b/tests/Feature/ProductionPhase5Test.php @@ -0,0 +1,345 @@ +create([ + 'email' => uniqid('p5_', true).'@test.example', + 'password' => bcrypt('password'), + ]); + $user->forceFill([ + 'admin' => $adminLevel, + 'confirmed' => true, + 'active' => true, + 'wizard' => 100, + 'blocked' => false, + ])->save(); + + return $user->fresh(); +} + +function phase5EnsureCountry(): Country +{ + return Country::query()->firstOrCreate( + ['code' => 'DE'], + [ + 'phone' => '00', + 'en' => 'Germany', + 'de' => 'Deutschland', + 'es' => 'Germany', + 'fr' => 'Germany', + 'it' => 'Germany', + 'ru' => 'Germany', + 'active' => true, + ] + ); +} + +test('production service stores ingredients and packaging snapshot', function () { + phase5EnsureCountry(); + $user = phase5MakeUser(7); + $location = Location::factory()->create(); + $supplier = Supplier::factory()->create(); + + $ing = Ingredient::query()->create([ + 'name' => 'P5-Rohstoff', + 'trans_name' => '', + 'inci' => 'INCI', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + $product = Product::query()->create([ + 'name' => 'P5-Produkt', + 'title' => 'P5-Produkt', + 'active' => true, + 'shelf_life_type' => null, + ]); + + ProductIngredient::query()->create([ + 'product_id' => $product->id, + 'ingredient_id' => $ing->id, + 'pos' => 0, + 'gram' => 10, + 'factor' => 1.0, + ]); + + $material = PackagingMaterial::factory()->create(); + $pk = PackagingItem::factory()->create([ + 'packaging_material_id' => $material->id, + 'supplier_id' => $supplier->id, + 'name' => 'P5-Flasche', + 'category' => 'packaging', + ]); + $product->packagings()->sync([ + $pk->id => ['quantity' => 2, 'pos' => 0], + ]); + + $stock = StockEntry::query()->create([ + 'entry_type' => 'ingredient', + 'ingredient_id' => $ing->id, + 'packaging_item_id' => null, + 'supplier_id' => $supplier->id, + 'location_id' => $location->id, + 'unit' => 'gram', + 'ordered_by' => $user->id, + 'ordered_at' => '2026-01-01', + 'ordered_quantity' => 10000, + 'price_per_kg' => 1, + 'status' => 'received', + 'received_by' => $user->id, + 'received_at' => '2026-01-15', + 'received_quantity' => 10000, + 'batch_number' => 'B-P5', + 'best_before' => '2030-12-31', + 'quality_id' => null, + ]); + + $service = app(ProductionService::class); + $production = $service->store( + [ + 'product_id' => $product->id, + 'location_id' => $location->id, + 'produced_at' => '2026-03-01', + 'quantity' => 5, + 'notes' => 'test', + ], + [ + [ + 'ingredient_id' => $ing->id, + 'stock_entry_id' => $stock->id, + 'quantity_used' => '50', + ], + ], + $user->id + ); + + expect($production->productionIngredients)->toHaveCount(1); + expect((float) $production->productionIngredients->first()->quantity_used)->toBe(50.0); + expect($production->productionPackagings)->toHaveCount(1); + expect($production->productionPackagings->first()->quantity_used)->toBe(10); +}); + +test('production service rejects wrong gram sum', function () { + phase5EnsureCountry(); + $user = phase5MakeUser(7); + $location = Location::factory()->create(); + $supplier = Supplier::factory()->create(); + + $ing = Ingredient::query()->create([ + 'name' => 'P5-R2', + 'trans_name' => '', + 'inci' => 'X', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + $product = Product::query()->create([ + 'name' => 'P5-P2', + 'title' => 'P5-P2', + 'active' => true, + ]); + + ProductIngredient::query()->create([ + 'product_id' => $product->id, + 'ingredient_id' => $ing->id, + 'pos' => 0, + 'gram' => 10, + 'factor' => 1.0, + ]); + + $stock = StockEntry::query()->create([ + 'entry_type' => 'ingredient', + 'ingredient_id' => $ing->id, + 'packaging_item_id' => null, + 'supplier_id' => $supplier->id, + 'location_id' => $location->id, + 'unit' => 'gram', + 'ordered_by' => $user->id, + 'ordered_at' => '2026-01-01', + 'ordered_quantity' => 10000, + 'price_per_kg' => 1, + 'status' => 'received', + 'received_by' => $user->id, + 'received_at' => '2026-01-15', + 'received_quantity' => 10000, + 'batch_number' => 'B2', + 'best_before' => '2030-12-31', + 'quality_id' => null, + ]); + + $service = app(ProductionService::class); + + expect(fn () => $service->store( + [ + 'product_id' => $product->id, + 'location_id' => $location->id, + 'produced_at' => '2026-03-01', + 'quantity' => 5, + 'notes' => null, + ], + [ + [ + 'ingredient_id' => $ing->id, + 'stock_entry_id' => $stock->id, + 'quantity_used' => '100', + ], + ], + $user->id + ))->toThrow(ValidationException::class); +}); + +test('production api recipe json returns ingredients and packagings', function () { + phase5EnsureCountry(); + $user = phase5MakeUser(1); + $location = Location::factory()->create(); + $supplier = Supplier::factory()->create(); + + $ing = Ingredient::query()->create([ + 'name' => 'P5-API', + 'trans_name' => '', + 'inci' => 'Y', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + $product = Product::query()->create([ + 'name' => 'P5-API-P', + 'title' => 'P5-API-P', + 'active' => true, + ]); + + ProductIngredient::query()->create([ + 'product_id' => $product->id, + 'ingredient_id' => $ing->id, + 'pos' => 0, + 'gram' => 2, + 'factor' => 1.5, + ]); + + StockEntry::query()->create([ + 'entry_type' => 'ingredient', + 'ingredient_id' => $ing->id, + 'packaging_item_id' => null, + 'supplier_id' => $supplier->id, + 'location_id' => $location->id, + 'unit' => 'gram', + 'ordered_by' => $user->id, + 'ordered_at' => '2026-01-01', + 'ordered_quantity' => 5000, + 'price_per_kg' => 1, + 'status' => 'received', + 'received_by' => $user->id, + 'received_at' => '2026-02-01', + 'received_quantity' => 5000, + 'batch_number' => 'API-1', + 'best_before' => '2028-06-01', + 'quality_id' => null, + ]); + + $this->actingAs($user, 'user'); + $response = $this->getJson(route('admin.inventory.api.products.recipe', ['product' => $product->id]).'?location_id='.$location->id.'&quantity=10'); + $response->assertSuccessful(); + $response->assertJsonPath('product.id', $product->id); + expect((float) $response->json('ingredients.0.required_grams_total'))->toBe(30.0); +}); + +test('production mhd warning when stock expires before product end', function () { + phase5EnsureCountry(); + $user = phase5MakeUser(7); + $location = Location::factory()->create(); + $supplier = Supplier::factory()->create(); + + $ing = Ingredient::query()->create([ + 'name' => 'P5-MHD', + 'trans_name' => '', + 'inci' => 'Z', + 'trans_inci' => '', + 'effect' => '', + 'trans_effect' => '', + 'active' => true, + 'pos' => 0, + ]); + + $product = Product::query()->create([ + 'name' => 'P5-MHD-P', + 'title' => 'P5-MHD-P', + 'active' => true, + 'shelf_life_type' => 'fixed', + 'shelf_life_months' => 24, + ]); + + ProductIngredient::query()->create([ + 'product_id' => $product->id, + 'ingredient_id' => $ing->id, + 'pos' => 0, + 'gram' => 1, + 'factor' => 1.0, + ]); + + $stock = StockEntry::query()->create([ + 'entry_type' => 'ingredient', + 'ingredient_id' => $ing->id, + 'packaging_item_id' => null, + 'supplier_id' => $supplier->id, + 'location_id' => $location->id, + 'unit' => 'gram', + 'ordered_by' => $user->id, + 'ordered_at' => '2026-01-01', + 'ordered_quantity' => 5000, + 'price_per_kg' => 1, + 'status' => 'received', + 'received_by' => $user->id, + 'received_at' => '2026-02-01', + 'received_quantity' => 5000, + 'batch_number' => 'MHD-B', + 'best_before' => '2026-06-01', + 'quality_id' => null, + ]); + + $service = app(ProductionService::class); + $production = $service->store( + [ + 'product_id' => $product->id, + 'location_id' => $location->id, + 'produced_at' => '2026-03-01', + 'quantity' => 1, + 'notes' => null, + ], + [ + [ + 'ingredient_id' => $ing->id, + 'stock_entry_id' => $stock->id, + 'quantity_used' => '1', + ], + ], + $user->id + ); + + expect($production->mhd_warning)->toBeTrue(); +});