├── .gitignore ├── Interview Challenges ├── 7learn │ ├── 1.md │ └── 2.md └── Private Companies │ └── C1 │ ├── .editorconfig │ ├── .env.example │ ├── .gitattributes │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── app │ ├── Actions │ │ ├── Comment │ │ │ └── GetProductCommentsAction.php │ │ ├── ProductPrice │ │ │ └── GetProductPriceAction.php │ │ └── Vote │ │ │ └── GetProductVotesAction.php │ ├── Console │ │ └── Kernel.php │ ├── Exceptions │ │ └── Handler.php │ ├── Http │ │ ├── Controllers │ │ │ ├── Controller.php │ │ │ └── ProductController.php │ │ ├── Kernel.php │ │ ├── Middleware │ │ │ ├── Authenticate.php │ │ │ ├── EncryptCookies.php │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ ├── RedirectIfAuthenticated.php │ │ │ ├── TrimStrings.php │ │ │ ├── TrustHosts.php │ │ │ ├── TrustProxies.php │ │ │ ├── ValidateSignature.php │ │ │ └── VerifyCsrfToken.php │ │ └── Resources │ │ │ ├── CommentResource.php │ │ │ ├── ProductPriceResource.php │ │ │ ├── ProductResource.php │ │ │ ├── ProviderResource.php │ │ │ ├── UserResource.php │ │ │ └── VoteResource.php │ ├── Models │ │ ├── Comment.php │ │ ├── Product.php │ │ ├── ProductPrice.php │ │ ├── Provider.php │ │ ├── User.php │ │ └── Vote.php │ ├── Providers │ │ ├── AppServiceProvider.php │ │ ├── AuthServiceProvider.php │ │ ├── BroadcastServiceProvider.php │ │ ├── EventServiceProvider.php │ │ ├── RepositoryProvider.php │ │ └── RouteServiceProvider.php │ ├── Repositories │ │ ├── BaseRepository.php │ │ ├── BaseRepositoryInterface.php │ │ ├── Comment │ │ │ ├── CommentRepository.php │ │ │ └── CommentRepositoryInterface.php │ │ ├── Product │ │ │ ├── ProductRepository.php │ │ │ └── ProductRepositoryInterface.php │ │ └── Vote │ │ │ ├── VoteRepository.php │ │ │ └── VoteRepositoryInterface.php │ └── Services │ │ ├── EnquiryService.php │ │ └── ReviewService.php │ ├── artisan │ ├── bootstrap │ ├── app.php │ └── cache │ │ └── .gitignore │ ├── composer.json │ ├── composer.lock │ ├── config │ ├── app.php │ ├── auth.php │ ├── broadcasting.php │ ├── cache.php │ ├── cors.php │ ├── database.php │ ├── filesystems.php │ ├── hashing.php │ ├── logging.php │ ├── mail.php │ ├── queue.php │ ├── sanctum.php │ ├── services.php │ ├── session.php │ └── view.php │ ├── database │ ├── .gitignore │ ├── factories │ │ ├── CommentFactory.php │ │ ├── ProductFactory.php │ │ ├── ProductPriceFactory.php │ │ ├── ProviderFactory.php │ │ ├── UserFactory.php │ │ └── VoteFactory.php │ ├── migrations │ │ ├── 2014_10_12_000000_create_users_table.php │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ ├── 2024_01_07_220413_create_products_table.php │ │ ├── 2024_01_07_220811_create_comments_table.php │ │ ├── 2024_01_07_222014_create_providers_table.php │ │ ├── 2024_01_07_222101_create_votes_table.php │ │ └── 2024_01_07_232924_create_product_prices_table.php │ └── seeders │ │ ├── CommentSeeder.php │ │ ├── DatabaseSeeder.php │ │ ├── ProductPriceSeeder.php │ │ ├── ProductSeeder.php │ │ ├── ProviderSeeder.php │ │ ├── UserSeeder.php │ │ └── VoteSeeder.php │ ├── package.json │ ├── phpunit.xml │ ├── postman_collection.json │ ├── public │ ├── .htaccess │ ├── favicon.ico │ ├── index.php │ └── robots.txt │ ├── resources │ ├── css │ │ └── app.css │ ├── js │ │ ├── app.js │ │ └── bootstrap.js │ └── views │ │ └── welcome.blade.php │ ├── routes │ ├── api.php │ ├── channels.php │ ├── console.php │ └── web.php │ ├── storage │ ├── app │ │ ├── .gitignore │ │ └── public │ │ │ └── .gitignore │ ├── framework │ │ ├── .gitignore │ │ ├── cache │ │ │ ├── .gitignore │ │ │ └── data │ │ │ │ └── .gitignore │ │ ├── sessions │ │ │ └── .gitignore │ │ ├── testing │ │ │ └── .gitignore │ │ └── views │ │ │ └── .gitignore │ └── logs │ │ └── .gitignore │ ├── tests │ ├── CreatesApplication.php │ ├── Feature │ │ └── ExampleTest.php │ ├── TestCase.php │ └── Unit │ │ └── ExampleTest.php │ └── vite.config.js ├── Projects ├── 7learn │ └── P1 │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── app │ │ ├── Console │ │ │ ├── Commands │ │ │ │ └── ElasticSyncer.php │ │ │ └── Kernel.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Helpers │ │ │ └── Helper.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── API │ │ │ │ │ ├── V1 │ │ │ │ │ │ └── PostController.php │ │ │ │ │ └── V2 │ │ │ │ │ │ └── PostController.php │ │ │ │ └── Controller.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ └── Resources │ │ │ │ └── PostCollection.php │ │ ├── Jobs │ │ │ └── SendSmsJob.php │ │ ├── Models │ │ │ ├── Category.php │ │ │ ├── Post.php │ │ │ ├── Tag.php │ │ │ └── User.php │ │ ├── Observers │ │ │ └── PostObserver.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ └── Services │ │ │ ├── Elastic.php │ │ │ └── Sms.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── scout.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── CategoryFactory.php │ │ │ ├── PostFactory.php │ │ │ ├── TagFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ ├── 2024_01_23_185450_create_posts_table.php │ │ │ ├── 2024_01_23_185515_create_tags_table.php │ │ │ ├── 2024_01_23_185558_create_categories_table.php │ │ │ ├── 2024_01_23_192521_post_tag.php │ │ │ ├── 2024_01_23_192555_category_tag.php │ │ │ └── 2024_01_26_155304_create_jobs_table.php │ │ └── seeders │ │ │ ├── CategorySeeder.php │ │ │ ├── DatabaseSeeder.php │ │ │ ├── PostSeeder.php │ │ │ └── TagSeeder.php │ │ ├── docker-compose.yml │ │ ├── docker-compose │ │ └── nginx │ │ │ └── 7learn.conf │ │ ├── logo.jpeg │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ │ ├── routes │ │ ├── api.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ └── ExampleTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ ├── ExampleTest.php │ │ │ └── HelperTest.php │ │ ├── tools │ │ └── php-cs-fixer │ │ │ ├── composer.json │ │ │ └── vendor │ │ │ ├── autoload.php │ │ │ ├── bin │ │ │ └── php-cs-fixer │ │ │ ├── composer │ │ │ ├── ClassLoader.php │ │ │ ├── InstalledVersions.php │ │ │ ├── LICENSE │ │ │ ├── autoload_classmap.php │ │ │ ├── autoload_files.php │ │ │ ├── autoload_namespaces.php │ │ │ ├── autoload_psr4.php │ │ │ ├── autoload_real.php │ │ │ ├── autoload_static.php │ │ │ ├── installed.json │ │ │ ├── installed.php │ │ │ ├── pcre │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── composer.json │ │ │ │ └── src │ │ │ │ │ ├── MatchAllResult.php │ │ │ │ │ ├── MatchAllStrictGroupsResult.php │ │ │ │ │ ├── MatchAllWithOffsetsResult.php │ │ │ │ │ ├── MatchResult.php │ │ │ │ │ ├── MatchStrictGroupsResult.php │ │ │ │ │ ├── MatchWithOffsetsResult.php │ │ │ │ │ ├── PcreException.php │ │ │ │ │ ├── Preg.php │ │ │ │ │ ├── Regex.php │ │ │ │ │ ├── ReplaceResult.php │ │ │ │ │ └── UnexpectedNullMatchException.php │ │ │ ├── semver │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── composer.json │ │ │ │ ├── phpstan-baseline.neon │ │ │ │ └── src │ │ │ │ │ ├── Comparator.php │ │ │ │ │ ├── CompilingMatcher.php │ │ │ │ │ ├── Constraint │ │ │ │ │ ├── Bound.php │ │ │ │ │ ├── Constraint.php │ │ │ │ │ ├── ConstraintInterface.php │ │ │ │ │ ├── MatchAllConstraint.php │ │ │ │ │ ├── MatchNoneConstraint.php │ │ │ │ │ └── MultiConstraint.php │ │ │ │ │ ├── Interval.php │ │ │ │ │ ├── Intervals.php │ │ │ │ │ ├── Semver.php │ │ │ │ │ └── VersionParser.php │ │ │ └── xdebug-handler │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── composer.json │ │ │ │ └── src │ │ │ │ ├── PhpConfig.php │ │ │ │ ├── Process.php │ │ │ │ ├── Status.php │ │ │ │ └── XdebugHandler.php │ │ │ ├── friendsofphp │ │ │ └── php-cs-fixer │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── UPGRADE-v3.md │ │ │ │ ├── ci-integration.sh │ │ │ │ ├── composer.json │ │ │ │ ├── feature-or-bug.rst │ │ │ │ ├── logo.md │ │ │ │ ├── logo.png │ │ │ │ ├── php-cs-fixer │ │ │ │ └── src │ │ │ │ ├── AbstractDoctrineAnnotationFixer.php │ │ │ │ ├── AbstractFixer.php │ │ │ │ ├── AbstractFopenFlagFixer.php │ │ │ │ ├── AbstractFunctionReferenceFixer.php │ │ │ │ ├── AbstractNoUselessElseFixer.php │ │ │ │ ├── AbstractPhpdocToTypeDeclarationFixer.php │ │ │ │ ├── AbstractPhpdocTypesFixer.php │ │ │ │ ├── AbstractProxyFixer.php │ │ │ │ ├── Cache │ │ │ │ ├── Cache.php │ │ │ │ ├── CacheInterface.php │ │ │ │ ├── CacheManagerInterface.php │ │ │ │ ├── Directory.php │ │ │ │ ├── DirectoryInterface.php │ │ │ │ ├── FileCacheManager.php │ │ │ │ ├── FileHandler.php │ │ │ │ ├── FileHandlerInterface.php │ │ │ │ ├── NullCacheManager.php │ │ │ │ ├── Signature.php │ │ │ │ └── SignatureInterface.php │ │ │ │ ├── Config.php │ │ │ │ ├── ConfigInterface.php │ │ │ │ ├── ConfigurationException │ │ │ │ ├── InvalidConfigurationException.php │ │ │ │ ├── InvalidFixerConfigurationException.php │ │ │ │ ├── InvalidForEnvFixerConfigurationException.php │ │ │ │ └── RequiredFixerConfigurationException.php │ │ │ │ ├── Console │ │ │ │ ├── Application.php │ │ │ │ ├── Command │ │ │ │ │ ├── CheckCommand.php │ │ │ │ │ ├── DescribeCommand.php │ │ │ │ │ ├── DescribeNameNotFoundException.php │ │ │ │ │ ├── DocumentationCommand.php │ │ │ │ │ ├── FixCommand.php │ │ │ │ │ ├── FixCommandExitStatusCalculator.php │ │ │ │ │ ├── HelpCommand.php │ │ │ │ │ ├── ListFilesCommand.php │ │ │ │ │ ├── ListSetsCommand.php │ │ │ │ │ └── SelfUpdateCommand.php │ │ │ │ ├── ConfigurationResolver.php │ │ │ │ ├── Output │ │ │ │ │ ├── ErrorOutput.php │ │ │ │ │ ├── OutputContext.php │ │ │ │ │ └── Progress │ │ │ │ │ │ ├── DotsOutput.php │ │ │ │ │ │ ├── NullOutput.php │ │ │ │ │ │ ├── PercentageBarOutput.php │ │ │ │ │ │ ├── ProgressOutputFactory.php │ │ │ │ │ │ ├── ProgressOutputInterface.php │ │ │ │ │ │ └── ProgressOutputType.php │ │ │ │ ├── Report │ │ │ │ │ ├── FixReport │ │ │ │ │ │ ├── CheckstyleReporter.php │ │ │ │ │ │ ├── GitlabReporter.php │ │ │ │ │ │ ├── JsonReporter.php │ │ │ │ │ │ ├── JunitReporter.php │ │ │ │ │ │ ├── ReportSummary.php │ │ │ │ │ │ ├── ReporterFactory.php │ │ │ │ │ │ ├── ReporterInterface.php │ │ │ │ │ │ ├── TextReporter.php │ │ │ │ │ │ └── XmlReporter.php │ │ │ │ │ └── ListSetsReport │ │ │ │ │ │ ├── JsonReporter.php │ │ │ │ │ │ ├── ReportSummary.php │ │ │ │ │ │ ├── ReporterFactory.php │ │ │ │ │ │ ├── ReporterInterface.php │ │ │ │ │ │ └── TextReporter.php │ │ │ │ ├── SelfUpdate │ │ │ │ │ ├── GithubClient.php │ │ │ │ │ ├── GithubClientInterface.php │ │ │ │ │ ├── NewVersionChecker.php │ │ │ │ │ └── NewVersionCheckerInterface.php │ │ │ │ └── WarningsDetector.php │ │ │ │ ├── Differ │ │ │ │ ├── DiffConsoleFormatter.php │ │ │ │ ├── DifferInterface.php │ │ │ │ ├── FullDiffer.php │ │ │ │ ├── NullDiffer.php │ │ │ │ └── UnifiedDiffer.php │ │ │ │ ├── DocBlock │ │ │ │ ├── Annotation.php │ │ │ │ ├── DocBlock.php │ │ │ │ ├── Line.php │ │ │ │ ├── ShortDescription.php │ │ │ │ ├── Tag.php │ │ │ │ ├── TagComparator.php │ │ │ │ └── TypeExpression.php │ │ │ │ ├── Doctrine │ │ │ │ └── Annotation │ │ │ │ │ ├── DocLexer.php │ │ │ │ │ ├── Token.php │ │ │ │ │ └── Tokens.php │ │ │ │ ├── Documentation │ │ │ │ ├── DocumentationLocator.php │ │ │ │ ├── FixerDocumentGenerator.php │ │ │ │ ├── RstUtils.php │ │ │ │ └── RuleSetDocumentationGenerator.php │ │ │ │ ├── Error │ │ │ │ ├── Error.php │ │ │ │ └── ErrorsManager.php │ │ │ │ ├── ExecutorWithoutErrorHandler.php │ │ │ │ ├── ExecutorWithoutErrorHandlerException.php │ │ │ │ ├── FileReader.php │ │ │ │ ├── FileRemoval.php │ │ │ │ ├── Finder.php │ │ │ │ ├── Fixer │ │ │ │ ├── AbstractIncrementOperatorFixer.php │ │ │ │ ├── AbstractPhpUnitFixer.php │ │ │ │ ├── AbstractShortOperatorFixer.php │ │ │ │ ├── Alias │ │ │ │ │ ├── ArrayPushFixer.php │ │ │ │ │ ├── BacktickToShellExecFixer.php │ │ │ │ │ ├── EregToPregFixer.php │ │ │ │ │ ├── MbStrFunctionsFixer.php │ │ │ │ │ ├── ModernizeStrposFixer.php │ │ │ │ │ ├── NoAliasFunctionsFixer.php │ │ │ │ │ ├── NoAliasLanguageConstructCallFixer.php │ │ │ │ │ ├── NoMixedEchoPrintFixer.php │ │ │ │ │ ├── PowToExponentiationFixer.php │ │ │ │ │ ├── RandomApiMigrationFixer.php │ │ │ │ │ └── SetTypeToCastFixer.php │ │ │ │ ├── ArrayNotation │ │ │ │ │ ├── ArraySyntaxFixer.php │ │ │ │ │ ├── NoMultilineWhitespaceAroundDoubleArrowFixer.php │ │ │ │ │ ├── NoTrailingCommaInSinglelineArrayFixer.php │ │ │ │ │ ├── NoWhitespaceBeforeCommaInArrayFixer.php │ │ │ │ │ ├── NormalizeIndexBraceFixer.php │ │ │ │ │ ├── ReturnToYieldFromFixer.php │ │ │ │ │ ├── TrimArraySpacesFixer.php │ │ │ │ │ ├── WhitespaceAfterCommaInArrayFixer.php │ │ │ │ │ └── YieldFromArrayToYieldsFixer.php │ │ │ │ ├── AttributeNotation │ │ │ │ │ └── AttributeEmptyParenthesesFixer.php │ │ │ │ ├── Basic │ │ │ │ │ ├── BracesFixer.php │ │ │ │ │ ├── BracesPositionFixer.php │ │ │ │ │ ├── CurlyBracesPositionFixer.php │ │ │ │ │ ├── EncodingFixer.php │ │ │ │ │ ├── NoMultipleStatementsPerLineFixer.php │ │ │ │ │ ├── NoTrailingCommaInSinglelineFixer.php │ │ │ │ │ ├── NonPrintableCharacterFixer.php │ │ │ │ │ ├── NumericLiteralSeparatorFixer.php │ │ │ │ │ ├── OctalNotationFixer.php │ │ │ │ │ ├── PsrAutoloadingFixer.php │ │ │ │ │ └── SingleLineEmptyBodyFixer.php │ │ │ │ ├── Casing │ │ │ │ │ ├── ClassReferenceNameCasingFixer.php │ │ │ │ │ ├── ConstantCaseFixer.php │ │ │ │ │ ├── IntegerLiteralCaseFixer.php │ │ │ │ │ ├── LowercaseKeywordsFixer.php │ │ │ │ │ ├── LowercaseStaticReferenceFixer.php │ │ │ │ │ ├── MagicConstantCasingFixer.php │ │ │ │ │ ├── MagicMethodCasingFixer.php │ │ │ │ │ ├── NativeFunctionCasingFixer.php │ │ │ │ │ ├── NativeFunctionTypeDeclarationCasingFixer.php │ │ │ │ │ └── NativeTypeDeclarationCasingFixer.php │ │ │ │ ├── CastNotation │ │ │ │ │ ├── CastSpacesFixer.php │ │ │ │ │ ├── LowercaseCastFixer.php │ │ │ │ │ ├── ModernizeTypesCastingFixer.php │ │ │ │ │ ├── NoShortBoolCastFixer.php │ │ │ │ │ ├── NoUnsetCastFixer.php │ │ │ │ │ └── ShortScalarCastFixer.php │ │ │ │ ├── ClassNotation │ │ │ │ │ ├── ClassAttributesSeparationFixer.php │ │ │ │ │ ├── ClassDefinitionFixer.php │ │ │ │ │ ├── FinalClassFixer.php │ │ │ │ │ ├── FinalInternalClassFixer.php │ │ │ │ │ ├── FinalPublicMethodForAbstractClassFixer.php │ │ │ │ │ ├── NoBlankLinesAfterClassOpeningFixer.php │ │ │ │ │ ├── NoNullPropertyInitializationFixer.php │ │ │ │ │ ├── NoPhp4ConstructorFixer.php │ │ │ │ │ ├── NoUnneededFinalMethodFixer.php │ │ │ │ │ ├── OrderedClassElementsFixer.php │ │ │ │ │ ├── OrderedInterfacesFixer.php │ │ │ │ │ ├── OrderedTraitsFixer.php │ │ │ │ │ ├── OrderedTypesFixer.php │ │ │ │ │ ├── PhpdocReadonlyClassCommentToKeywordFixer.php │ │ │ │ │ ├── ProtectedToPrivateFixer.php │ │ │ │ │ ├── SelfAccessorFixer.php │ │ │ │ │ ├── SelfStaticAccessorFixer.php │ │ │ │ │ ├── SingleClassElementPerStatementFixer.php │ │ │ │ │ ├── SingleTraitInsertPerStatementFixer.php │ │ │ │ │ └── VisibilityRequiredFixer.php │ │ │ │ ├── ClassUsage │ │ │ │ │ └── DateTimeImmutableFixer.php │ │ │ │ ├── Comment │ │ │ │ │ ├── CommentToPhpdocFixer.php │ │ │ │ │ ├── HeaderCommentFixer.php │ │ │ │ │ ├── MultilineCommentOpeningClosingFixer.php │ │ │ │ │ ├── NoEmptyCommentFixer.php │ │ │ │ │ ├── NoTrailingWhitespaceInCommentFixer.php │ │ │ │ │ ├── SingleLineCommentSpacingFixer.php │ │ │ │ │ └── SingleLineCommentStyleFixer.php │ │ │ │ ├── ConfigurableFixerInterface.php │ │ │ │ ├── ConstantNotation │ │ │ │ │ └── NativeConstantInvocationFixer.php │ │ │ │ ├── ControlStructure │ │ │ │ │ ├── ControlStructureBracesFixer.php │ │ │ │ │ ├── ControlStructureContinuationPositionFixer.php │ │ │ │ │ ├── ElseifFixer.php │ │ │ │ │ ├── EmptyLoopBodyFixer.php │ │ │ │ │ ├── EmptyLoopConditionFixer.php │ │ │ │ │ ├── IncludeFixer.php │ │ │ │ │ ├── NoAlternativeSyntaxFixer.php │ │ │ │ │ ├── NoBreakCommentFixer.php │ │ │ │ │ ├── NoSuperfluousElseifFixer.php │ │ │ │ │ ├── NoTrailingCommaInListCallFixer.php │ │ │ │ │ ├── NoUnneededBracesFixer.php │ │ │ │ │ ├── NoUnneededControlParenthesesFixer.php │ │ │ │ │ ├── NoUnneededCurlyBracesFixer.php │ │ │ │ │ ├── NoUselessElseFixer.php │ │ │ │ │ ├── SimplifiedIfReturnFixer.php │ │ │ │ │ ├── SwitchCaseSemicolonToColonFixer.php │ │ │ │ │ ├── SwitchCaseSpaceFixer.php │ │ │ │ │ ├── SwitchContinueToBreakFixer.php │ │ │ │ │ ├── TrailingCommaInMultilineFixer.php │ │ │ │ │ └── YodaStyleFixer.php │ │ │ │ ├── DeprecatedFixerInterface.php │ │ │ │ ├── DoctrineAnnotation │ │ │ │ │ ├── DoctrineAnnotationArrayAssignmentFixer.php │ │ │ │ │ ├── DoctrineAnnotationBracesFixer.php │ │ │ │ │ ├── DoctrineAnnotationIndentationFixer.php │ │ │ │ │ └── DoctrineAnnotationSpacesFixer.php │ │ │ │ ├── ExperimentalFixerInterface.php │ │ │ │ ├── FixerInterface.php │ │ │ │ ├── FunctionNotation │ │ │ │ │ ├── CombineNestedDirnameFixer.php │ │ │ │ │ ├── DateTimeCreateFromFormatCallFixer.php │ │ │ │ │ ├── FopenFlagOrderFixer.php │ │ │ │ │ ├── FopenFlagsFixer.php │ │ │ │ │ ├── FunctionDeclarationFixer.php │ │ │ │ │ ├── FunctionTypehintSpaceFixer.php │ │ │ │ │ ├── ImplodeCallFixer.php │ │ │ │ │ ├── LambdaNotUsedImportFixer.php │ │ │ │ │ ├── MethodArgumentSpaceFixer.php │ │ │ │ │ ├── NativeFunctionInvocationFixer.php │ │ │ │ │ ├── NoSpacesAfterFunctionNameFixer.php │ │ │ │ │ ├── NoTrailingCommaInSinglelineFunctionCallFixer.php │ │ │ │ │ ├── NoUnreachableDefaultArgumentValueFixer.php │ │ │ │ │ ├── NoUselessSprintfFixer.php │ │ │ │ │ ├── NullableTypeDeclarationForDefaultNullValueFixer.php │ │ │ │ │ ├── PhpdocToParamTypeFixer.php │ │ │ │ │ ├── PhpdocToPropertyTypeFixer.php │ │ │ │ │ ├── PhpdocToReturnTypeFixer.php │ │ │ │ │ ├── RegularCallableCallFixer.php │ │ │ │ │ ├── ReturnTypeDeclarationFixer.php │ │ │ │ │ ├── SingleLineThrowFixer.php │ │ │ │ │ ├── StaticLambdaFixer.php │ │ │ │ │ ├── UseArrowFunctionsFixer.php │ │ │ │ │ └── VoidReturnFixer.php │ │ │ │ ├── Import │ │ │ │ │ ├── FullyQualifiedStrictTypesFixer.php │ │ │ │ │ ├── GlobalNamespaceImportFixer.php │ │ │ │ │ ├── GroupImportFixer.php │ │ │ │ │ ├── NoLeadingImportSlashFixer.php │ │ │ │ │ ├── NoUnneededImportAliasFixer.php │ │ │ │ │ ├── NoUnusedImportsFixer.php │ │ │ │ │ ├── OrderedImportsFixer.php │ │ │ │ │ ├── SingleImportPerStatementFixer.php │ │ │ │ │ └── SingleLineAfterImportsFixer.php │ │ │ │ ├── Indentation.php │ │ │ │ ├── LanguageConstruct │ │ │ │ │ ├── ClassKeywordFixer.php │ │ │ │ │ ├── ClassKeywordRemoveFixer.php │ │ │ │ │ ├── CombineConsecutiveIssetsFixer.php │ │ │ │ │ ├── CombineConsecutiveUnsetsFixer.php │ │ │ │ │ ├── DeclareEqualNormalizeFixer.php │ │ │ │ │ ├── DeclareParenthesesFixer.php │ │ │ │ │ ├── DirConstantFixer.php │ │ │ │ │ ├── ErrorSuppressionFixer.php │ │ │ │ │ ├── ExplicitIndirectVariableFixer.php │ │ │ │ │ ├── FunctionToConstantFixer.php │ │ │ │ │ ├── GetClassToClassKeywordFixer.php │ │ │ │ │ ├── IsNullFixer.php │ │ │ │ │ ├── NoUnsetOnPropertyFixer.php │ │ │ │ │ ├── NullableTypeDeclarationFixer.php │ │ │ │ │ ├── SingleSpaceAfterConstructFixer.php │ │ │ │ │ └── SingleSpaceAroundConstructFixer.php │ │ │ │ ├── ListNotation │ │ │ │ │ └── ListSyntaxFixer.php │ │ │ │ ├── NamespaceNotation │ │ │ │ │ ├── BlankLineAfterNamespaceFixer.php │ │ │ │ │ ├── BlankLinesBeforeNamespaceFixer.php │ │ │ │ │ ├── CleanNamespaceFixer.php │ │ │ │ │ ├── NoBlankLinesBeforeNamespaceFixer.php │ │ │ │ │ ├── NoLeadingNamespaceWhitespaceFixer.php │ │ │ │ │ └── SingleBlankLineBeforeNamespaceFixer.php │ │ │ │ ├── Naming │ │ │ │ │ └── NoHomoglyphNamesFixer.php │ │ │ │ ├── Operator │ │ │ │ │ ├── AssignNullCoalescingToCoalesceEqualFixer.php │ │ │ │ │ ├── BinaryOperatorSpacesFixer.php │ │ │ │ │ ├── ConcatSpaceFixer.php │ │ │ │ │ ├── IncrementStyleFixer.php │ │ │ │ │ ├── LogicalOperatorsFixer.php │ │ │ │ │ ├── LongToShorthandOperatorFixer.php │ │ │ │ │ ├── NewWithBracesFixer.php │ │ │ │ │ ├── NewWithParenthesesFixer.php │ │ │ │ │ ├── NoSpaceAroundDoubleColonFixer.php │ │ │ │ │ ├── NoUselessConcatOperatorFixer.php │ │ │ │ │ ├── NoUselessNullsafeOperatorFixer.php │ │ │ │ │ ├── NotOperatorWithSpaceFixer.php │ │ │ │ │ ├── NotOperatorWithSuccessorSpaceFixer.php │ │ │ │ │ ├── ObjectOperatorWithoutWhitespaceFixer.php │ │ │ │ │ ├── OperatorLinebreakFixer.php │ │ │ │ │ ├── StandardizeIncrementFixer.php │ │ │ │ │ ├── StandardizeNotEqualsFixer.php │ │ │ │ │ ├── TernaryOperatorSpacesFixer.php │ │ │ │ │ ├── TernaryToElvisOperatorFixer.php │ │ │ │ │ ├── TernaryToNullCoalescingFixer.php │ │ │ │ │ └── UnaryOperatorSpacesFixer.php │ │ │ │ ├── PhpTag │ │ │ │ │ ├── BlankLineAfterOpeningTagFixer.php │ │ │ │ │ ├── EchoTagSyntaxFixer.php │ │ │ │ │ ├── FullOpeningTagFixer.php │ │ │ │ │ ├── LinebreakAfterOpeningTagFixer.php │ │ │ │ │ └── NoClosingTagFixer.php │ │ │ │ ├── PhpUnit │ │ │ │ │ ├── PhpUnitConstructFixer.php │ │ │ │ │ ├── PhpUnitDataProviderNameFixer.php │ │ │ │ │ ├── PhpUnitDataProviderReturnTypeFixer.php │ │ │ │ │ ├── PhpUnitDataProviderStaticFixer.php │ │ │ │ │ ├── PhpUnitDedicateAssertFixer.php │ │ │ │ │ ├── PhpUnitDedicateAssertInternalTypeFixer.php │ │ │ │ │ ├── PhpUnitExpectationFixer.php │ │ │ │ │ ├── PhpUnitFqcnAnnotationFixer.php │ │ │ │ │ ├── PhpUnitInternalClassFixer.php │ │ │ │ │ ├── PhpUnitMethodCasingFixer.php │ │ │ │ │ ├── PhpUnitMockFixer.php │ │ │ │ │ ├── PhpUnitMockShortWillReturnFixer.php │ │ │ │ │ ├── PhpUnitNamespacedFixer.php │ │ │ │ │ ├── PhpUnitNoExpectationAnnotationFixer.php │ │ │ │ │ ├── PhpUnitSetUpTearDownVisibilityFixer.php │ │ │ │ │ ├── PhpUnitSizeClassFixer.php │ │ │ │ │ ├── PhpUnitStrictFixer.php │ │ │ │ │ ├── PhpUnitTargetVersion.php │ │ │ │ │ ├── PhpUnitTestAnnotationFixer.php │ │ │ │ │ ├── PhpUnitTestCaseStaticMethodCallsFixer.php │ │ │ │ │ └── PhpUnitTestClassRequiresCoversFixer.php │ │ │ │ ├── Phpdoc │ │ │ │ │ ├── AlignMultilineCommentFixer.php │ │ │ │ │ ├── GeneralPhpdocAnnotationRemoveFixer.php │ │ │ │ │ ├── GeneralPhpdocTagRenameFixer.php │ │ │ │ │ ├── NoBlankLinesAfterPhpdocFixer.php │ │ │ │ │ ├── NoEmptyPhpdocFixer.php │ │ │ │ │ ├── NoSuperfluousPhpdocTagsFixer.php │ │ │ │ │ ├── PhpdocAddMissingParamAnnotationFixer.php │ │ │ │ │ ├── PhpdocAlignFixer.php │ │ │ │ │ ├── PhpdocAnnotationWithoutDotFixer.php │ │ │ │ │ ├── PhpdocIndentFixer.php │ │ │ │ │ ├── PhpdocInlineTagNormalizerFixer.php │ │ │ │ │ ├── PhpdocLineSpanFixer.php │ │ │ │ │ ├── PhpdocNoAccessFixer.php │ │ │ │ │ ├── PhpdocNoAliasTagFixer.php │ │ │ │ │ ├── PhpdocNoEmptyReturnFixer.php │ │ │ │ │ ├── PhpdocNoPackageFixer.php │ │ │ │ │ ├── PhpdocNoUselessInheritdocFixer.php │ │ │ │ │ ├── PhpdocOrderByValueFixer.php │ │ │ │ │ ├── PhpdocOrderFixer.php │ │ │ │ │ ├── PhpdocParamOrderFixer.php │ │ │ │ │ ├── PhpdocReturnSelfReferenceFixer.php │ │ │ │ │ ├── PhpdocScalarFixer.php │ │ │ │ │ ├── PhpdocSeparationFixer.php │ │ │ │ │ ├── PhpdocSingleLineVarSpacingFixer.php │ │ │ │ │ ├── PhpdocSummaryFixer.php │ │ │ │ │ ├── PhpdocTagCasingFixer.php │ │ │ │ │ ├── PhpdocTagTypeFixer.php │ │ │ │ │ ├── PhpdocToCommentFixer.php │ │ │ │ │ ├── PhpdocTrimConsecutiveBlankLineSeparationFixer.php │ │ │ │ │ ├── PhpdocTrimFixer.php │ │ │ │ │ ├── PhpdocTypesFixer.php │ │ │ │ │ ├── PhpdocTypesOrderFixer.php │ │ │ │ │ ├── PhpdocVarAnnotationCorrectOrderFixer.php │ │ │ │ │ └── PhpdocVarWithoutNameFixer.php │ │ │ │ ├── ReturnNotation │ │ │ │ │ ├── NoUselessReturnFixer.php │ │ │ │ │ ├── ReturnAssignmentFixer.php │ │ │ │ │ └── SimplifiedNullReturnFixer.php │ │ │ │ ├── Semicolon │ │ │ │ │ ├── MultilineWhitespaceBeforeSemicolonsFixer.php │ │ │ │ │ ├── NoEmptyStatementFixer.php │ │ │ │ │ ├── NoSinglelineWhitespaceBeforeSemicolonsFixer.php │ │ │ │ │ ├── SemicolonAfterInstructionFixer.php │ │ │ │ │ └── SpaceAfterSemicolonFixer.php │ │ │ │ ├── Strict │ │ │ │ │ ├── DeclareStrictTypesFixer.php │ │ │ │ │ ├── StrictComparisonFixer.php │ │ │ │ │ └── StrictParamFixer.php │ │ │ │ ├── StringNotation │ │ │ │ │ ├── EscapeImplicitBackslashesFixer.php │ │ │ │ │ ├── ExplicitStringVariableFixer.php │ │ │ │ │ ├── HeredocClosingMarkerFixer.php │ │ │ │ │ ├── HeredocToNowdocFixer.php │ │ │ │ │ ├── MultilineStringToHeredocFixer.php │ │ │ │ │ ├── NoBinaryStringFixer.php │ │ │ │ │ ├── NoTrailingWhitespaceInStringFixer.php │ │ │ │ │ ├── SimpleToComplexStringVariableFixer.php │ │ │ │ │ ├── SingleQuoteFixer.php │ │ │ │ │ ├── StringLengthToEmptyFixer.php │ │ │ │ │ └── StringLineEndingFixer.php │ │ │ │ ├── Whitespace │ │ │ │ │ ├── ArrayIndentationFixer.php │ │ │ │ │ ├── BlankLineBeforeStatementFixer.php │ │ │ │ │ ├── BlankLineBetweenImportGroupsFixer.php │ │ │ │ │ ├── CompactNullableTypeDeclarationFixer.php │ │ │ │ │ ├── CompactNullableTypehintFixer.php │ │ │ │ │ ├── HeredocIndentationFixer.php │ │ │ │ │ ├── IndentationTypeFixer.php │ │ │ │ │ ├── LineEndingFixer.php │ │ │ │ │ ├── MethodChainingIndentationFixer.php │ │ │ │ │ ├── NoExtraBlankLinesFixer.php │ │ │ │ │ ├── NoSpacesAroundOffsetFixer.php │ │ │ │ │ ├── NoSpacesInsideParenthesisFixer.php │ │ │ │ │ ├── NoTrailingWhitespaceFixer.php │ │ │ │ │ ├── NoWhitespaceInBlankLineFixer.php │ │ │ │ │ ├── SingleBlankLineAtEofFixer.php │ │ │ │ │ ├── SpacesInsideParenthesesFixer.php │ │ │ │ │ ├── StatementIndentationFixer.php │ │ │ │ │ ├── TypeDeclarationSpacesFixer.php │ │ │ │ │ └── TypesSpacesFixer.php │ │ │ │ └── WhitespacesAwareFixerInterface.php │ │ │ │ ├── FixerConfiguration │ │ │ │ ├── AliasedFixerOption.php │ │ │ │ ├── AliasedFixerOptionBuilder.php │ │ │ │ ├── AllowedValueSubset.php │ │ │ │ ├── DeprecatedFixerOption.php │ │ │ │ ├── DeprecatedFixerOptionInterface.php │ │ │ │ ├── FixerConfigurationResolver.php │ │ │ │ ├── FixerConfigurationResolverInterface.php │ │ │ │ ├── FixerOption.php │ │ │ │ ├── FixerOptionBuilder.php │ │ │ │ ├── FixerOptionInterface.php │ │ │ │ ├── FixerOptionSorter.php │ │ │ │ └── InvalidOptionsForEnvException.php │ │ │ │ ├── FixerDefinition │ │ │ │ ├── CodeSample.php │ │ │ │ ├── CodeSampleInterface.php │ │ │ │ ├── FileSpecificCodeSample.php │ │ │ │ ├── FileSpecificCodeSampleInterface.php │ │ │ │ ├── FixerDefinition.php │ │ │ │ ├── FixerDefinitionInterface.php │ │ │ │ ├── VersionSpecificCodeSample.php │ │ │ │ ├── VersionSpecificCodeSampleInterface.php │ │ │ │ ├── VersionSpecification.php │ │ │ │ └── VersionSpecificationInterface.php │ │ │ │ ├── FixerFactory.php │ │ │ │ ├── FixerFileProcessedEvent.php │ │ │ │ ├── FixerNameValidator.php │ │ │ │ ├── Indicator │ │ │ │ └── PhpUnitTestCaseIndicator.php │ │ │ │ ├── Linter │ │ │ │ ├── CachingLinter.php │ │ │ │ ├── Linter.php │ │ │ │ ├── LinterInterface.php │ │ │ │ ├── LintingException.php │ │ │ │ ├── LintingResultInterface.php │ │ │ │ ├── ProcessLinter.php │ │ │ │ ├── ProcessLinterProcessBuilder.php │ │ │ │ ├── ProcessLintingResult.php │ │ │ │ ├── TokenizerLinter.php │ │ │ │ ├── TokenizerLintingResult.php │ │ │ │ └── UnavailableLinterException.php │ │ │ │ ├── PharChecker.php │ │ │ │ ├── PharCheckerInterface.php │ │ │ │ ├── Preg.php │ │ │ │ ├── PregException.php │ │ │ │ ├── RuleSet │ │ │ │ ├── AbstractMigrationSetDescription.php │ │ │ │ ├── AbstractRuleSetDescription.php │ │ │ │ ├── DeprecatedRuleSetDescriptionInterface.php │ │ │ │ ├── RuleSet.php │ │ │ │ ├── RuleSetDescriptionInterface.php │ │ │ │ ├── RuleSetInterface.php │ │ │ │ ├── RuleSets.php │ │ │ │ └── Sets │ │ │ │ │ ├── DoctrineAnnotationSet.php │ │ │ │ │ ├── PERCS1x0RiskySet.php │ │ │ │ │ ├── PERCS1x0Set.php │ │ │ │ │ ├── PERCS2x0RiskySet.php │ │ │ │ │ ├── PERCS2x0Set.php │ │ │ │ │ ├── PERCSRiskySet.php │ │ │ │ │ ├── PERCSSet.php │ │ │ │ │ ├── PERRiskySet.php │ │ │ │ │ ├── PERSet.php │ │ │ │ │ ├── PHP54MigrationSet.php │ │ │ │ │ ├── PHP56MigrationRiskySet.php │ │ │ │ │ ├── PHP70MigrationRiskySet.php │ │ │ │ │ ├── PHP70MigrationSet.php │ │ │ │ │ ├── PHP71MigrationRiskySet.php │ │ │ │ │ ├── PHP71MigrationSet.php │ │ │ │ │ ├── PHP73MigrationSet.php │ │ │ │ │ ├── PHP74MigrationRiskySet.php │ │ │ │ │ ├── PHP74MigrationSet.php │ │ │ │ │ ├── PHP80MigrationRiskySet.php │ │ │ │ │ ├── PHP80MigrationSet.php │ │ │ │ │ ├── PHP81MigrationSet.php │ │ │ │ │ ├── PHP82MigrationSet.php │ │ │ │ │ ├── PHP83MigrationSet.php │ │ │ │ │ ├── PHPUnit100MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit30MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit32MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit35MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit43MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit48MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit50MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit52MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit54MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit55MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit56MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit57MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit60MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit75MigrationRiskySet.php │ │ │ │ │ ├── PHPUnit84MigrationRiskySet.php │ │ │ │ │ ├── PSR12RiskySet.php │ │ │ │ │ ├── PSR12Set.php │ │ │ │ │ ├── PSR1Set.php │ │ │ │ │ ├── PSR2Set.php │ │ │ │ │ ├── PhpCsFixerRiskySet.php │ │ │ │ │ ├── PhpCsFixerSet.php │ │ │ │ │ ├── SymfonyRiskySet.php │ │ │ │ │ └── SymfonySet.php │ │ │ │ ├── Runner │ │ │ │ ├── FileCachingLintingIterator.php │ │ │ │ ├── FileFilterIterator.php │ │ │ │ ├── FileLintingIterator.php │ │ │ │ └── Runner.php │ │ │ │ ├── StdinFileInfo.php │ │ │ │ ├── Tokenizer │ │ │ │ ├── AbstractTransformer.php │ │ │ │ ├── AbstractTypeTransformer.php │ │ │ │ ├── Analyzer │ │ │ │ │ ├── AlternativeSyntaxAnalyzer.php │ │ │ │ │ ├── Analysis │ │ │ │ │ │ ├── AbstractControlCaseStructuresAnalysis.php │ │ │ │ │ │ ├── ArgumentAnalysis.php │ │ │ │ │ │ ├── CaseAnalysis.php │ │ │ │ │ │ ├── DataProviderAnalysis.php │ │ │ │ │ │ ├── DefaultAnalysis.php │ │ │ │ │ │ ├── EnumAnalysis.php │ │ │ │ │ │ ├── MatchAnalysis.php │ │ │ │ │ │ ├── NamespaceAnalysis.php │ │ │ │ │ │ ├── NamespaceUseAnalysis.php │ │ │ │ │ │ ├── StartEndTokenAwareAnalysis.php │ │ │ │ │ │ ├── SwitchAnalysis.php │ │ │ │ │ │ └── TypeAnalysis.php │ │ │ │ │ ├── ArgumentsAnalyzer.php │ │ │ │ │ ├── AttributeAnalyzer.php │ │ │ │ │ ├── BlocksAnalyzer.php │ │ │ │ │ ├── ClassyAnalyzer.php │ │ │ │ │ ├── CommentsAnalyzer.php │ │ │ │ │ ├── ControlCaseStructuresAnalyzer.php │ │ │ │ │ ├── DataProviderAnalyzer.php │ │ │ │ │ ├── FunctionsAnalyzer.php │ │ │ │ │ ├── GotoLabelAnalyzer.php │ │ │ │ │ ├── NamespaceUsesAnalyzer.php │ │ │ │ │ ├── NamespacesAnalyzer.php │ │ │ │ │ ├── RangeAnalyzer.php │ │ │ │ │ ├── ReferenceAnalyzer.php │ │ │ │ │ ├── SwitchAnalyzer.php │ │ │ │ │ └── WhitespacesAnalyzer.php │ │ │ │ ├── CT.php │ │ │ │ ├── CodeHasher.php │ │ │ │ ├── Processor │ │ │ │ │ └── ImportProcessor.php │ │ │ │ ├── Token.php │ │ │ │ ├── Tokens.php │ │ │ │ ├── TokensAnalyzer.php │ │ │ │ ├── Transformer │ │ │ │ │ ├── ArrayTypehintTransformer.php │ │ │ │ │ ├── AttributeTransformer.php │ │ │ │ │ ├── BraceClassInstantiationTransformer.php │ │ │ │ │ ├── BraceTransformer.php │ │ │ │ │ ├── ClassConstantTransformer.php │ │ │ │ │ ├── ConstructorPromotionTransformer.php │ │ │ │ │ ├── DisjunctiveNormalFormTypeParenthesisTransformer.php │ │ │ │ │ ├── FirstClassCallableTransformer.php │ │ │ │ │ ├── ImportTransformer.php │ │ │ │ │ ├── NameQualifiedTransformer.php │ │ │ │ │ ├── NamedArgumentTransformer.php │ │ │ │ │ ├── NamespaceOperatorTransformer.php │ │ │ │ │ ├── NullableTypeTransformer.php │ │ │ │ │ ├── ReturnRefTransformer.php │ │ │ │ │ ├── SquareBraceTransformer.php │ │ │ │ │ ├── TypeAlternationTransformer.php │ │ │ │ │ ├── TypeColonTransformer.php │ │ │ │ │ ├── TypeIntersectionTransformer.php │ │ │ │ │ ├── UseTransformer.php │ │ │ │ │ └── WhitespacyCommentTransformer.php │ │ │ │ ├── TransformerInterface.php │ │ │ │ └── Transformers.php │ │ │ │ ├── ToolInfo.php │ │ │ │ ├── ToolInfoInterface.php │ │ │ │ ├── Utils.php │ │ │ │ ├── WhitespacesFixerConfig.php │ │ │ │ └── WordMatcher.php │ │ │ ├── psr │ │ │ ├── container │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── composer.json │ │ │ │ └── src │ │ │ │ │ ├── ContainerExceptionInterface.php │ │ │ │ │ ├── ContainerInterface.php │ │ │ │ │ └── NotFoundExceptionInterface.php │ │ │ ├── event-dispatcher │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── composer.json │ │ │ │ └── src │ │ │ │ │ ├── EventDispatcherInterface.php │ │ │ │ │ ├── ListenerProviderInterface.php │ │ │ │ │ └── StoppableEventInterface.php │ │ │ └── log │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── composer.json │ │ │ │ └── src │ │ │ │ ├── AbstractLogger.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── LogLevel.php │ │ │ │ ├── LoggerAwareInterface.php │ │ │ │ ├── LoggerAwareTrait.php │ │ │ │ ├── LoggerInterface.php │ │ │ │ ├── LoggerTrait.php │ │ │ │ └── NullLogger.php │ │ │ ├── sebastian │ │ │ └── diff │ │ │ │ ├── ChangeLog.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── SECURITY.md │ │ │ │ ├── composer.json │ │ │ │ └── src │ │ │ │ ├── Chunk.php │ │ │ │ ├── Diff.php │ │ │ │ ├── Differ.php │ │ │ │ ├── Exception │ │ │ │ ├── ConfigurationException.php │ │ │ │ ├── Exception.php │ │ │ │ └── InvalidArgumentException.php │ │ │ │ ├── Line.php │ │ │ │ ├── LongestCommonSubsequenceCalculator.php │ │ │ │ ├── MemoryEfficientLongestCommonSubsequenceCalculator.php │ │ │ │ ├── Output │ │ │ │ ├── AbstractChunkOutputBuilder.php │ │ │ │ ├── DiffOnlyOutputBuilder.php │ │ │ │ ├── DiffOutputBuilderInterface.php │ │ │ │ ├── StrictUnifiedDiffOutputBuilder.php │ │ │ │ └── UnifiedDiffOutputBuilder.php │ │ │ │ ├── Parser.php │ │ │ │ └── TimeEfficientLongestCommonSubsequenceCalculator.php │ │ │ └── symfony │ │ │ ├── console │ │ │ ├── Application.php │ │ │ ├── Attribute │ │ │ │ └── AsCommand.php │ │ │ ├── CI │ │ │ │ └── GithubActionReporter.php │ │ │ ├── Color.php │ │ │ ├── Command │ │ │ │ ├── Command.php │ │ │ │ ├── CompleteCommand.php │ │ │ │ ├── DumpCompletionCommand.php │ │ │ │ ├── HelpCommand.php │ │ │ │ ├── LazyCommand.php │ │ │ │ ├── ListCommand.php │ │ │ │ ├── LockableTrait.php │ │ │ │ ├── SignalableCommandInterface.php │ │ │ │ └── TraceableCommand.php │ │ │ ├── CommandLoader │ │ │ │ ├── CommandLoaderInterface.php │ │ │ │ ├── ContainerCommandLoader.php │ │ │ │ └── FactoryCommandLoader.php │ │ │ ├── Completion │ │ │ │ ├── CompletionInput.php │ │ │ │ ├── CompletionSuggestions.php │ │ │ │ ├── Output │ │ │ │ │ ├── BashCompletionOutput.php │ │ │ │ │ ├── CompletionOutputInterface.php │ │ │ │ │ ├── FishCompletionOutput.php │ │ │ │ │ └── ZshCompletionOutput.php │ │ │ │ └── Suggestion.php │ │ │ ├── ConsoleEvents.php │ │ │ ├── Cursor.php │ │ │ ├── DataCollector │ │ │ │ └── CommandDataCollector.php │ │ │ ├── Debug │ │ │ │ └── CliRequest.php │ │ │ ├── DependencyInjection │ │ │ │ └── AddConsoleCommandPass.php │ │ │ ├── Descriptor │ │ │ │ ├── ApplicationDescription.php │ │ │ │ ├── Descriptor.php │ │ │ │ ├── DescriptorInterface.php │ │ │ │ ├── JsonDescriptor.php │ │ │ │ ├── MarkdownDescriptor.php │ │ │ │ ├── ReStructuredTextDescriptor.php │ │ │ │ ├── TextDescriptor.php │ │ │ │ └── XmlDescriptor.php │ │ │ ├── Event │ │ │ │ ├── ConsoleCommandEvent.php │ │ │ │ ├── ConsoleErrorEvent.php │ │ │ │ ├── ConsoleEvent.php │ │ │ │ ├── ConsoleSignalEvent.php │ │ │ │ └── ConsoleTerminateEvent.php │ │ │ ├── EventListener │ │ │ │ └── ErrorListener.php │ │ │ ├── Exception │ │ │ │ ├── CommandNotFoundException.php │ │ │ │ ├── ExceptionInterface.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── InvalidOptionException.php │ │ │ │ ├── LogicException.php │ │ │ │ ├── MissingInputException.php │ │ │ │ ├── NamespaceNotFoundException.php │ │ │ │ ├── RunCommandFailedException.php │ │ │ │ └── RuntimeException.php │ │ │ ├── Formatter │ │ │ │ ├── NullOutputFormatter.php │ │ │ │ ├── NullOutputFormatterStyle.php │ │ │ │ ├── OutputFormatter.php │ │ │ │ ├── OutputFormatterInterface.php │ │ │ │ ├── OutputFormatterStyle.php │ │ │ │ ├── OutputFormatterStyleInterface.php │ │ │ │ ├── OutputFormatterStyleStack.php │ │ │ │ └── WrappableOutputFormatterInterface.php │ │ │ ├── Helper │ │ │ │ ├── DebugFormatterHelper.php │ │ │ │ ├── DescriptorHelper.php │ │ │ │ ├── Dumper.php │ │ │ │ ├── FormatterHelper.php │ │ │ │ ├── Helper.php │ │ │ │ ├── HelperInterface.php │ │ │ │ ├── HelperSet.php │ │ │ │ ├── InputAwareHelper.php │ │ │ │ ├── OutputWrapper.php │ │ │ │ ├── ProcessHelper.php │ │ │ │ ├── ProgressBar.php │ │ │ │ ├── ProgressIndicator.php │ │ │ │ ├── QuestionHelper.php │ │ │ │ ├── SymfonyQuestionHelper.php │ │ │ │ ├── Table.php │ │ │ │ ├── TableCell.php │ │ │ │ ├── TableCellStyle.php │ │ │ │ ├── TableRows.php │ │ │ │ ├── TableSeparator.php │ │ │ │ └── TableStyle.php │ │ │ ├── Input │ │ │ │ ├── ArgvInput.php │ │ │ │ ├── ArrayInput.php │ │ │ │ ├── Input.php │ │ │ │ ├── InputArgument.php │ │ │ │ ├── InputAwareInterface.php │ │ │ │ ├── InputDefinition.php │ │ │ │ ├── InputInterface.php │ │ │ │ ├── InputOption.php │ │ │ │ ├── StreamableInputInterface.php │ │ │ │ └── StringInput.php │ │ │ ├── LICENSE │ │ │ ├── Logger │ │ │ │ └── ConsoleLogger.php │ │ │ ├── Messenger │ │ │ │ ├── RunCommandContext.php │ │ │ │ ├── RunCommandMessage.php │ │ │ │ └── RunCommandMessageHandler.php │ │ │ ├── Output │ │ │ │ ├── AnsiColorMode.php │ │ │ │ ├── BufferedOutput.php │ │ │ │ ├── ConsoleOutput.php │ │ │ │ ├── ConsoleOutputInterface.php │ │ │ │ ├── ConsoleSectionOutput.php │ │ │ │ ├── NullOutput.php │ │ │ │ ├── Output.php │ │ │ │ ├── OutputInterface.php │ │ │ │ ├── StreamOutput.php │ │ │ │ └── TrimmedBufferOutput.php │ │ │ ├── Question │ │ │ │ ├── ChoiceQuestion.php │ │ │ │ ├── ConfirmationQuestion.php │ │ │ │ └── Question.php │ │ │ ├── README.md │ │ │ ├── Resources │ │ │ │ ├── bin │ │ │ │ │ └── hiddeninput.exe │ │ │ │ ├── completion.bash │ │ │ │ ├── completion.fish │ │ │ │ └── completion.zsh │ │ │ ├── SignalRegistry │ │ │ │ ├── SignalMap.php │ │ │ │ └── SignalRegistry.php │ │ │ ├── SingleCommandApplication.php │ │ │ ├── Style │ │ │ │ ├── OutputStyle.php │ │ │ │ ├── StyleInterface.php │ │ │ │ └── SymfonyStyle.php │ │ │ ├── Terminal.php │ │ │ ├── Tester │ │ │ │ ├── ApplicationTester.php │ │ │ │ ├── CommandCompletionTester.php │ │ │ │ ├── CommandTester.php │ │ │ │ ├── Constraint │ │ │ │ │ └── CommandIsSuccessful.php │ │ │ │ └── TesterTrait.php │ │ │ └── composer.json │ │ │ ├── deprecation-contracts │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── composer.json │ │ │ └── function.php │ │ │ ├── event-dispatcher-contracts │ │ │ ├── Event.php │ │ │ ├── EventDispatcherInterface.php │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── composer.json │ │ │ ├── event-dispatcher │ │ │ ├── Attribute │ │ │ │ └── AsEventListener.php │ │ │ ├── Debug │ │ │ │ ├── TraceableEventDispatcher.php │ │ │ │ └── WrappedListener.php │ │ │ ├── DependencyInjection │ │ │ │ ├── AddEventAliasesPass.php │ │ │ │ └── RegisterListenersPass.php │ │ │ ├── EventDispatcher.php │ │ │ ├── EventDispatcherInterface.php │ │ │ ├── EventSubscriberInterface.php │ │ │ ├── GenericEvent.php │ │ │ ├── ImmutableEventDispatcher.php │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── composer.json │ │ │ ├── filesystem │ │ │ ├── Exception │ │ │ │ ├── ExceptionInterface.php │ │ │ │ ├── FileNotFoundException.php │ │ │ │ ├── IOException.php │ │ │ │ ├── IOExceptionInterface.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ └── RuntimeException.php │ │ │ ├── Filesystem.php │ │ │ ├── LICENSE │ │ │ ├── Path.php │ │ │ ├── README.md │ │ │ └── composer.json │ │ │ ├── finder │ │ │ ├── Comparator │ │ │ │ ├── Comparator.php │ │ │ │ ├── DateComparator.php │ │ │ │ └── NumberComparator.php │ │ │ ├── Exception │ │ │ │ ├── AccessDeniedException.php │ │ │ │ └── DirectoryNotFoundException.php │ │ │ ├── Finder.php │ │ │ ├── Gitignore.php │ │ │ ├── Glob.php │ │ │ ├── Iterator │ │ │ │ ├── CustomFilterIterator.php │ │ │ │ ├── DateRangeFilterIterator.php │ │ │ │ ├── DepthRangeFilterIterator.php │ │ │ │ ├── ExcludeDirectoryFilterIterator.php │ │ │ │ ├── FileTypeFilterIterator.php │ │ │ │ ├── FilecontentFilterIterator.php │ │ │ │ ├── FilenameFilterIterator.php │ │ │ │ ├── LazyIterator.php │ │ │ │ ├── MultiplePcreFilterIterator.php │ │ │ │ ├── PathFilterIterator.php │ │ │ │ ├── RecursiveDirectoryIterator.php │ │ │ │ ├── SizeRangeFilterIterator.php │ │ │ │ ├── SortableIterator.php │ │ │ │ └── VcsIgnoredFilterIterator.php │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── SplFileInfo.php │ │ │ └── composer.json │ │ │ ├── options-resolver │ │ │ ├── Debug │ │ │ │ └── OptionsResolverIntrospector.php │ │ │ ├── Exception │ │ │ │ ├── AccessException.php │ │ │ │ ├── ExceptionInterface.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── InvalidOptionsException.php │ │ │ │ ├── MissingOptionsException.php │ │ │ │ ├── NoConfigurationException.php │ │ │ │ ├── NoSuchOptionException.php │ │ │ │ ├── OptionDefinitionException.php │ │ │ │ └── UndefinedOptionsException.php │ │ │ ├── LICENSE │ │ │ ├── OptionConfigurator.php │ │ │ ├── Options.php │ │ │ ├── OptionsResolver.php │ │ │ ├── README.md │ │ │ └── composer.json │ │ │ ├── polyfill-ctype │ │ │ ├── Ctype.php │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bootstrap.php │ │ │ ├── bootstrap80.php │ │ │ └── composer.json │ │ │ ├── polyfill-intl-grapheme │ │ │ ├── Grapheme.php │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── bootstrap.php │ │ │ ├── bootstrap80.php │ │ │ └── composer.json │ │ │ ├── polyfill-intl-normalizer │ │ │ ├── LICENSE │ │ │ ├── Normalizer.php │ │ │ ├── README.md │ │ │ ├── Resources │ │ │ │ ├── stubs │ │ │ │ │ └── Normalizer.php │ │ │ │ └── unidata │ │ │ │ │ ├── canonicalComposition.php │ │ │ │ │ ├── canonicalDecomposition.php │ │ │ │ │ ├── combiningClass.php │ │ │ │ │ └── compatibilityDecomposition.php │ │ │ ├── bootstrap.php │ │ │ ├── bootstrap80.php │ │ │ └── composer.json │ │ │ ├── polyfill-mbstring │ │ │ ├── LICENSE │ │ │ ├── Mbstring.php │ │ │ ├── README.md │ │ │ ├── Resources │ │ │ │ └── unidata │ │ │ │ │ ├── caseFolding.php │ │ │ │ │ ├── lowerCase.php │ │ │ │ │ ├── titleCaseRegexp.php │ │ │ │ │ └── upperCase.php │ │ │ ├── bootstrap.php │ │ │ ├── bootstrap80.php │ │ │ └── composer.json │ │ │ ├── polyfill-php80 │ │ │ ├── LICENSE │ │ │ ├── Php80.php │ │ │ ├── PhpToken.php │ │ │ ├── README.md │ │ │ ├── Resources │ │ │ │ └── stubs │ │ │ │ │ ├── Attribute.php │ │ │ │ │ ├── PhpToken.php │ │ │ │ │ ├── Stringable.php │ │ │ │ │ ├── UnhandledMatchError.php │ │ │ │ │ └── ValueError.php │ │ │ ├── bootstrap.php │ │ │ └── composer.json │ │ │ ├── polyfill-php81 │ │ │ ├── LICENSE │ │ │ ├── Php81.php │ │ │ ├── README.md │ │ │ ├── Resources │ │ │ │ └── stubs │ │ │ │ │ ├── CURLStringFile.php │ │ │ │ │ └── ReturnTypeWillChange.php │ │ │ ├── bootstrap.php │ │ │ └── composer.json │ │ │ ├── process │ │ │ ├── Exception │ │ │ │ ├── ExceptionInterface.php │ │ │ │ ├── InvalidArgumentException.php │ │ │ │ ├── LogicException.php │ │ │ │ ├── ProcessFailedException.php │ │ │ │ ├── ProcessSignaledException.php │ │ │ │ ├── ProcessTimedOutException.php │ │ │ │ ├── RunProcessFailedException.php │ │ │ │ └── RuntimeException.php │ │ │ ├── ExecutableFinder.php │ │ │ ├── InputStream.php │ │ │ ├── LICENSE │ │ │ ├── Messenger │ │ │ │ ├── RunProcessContext.php │ │ │ │ ├── RunProcessMessage.php │ │ │ │ └── RunProcessMessageHandler.php │ │ │ ├── PhpExecutableFinder.php │ │ │ ├── PhpProcess.php │ │ │ ├── PhpSubprocess.php │ │ │ ├── Pipes │ │ │ │ ├── AbstractPipes.php │ │ │ │ ├── PipesInterface.php │ │ │ │ ├── UnixPipes.php │ │ │ │ └── WindowsPipes.php │ │ │ ├── Process.php │ │ │ ├── ProcessUtils.php │ │ │ ├── README.md │ │ │ └── composer.json │ │ │ ├── service-contracts │ │ │ ├── Attribute │ │ │ │ ├── Required.php │ │ │ │ └── SubscribedService.php │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── ResetInterface.php │ │ │ ├── ServiceLocatorTrait.php │ │ │ ├── ServiceProviderInterface.php │ │ │ ├── ServiceSubscriberInterface.php │ │ │ ├── ServiceSubscriberTrait.php │ │ │ ├── Test │ │ │ │ ├── ServiceLocatorTest.php │ │ │ │ └── ServiceLocatorTestCase.php │ │ │ └── composer.json │ │ │ ├── stopwatch │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── Section.php │ │ │ ├── Stopwatch.php │ │ │ ├── StopwatchEvent.php │ │ │ ├── StopwatchPeriod.php │ │ │ └── composer.json │ │ │ └── string │ │ │ ├── AbstractString.php │ │ │ ├── AbstractUnicodeString.php │ │ │ ├── ByteString.php │ │ │ ├── CodePointString.php │ │ │ ├── Exception │ │ │ ├── ExceptionInterface.php │ │ │ ├── InvalidArgumentException.php │ │ │ └── RuntimeException.php │ │ │ ├── Inflector │ │ │ ├── EnglishInflector.php │ │ │ ├── FrenchInflector.php │ │ │ └── InflectorInterface.php │ │ │ ├── LICENSE │ │ │ ├── LazyString.php │ │ │ ├── README.md │ │ │ ├── Resources │ │ │ ├── data │ │ │ │ ├── wcswidth_table_wide.php │ │ │ │ └── wcswidth_table_zero.php │ │ │ └── functions.php │ │ │ ├── Slugger │ │ │ ├── AsciiSlugger.php │ │ │ └── SluggerInterface.php │ │ │ ├── UnicodeString.php │ │ │ └── composer.json │ │ └── vite.config.js ├── Abrarvan │ └── P1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── AbrArvan.postman_collection.json │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── app │ │ ├── Actions │ │ │ ├── GiftCode │ │ │ │ └── CreateAction.php │ │ │ ├── Redis │ │ │ │ └── SubscribeAction.php │ │ │ ├── Transaction │ │ │ │ └── GetAllAction.php │ │ │ └── Wallet │ │ │ │ ├── BalanceAction.php │ │ │ │ └── ChargeAction.php │ │ ├── Console │ │ │ ├── Commands │ │ │ │ └── RedisSubscribeCommand.php │ │ │ └── Kernel.php │ │ ├── Enums │ │ │ └── TransactionStatusEnum.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Controller.php │ │ │ │ ├── GiftCodeController.php │ │ │ │ ├── TransactionController.php │ │ │ │ ├── UserController.php │ │ │ │ └── WalletController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── AuthMiddleware.php │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── LotteryMiddleware.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ ├── Requests │ │ │ │ ├── AddGiftCodeRequest.php │ │ │ │ └── GiftCodeRequest.php │ │ │ └── Resources │ │ │ │ ├── GiftCodeResource.php │ │ │ │ ├── TransactionResource.php │ │ │ │ ├── UserResource.php │ │ │ │ └── WalletResource.php │ │ ├── Jobs │ │ │ ├── Transaction │ │ │ │ └── AddTransactionJob.php │ │ │ └── Wallet │ │ │ │ └── ChargeWalletJob.php │ │ ├── Models │ │ │ ├── GiftCode.php │ │ │ ├── Transaction.php │ │ │ ├── User.php │ │ │ └── Wallet.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ ├── Repositories │ │ │ ├── GiftCodeRepository.php │ │ │ ├── TransactionRepository.php │ │ │ ├── UserRepository.php │ │ │ └── WalletRepository.php │ │ └── Services │ │ │ ├── GiftCodeService.php │ │ │ ├── TransactionService.php │ │ │ ├── UserService.php │ │ │ └── WalletService.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2023_07_12_205218_create_wallets_table.php │ │ │ ├── 2023_07_12_205239_create_transactions_table.php │ │ │ ├── 2023_07_12_205330_create_gift_codes_table.php │ │ │ └── 2023_07_14_235043_create_jobs_table.php │ │ └── seeders │ │ │ ├── DatabaseSeeder.php │ │ │ ├── GiftCodeSeeder.php │ │ │ ├── UserSeeder.php │ │ │ └── WalletSeeder.php │ │ ├── docker-compose.yml │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ │ ├── routes │ │ ├── api.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ └── ExampleTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ExampleTest.php │ │ └── vite.config.js ├── Alibaba │ ├── P1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .rnd │ │ ├── Dockerfile │ │ ├── Modules │ │ │ ├── Acl │ │ │ │ ├── App │ │ │ │ │ ├── Http │ │ │ │ │ │ └── Controllers │ │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ │ └── AclController.php │ │ │ │ │ ├── Models │ │ │ │ │ │ ├── Permission.php │ │ │ │ │ │ └── Role.php │ │ │ │ │ └── Providers │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ ├── AclServiceProvider.php │ │ │ │ │ │ └── RouteServiceProvider.php │ │ │ │ ├── Database │ │ │ │ │ ├── Seeders │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ └── AclDatabaseSeeder.php │ │ │ │ │ └── migrations │ │ │ │ │ │ ├── 2024_02_17_102650_create_roles_table.php │ │ │ │ │ │ ├── 2024_02_17_102714_create_permissions_table.php │ │ │ │ │ │ ├── 2024_02_17_102744_create_permissions_user_table.php │ │ │ │ │ │ ├── 2024_02_17_102804_create_permissions_role_table.php │ │ │ │ │ │ └── 2024_02_17_102830_create_role_user_table.php │ │ │ │ ├── composer.json │ │ │ │ ├── config │ │ │ │ │ ├── .gitkeep │ │ │ │ │ └── config.php │ │ │ │ ├── module.json │ │ │ │ ├── package.json │ │ │ │ ├── resources │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── js │ │ │ │ │ │ │ └── app.js │ │ │ │ │ │ └── sass │ │ │ │ │ │ │ └── app.scss │ │ │ │ │ └── views │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ ├── index.blade.php │ │ │ │ │ │ └── layouts │ │ │ │ │ │ └── master.blade.php │ │ │ │ ├── routes │ │ │ │ │ ├── .gitkeep │ │ │ │ │ ├── api.php │ │ │ │ │ └── web.php │ │ │ │ └── vite.config.js │ │ │ └── Article │ │ │ │ ├── App │ │ │ │ ├── Http │ │ │ │ │ ├── Controllers │ │ │ │ │ │ ├── .gitkeep │ │ │ │ │ │ ├── Article │ │ │ │ │ │ │ └── ArticleController.php │ │ │ │ │ │ └── ArticleController.php │ │ │ │ │ └── Requests │ │ │ │ │ │ └── Article │ │ │ │ │ │ ├── ChangeStatusArticleRequest.php │ │ │ │ │ │ ├── CreateArticleRequest.php │ │ │ │ │ │ ├── DeleteArticleRequest.php │ │ │ │ │ │ ├── FindByIdRequest.php │ │ │ │ │ │ ├── GetArticleByUserPaginateRequest.php │ │ │ │ │ │ ├── GetArticlePaginateRequest.php │ │ │ │ │ │ └── UpdateArticleRequest.php │ │ │ │ ├── Models │ │ │ │ │ └── Article.php │ │ │ │ ├── Providers │ │ │ │ │ ├── .gitkeep │ │ │ │ │ ├── ArticleServiceProvider.php │ │ │ │ │ └── RouteServiceProvider.php │ │ │ │ ├── Repositories │ │ │ │ │ └── Article │ │ │ │ │ │ ├── ArticleRepository.php │ │ │ │ │ │ └── ArticleRepositoryInterface.php │ │ │ │ └── Services │ │ │ │ │ └── Article │ │ │ │ │ ├── ArticleService.php │ │ │ │ │ └── ArticleServiceInterface.php │ │ │ │ ├── Database │ │ │ │ ├── Factories │ │ │ │ │ └── ArticleFactory.php │ │ │ │ ├── Seeders │ │ │ │ │ ├── .gitkeep │ │ │ │ │ ├── ArticleDatabaseSeeder.php │ │ │ │ │ └── ArticleSeeder.php │ │ │ │ └── migrations │ │ │ │ │ └── 2024_03_06_084210_create_articles_table.php │ │ │ │ ├── composer.json │ │ │ │ ├── config │ │ │ │ ├── .gitkeep │ │ │ │ └── config.php │ │ │ │ ├── module.json │ │ │ │ ├── package.json │ │ │ │ ├── resources │ │ │ │ ├── assets │ │ │ │ │ ├── js │ │ │ │ │ │ └── app.js │ │ │ │ │ └── sass │ │ │ │ │ │ └── app.scss │ │ │ │ └── views │ │ │ │ │ ├── .gitkeep │ │ │ │ │ ├── index.blade.php │ │ │ │ │ └── layouts │ │ │ │ │ └── master.blade.php │ │ │ │ ├── routes │ │ │ │ ├── .gitkeep │ │ │ │ ├── api.php │ │ │ │ └── web.php │ │ │ │ └── vite.config.js │ │ ├── README.md │ │ ├── app │ │ │ ├── Console │ │ │ │ ├── Commands │ │ │ │ │ ├── InstallCommand.php │ │ │ │ │ └── RefreshDBCommand.php │ │ │ │ └── Kernel.php │ │ │ ├── Events │ │ │ │ └── EmailEvent.php │ │ │ ├── Exceptions │ │ │ │ └── Handler.php │ │ │ ├── Helpers │ │ │ │ └── DateHelper.php │ │ │ ├── Http │ │ │ │ ├── Controllers │ │ │ │ │ ├── Auth │ │ │ │ │ │ ├── AuthController.php │ │ │ │ │ │ ├── LoginController.php │ │ │ │ │ │ └── RegisterAction.php │ │ │ │ │ ├── Controller.php │ │ │ │ │ └── UserController.php │ │ │ │ ├── Kernel.php │ │ │ │ ├── Middleware │ │ │ │ │ ├── Authenticate.php │ │ │ │ │ ├── EncryptCookies.php │ │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ │ ├── TrimStrings.php │ │ │ │ │ ├── TrustHosts.php │ │ │ │ │ ├── TrustProxies.php │ │ │ │ │ ├── ValidateSignature.php │ │ │ │ │ └── VerifyCsrfToken.php │ │ │ │ └── Requests │ │ │ │ │ └── User │ │ │ │ │ └── CreateUserRequest.php │ │ │ ├── Listeners │ │ │ │ └── EmailListener.php │ │ │ ├── Mail │ │ │ │ └── VerificationCodeEmail.php │ │ │ ├── Models │ │ │ │ └── User.php │ │ │ ├── Policies │ │ │ │ └── UserPolicy.php │ │ │ ├── Providers │ │ │ │ ├── AppServiceProvider.php │ │ │ │ ├── AuthServiceProvider.php │ │ │ │ ├── BroadcastServiceProvider.php │ │ │ │ ├── EventServiceProvider.php │ │ │ │ └── RouteServiceProvider.php │ │ │ ├── Repositories │ │ │ │ └── User │ │ │ │ │ ├── UserRepository.php │ │ │ │ │ └── UserRepositoryInterface.php │ │ │ └── Services │ │ │ │ ├── Auth │ │ │ │ └── AuthService.php │ │ │ │ └── User │ │ │ │ ├── UserService.php │ │ │ │ └── UserServiceInterface.php │ │ ├── artisan │ │ ├── bootstrap │ │ │ ├── app.php │ │ │ └── cache │ │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ │ ├── app.php │ │ │ ├── auth.php │ │ │ ├── broadcasting.php │ │ │ ├── cache.php │ │ │ ├── cors.php │ │ │ ├── database.php │ │ │ ├── filesystems.php │ │ │ ├── hashing.php │ │ │ ├── logging.php │ │ │ ├── mail.php │ │ │ ├── passport.php │ │ │ ├── queue.php │ │ │ ├── sanctum.php │ │ │ ├── services.php │ │ │ ├── session.php │ │ │ └── view.php │ │ ├── database │ │ │ ├── .gitignore │ │ │ ├── factories │ │ │ │ └── UserFactory.php │ │ │ ├── migrations │ │ │ │ ├── 2016_06_01_000001_create_oauth_auth_codes_table.php │ │ │ │ ├── 2016_06_01_000002_create_oauth_access_tokens_table.php │ │ │ │ ├── 2016_06_01_000003_create_oauth_refresh_tokens_table.php │ │ │ │ ├── 2016_06_01_000004_create_oauth_clients_table.php │ │ │ │ ├── 2016_06_01_000005_create_oauth_personal_access_clients_table.php │ │ │ │ └── 2023_09_25_132133_create_users_table.php │ │ │ └── seeders │ │ │ │ ├── DatabaseSeeder.php │ │ │ │ └── UserSeeder.php │ │ ├── docker-compose.yml │ │ ├── modules_statuses.json │ │ ├── nginx.conf │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ │ ├── .htaccess │ │ │ ├── favicon.ico │ │ │ ├── index.php │ │ │ └── robots.txt │ │ ├── resources │ │ │ ├── css │ │ │ │ └── app.css │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ └── bootstrap.js │ │ │ └── views │ │ │ │ ├── emails │ │ │ │ └── verification.blade.php │ │ │ │ └── welcome.blade.php │ │ ├── routes │ │ │ ├── api.php │ │ │ ├── channels.php │ │ │ ├── console.php │ │ │ └── web.php │ │ ├── storage │ │ │ ├── app │ │ │ │ ├── .gitignore │ │ │ │ └── public │ │ │ │ │ └── .gitignore │ │ │ ├── framework │ │ │ │ ├── .gitignore │ │ │ │ ├── cache │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitignore │ │ │ │ ├── sessions │ │ │ │ │ └── .gitignore │ │ │ │ ├── testing │ │ │ │ │ └── .gitignore │ │ │ │ └── views │ │ │ │ │ └── .gitignore │ │ │ └── logs │ │ │ │ └── .gitignore │ │ ├── tests │ │ │ ├── CreatesApplication.php │ │ │ ├── Feature │ │ │ │ └── ExampleTest.php │ │ │ ├── TestCase.php │ │ │ └── Unit │ │ │ │ └── Article │ │ │ │ └── ArticleTest.php │ │ ├── vite.config.js │ │ └── wait-for-it.sh │ └── P2 │ │ ├── .editorconfig │ │ ├── .env │ │ ├── .env.example │ │ ├── README.md │ │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Article │ │ │ │ │ └── ArticleController.php │ │ │ │ ├── Auth │ │ │ │ │ ├── AuthenticatedSessionController.php │ │ │ │ │ ├── ConfirmablePasswordController.php │ │ │ │ │ ├── EmailVerificationNotificationController.php │ │ │ │ │ ├── EmailVerificationPromptController.php │ │ │ │ │ ├── NewPasswordController.php │ │ │ │ │ ├── PasswordController.php │ │ │ │ │ ├── PasswordResetLinkController.php │ │ │ │ │ ├── RegisteredUserController.php │ │ │ │ │ └── VerifyEmailController.php │ │ │ │ ├── Category │ │ │ │ │ └── CategoryController.php │ │ │ │ ├── Controller.php │ │ │ │ ├── ProfileController.php │ │ │ │ └── Tag │ │ │ │ │ └── TagController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ └── Requests │ │ │ │ ├── Article │ │ │ │ ├── StoreArticleRequest.php │ │ │ │ └── UpdateArticleRequest.php │ │ │ │ ├── Auth │ │ │ │ └── LoginRequest.php │ │ │ │ └── ProfileUpdateRequest.php │ │ ├── Models │ │ │ ├── Article.php │ │ │ ├── Category.php │ │ │ ├── Tag.php │ │ │ └── User.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ └── View │ │ │ └── Components │ │ │ ├── AppLayout.php │ │ │ └── GuestLayout.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── CategoryFactory.php │ │ │ ├── TagFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ ├── 2023_08_24_143237_create_articles_table.php │ │ │ ├── 2023_08_24_143249_create_categories_table.php │ │ │ ├── 2023_08_24_143258_create_tags_table.php │ │ │ └── 2023_08_24_143754_create_article_tag_table.php │ │ └── seeders │ │ │ ├── ArticleTableSeeder.php │ │ │ ├── CategoryTableSeeder.php │ │ │ ├── DatabaseSeeder.php │ │ │ └── TagTableSeeder.php │ │ ├── docker-compose.yaml │ │ ├── docker │ │ ├── nginx │ │ │ ├── Dockerfile │ │ │ ├── entrypoint.sh │ │ │ ├── fpm-template.conf │ │ │ └── nginx.conf │ │ └── php │ │ │ ├── Dockerfile │ │ │ └── laravel.ini │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── postcss.config.js │ │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── hot │ │ ├── index.php │ │ ├── my_custom_symlink_1 │ │ └── robots.txt │ │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ ├── article.blade.php │ │ │ ├── articles │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── index.blade.php │ │ │ └── show.blade.php │ │ │ ├── auth │ │ │ ├── confirm-password.blade.php │ │ │ ├── forgot-password.blade.php │ │ │ ├── login.blade.php │ │ │ ├── register.blade.php │ │ │ ├── reset-password.blade.php │ │ │ └── verify-email.blade.php │ │ │ ├── categories │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── index.blade.php │ │ │ └── show.blade.php │ │ │ ├── category.blade.php │ │ │ ├── components │ │ │ ├── application-logo.blade.php │ │ │ ├── auth-session-status.blade.php │ │ │ ├── danger-button.blade.php │ │ │ ├── dropdown-link.blade.php │ │ │ ├── dropdown.blade.php │ │ │ ├── input-error.blade.php │ │ │ ├── input-label.blade.php │ │ │ ├── modal.blade.php │ │ │ ├── nav-link.blade.php │ │ │ ├── primary-button.blade.php │ │ │ ├── responsive-nav-link.blade.php │ │ │ ├── secondary-button.blade.php │ │ │ └── text-input.blade.php │ │ │ ├── dashboard.blade.php │ │ │ ├── home.blade.php │ │ │ ├── layout.blade.php │ │ │ ├── layouts │ │ │ ├── app.blade.php │ │ │ ├── guest.blade.php │ │ │ └── navigation.blade.php │ │ │ ├── profile │ │ │ ├── edit.blade.php │ │ │ └── partials │ │ │ │ ├── delete-user-form.blade.php │ │ │ │ ├── update-password-form.blade.php │ │ │ │ └── update-profile-information-form.blade.php │ │ │ ├── tag.blade.php │ │ │ ├── tags │ │ │ ├── create.blade.php │ │ │ ├── edit.blade.php │ │ │ ├── index.blade.php │ │ │ └── show.blade.php │ │ │ ├── vendor │ │ │ ├── list.blade.php │ │ │ └── sidebar.blade.php │ │ │ └── welcome.blade.php │ │ ├── routes │ │ ├── api.php │ │ ├── auth.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ │ ├── storage │ │ ├── app │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ │ ├── tailwind.config.js │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ ├── Auth │ │ │ │ ├── AuthenticationTest.php │ │ │ │ ├── EmailVerificationTest.php │ │ │ │ ├── PasswordConfirmationTest.php │ │ │ │ ├── PasswordResetTest.php │ │ │ │ ├── PasswordUpdateTest.php │ │ │ │ └── RegistrationTest.php │ │ │ ├── ExampleTest.php │ │ │ └── ProfileTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ExampleTest.php │ │ └── vite.config.js ├── Digikala │ └── P1 │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── dockerfiles │ │ ├── composer.dockerfile │ │ ├── nginx.dockerfile │ │ └── php.dockerfile │ │ ├── env │ │ └── mysql.env │ │ ├── nginx │ │ └── nginx.conf │ │ └── src │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .styleci.yml │ │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Auth │ │ │ │ │ ├── LoginController.php │ │ │ │ │ └── RegisterController.php │ │ │ │ ├── BasketController.php │ │ │ │ ├── Controller.php │ │ │ │ ├── ProductController.php │ │ │ │ ├── ProductReviewController.php │ │ │ │ ├── ProviderController.php │ │ │ │ └── ReviewController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── ProductIsReviewable.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ ├── Requests │ │ │ │ ├── BasketRequest.php │ │ │ │ ├── LoginRequest.php │ │ │ │ ├── ProductRequest.php │ │ │ │ ├── ProductReviewRequest.php │ │ │ │ ├── ProviderRequest.php │ │ │ │ ├── RegisterRequest.php │ │ │ │ └── ReviewRequest.php │ │ │ └── Resources │ │ │ │ ├── BasketCollection.php │ │ │ │ ├── BasketResource.php │ │ │ │ ├── ProductCollection.php │ │ │ │ ├── ProductResource.php │ │ │ │ ├── ProductReviewCollection.php │ │ │ │ ├── ProductReviewResource.php │ │ │ │ ├── ProviderCollection.php │ │ │ │ ├── ProviderResource.php │ │ │ │ ├── ReviewCollection.php │ │ │ │ ├── ReviewResource.php │ │ │ │ └── UserResource.php │ │ ├── Models │ │ │ ├── Basket.php │ │ │ ├── Product.php │ │ │ ├── ProductReview.php │ │ │ ├── Provider.php │ │ │ ├── Review.php │ │ │ └── User.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ ├── ResponseMacroServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ ├── Repositories │ │ │ ├── BasketRepository.php │ │ │ ├── ProductRepository.php │ │ │ ├── ProductReviewRepository.php │ │ │ ├── ProviderRepository.php │ │ │ ├── ReviewRepository.php │ │ │ └── UserRepository.php │ │ └── Services │ │ │ ├── BasketService.php │ │ │ ├── ProductReviewService.php │ │ │ ├── ProductService.php │ │ │ ├── ProviderService.php │ │ │ ├── ReviewService.php │ │ │ └── UserService.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── laravel-erd.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── BasketFactory.php │ │ │ ├── ProductFactory.php │ │ │ ├── ProductReviewFactory.php │ │ │ ├── ProviderFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_resets_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ ├── 2022_06_04_203833_create_providers_table.php │ │ │ ├── 2022_06_05_100219_create_products_table.php │ │ │ ├── 2022_06_05_121956_create_product_reviews_table.php │ │ │ ├── 2022_06_05_152511_create_reviews_table.php │ │ │ └── 2022_06_06_001036_create_baskets_table.php │ │ └── seeders │ │ │ ├── BasketSeeder.php │ │ │ ├── DatabaseSeeder.php │ │ │ ├── ProductReviewSeeder.php │ │ │ ├── ProductSeeder.php │ │ │ ├── ProviderSeeder.php │ │ │ └── UserSeeder.php │ │ ├── docs │ │ └── erd │ │ │ └── index.html │ │ ├── lang │ │ ├── en │ │ │ ├── auth.php │ │ │ ├── pagination.php │ │ │ ├── passwords.php │ │ │ └── validation.php │ │ └── fa │ │ │ ├── messages.php │ │ │ └── validation.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ │ ├── resources │ │ └── views │ │ │ └── vendor │ │ │ └── erd │ │ │ └── index.blade.php │ │ ├── routes │ │ ├── api.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ └── ExampleTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ExampleTest.php │ │ └── webpack.mix.js ├── Ehna │ ├── Ehna_logo.png │ └── P1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .styleci.yml │ │ ├── README.md │ │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── AuthController.php │ │ │ │ ├── Controller.php │ │ │ │ ├── PostController.php │ │ │ │ └── RegisterController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ └── Requests │ │ │ │ ├── LoginRequest.php │ │ │ │ ├── RegisterRequest.php │ │ │ │ ├── StorePostRequest.php │ │ │ │ └── UpdatePostRequest.php │ │ ├── Models │ │ │ ├── Post.php │ │ │ └── User.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ ├── RepositoryServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ └── Repositories │ │ │ ├── AccessTokenRepository.php │ │ │ ├── Contracts │ │ │ ├── AccessTokenRepositoryInterface.php │ │ │ ├── PostRepositoryInterface.php │ │ │ └── UserRepositoryInterface.php │ │ │ ├── PostRepository.php │ │ │ └── UserRepository.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── explorer.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── scout.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── PostFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ └── 2022_03_08_192514_create_posts_table.php │ │ └── seeders │ │ │ └── DatabaseSeeder.php │ │ ├── lang │ │ ├── en.json │ │ └── en │ │ │ ├── auth.php │ │ │ ├── pagination.php │ │ │ ├── passwords.php │ │ │ └── validation.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ └── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ ├── routes │ │ ├── api.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ ├── AuthTest.php │ │ │ ├── PostTest.php │ │ │ └── RegisterTest.php │ │ ├── TestCase.php │ │ ├── Unit │ │ │ └── ExampleTest.php │ │ └── elastic.json │ │ └── webpack.mix.js ├── Fringe Interior │ ├── .env.example │ ├── .gitattributes │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Api │ │ │ │ │ ├── Auth │ │ │ │ │ │ └── AuthController.php │ │ │ │ │ ├── OrderController.php │ │ │ │ │ └── ProductController.php │ │ │ │ └── Controller.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ └── Requests │ │ │ │ ├── Api │ │ │ │ ├── Auth │ │ │ │ │ ├── LoginRequest.php │ │ │ │ │ └── RegisterRequest.php │ │ │ │ ├── Order │ │ │ │ │ └── OrderRequest.php │ │ │ │ └── Product │ │ │ │ │ ├── StoreRequest.php │ │ │ │ │ └── UpdateRequest.php │ │ │ │ └── BaseRequest.php │ │ ├── Models │ │ │ ├── Order.php │ │ │ ├── Product.php │ │ │ ├── Sanctum │ │ │ │ └── PersonalAccessToken.php │ │ │ └── User.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ ├── Repositories │ │ │ ├── BaseRepository.php │ │ │ ├── BaseRepositoryInterface.php │ │ │ ├── Cache │ │ │ │ ├── CacheRepository.php │ │ │ │ └── CacheRepositoryInterface.php │ │ │ ├── Order │ │ │ │ ├── OrderRepository.php │ │ │ │ └── OrderRepositoryInterface.php │ │ │ ├── Product │ │ │ │ ├── ProductRepository.php │ │ │ │ └── ProductRepositoryInterface.php │ │ │ └── User │ │ │ │ ├── UserRepository.php │ │ │ │ └── UserRepositoryInterface.php │ │ ├── Services │ │ │ └── OrderService.php │ │ └── Utils │ │ │ └── Response.php │ ├── artisan │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ ├── composer.json │ ├── composer.lock │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── OrderFactory.php │ │ │ ├── ProductFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ │ ├── 2014_10_12_100000_create_password_resets_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ ├── 2023_09_22_151331_create_orders_table.php │ │ │ └── 2023_09_22_151348_create_products_table.php │ │ └── seeders │ │ │ └── DatabaseSeeder.php │ ├── docker-compose.yml │ ├── docker │ │ ├── mongodb │ │ │ └── data │ │ │ │ └── .gitignore │ │ ├── nginx │ │ │ └── default.conf │ │ └── php │ │ │ ├── docker-fpm.ini │ │ │ └── dockerfile │ ├── lang │ │ └── en │ │ │ ├── auth.php │ │ │ ├── pagination.php │ │ │ ├── passwords.php │ │ │ └── validation.php │ ├── package.json │ ├── phpunit.xml │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ ├── routes │ │ ├── api.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ └── Api │ │ │ │ ├── AuthTest.php │ │ │ │ ├── OrderTest.php │ │ │ │ └── ProductTest.php │ │ └── TestCase.php │ └── vite.config.js ├── Inverseschool │ ├── README.md │ ├── Response of system design problems.png │ ├── system-design-question-advanced.png │ └── system-design-question-basic.png ├── Itoll │ ├── P1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .styleci.yml │ │ ├── README.md │ │ ├── app │ │ │ ├── Channels │ │ │ │ └── WebhookChannel.php │ │ │ ├── Console │ │ │ │ └── Kernel.php │ │ │ ├── Enums │ │ │ │ ├── Permission.php │ │ │ │ └── Role.php │ │ │ ├── Exceptions │ │ │ │ └── Handler.php │ │ │ ├── Http │ │ │ │ ├── Controllers │ │ │ │ │ ├── Controller.php │ │ │ │ │ ├── DeliveryRequestController.php │ │ │ │ │ └── UserController.php │ │ │ │ ├── Kernel.php │ │ │ │ ├── Middleware │ │ │ │ │ ├── Authenticate.php │ │ │ │ │ ├── EncryptCookies.php │ │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ │ ├── TrimStrings.php │ │ │ │ │ ├── TrustHosts.php │ │ │ │ │ ├── TrustProxies.php │ │ │ │ │ └── VerifyCsrfToken.php │ │ │ │ ├── Requests │ │ │ │ │ ├── DeliveryRequest │ │ │ │ │ │ └── StoreDeliveryRequestRequest.php │ │ │ │ │ └── User │ │ │ │ │ │ └── UpdateWebhookRequest.php │ │ │ │ └── Resources │ │ │ │ │ ├── ApiResource.php │ │ │ │ │ ├── DeliveryRequestCollection.php │ │ │ │ │ └── DeliveryRequestResource.php │ │ │ ├── Models │ │ │ │ ├── DeliveryRequest.php │ │ │ │ └── User.php │ │ │ ├── Notifications │ │ │ │ └── DelivererChangeStatus.php │ │ │ ├── Policies │ │ │ │ ├── DeliveryRequestPolicy.php │ │ │ │ └── UserPolicy.php │ │ │ └── Providers │ │ │ │ ├── AppServiceProvider.php │ │ │ │ ├── AuthServiceProvider.php │ │ │ │ ├── BroadcastServiceProvider.php │ │ │ │ ├── EventServiceProvider.php │ │ │ │ └── RouteServiceProvider.php │ │ ├── artisan │ │ ├── bootstrap │ │ │ ├── app.php │ │ │ └── cache │ │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ │ ├── app.php │ │ │ ├── auth.php │ │ │ ├── broadcasting.php │ │ │ ├── cache.php │ │ │ ├── constants.php │ │ │ ├── cors.php │ │ │ ├── database.php │ │ │ ├── filesystems.php │ │ │ ├── hashing.php │ │ │ ├── logging.php │ │ │ ├── mail.php │ │ │ ├── queue.php │ │ │ ├── sanctum.php │ │ │ ├── services.php │ │ │ ├── session.php │ │ │ └── view.php │ │ ├── database │ │ │ ├── .gitignore │ │ │ ├── factories │ │ │ │ ├── DeliveryRequestFactory.php │ │ │ │ └── UserFactory.php │ │ │ ├── migrations │ │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ │ ├── 2014_10_12_100000_create_password_resets_table.php │ │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ │ └── 2022_05_03_160459_create_delivery_requests_table.php │ │ │ └── seeders │ │ │ │ ├── DatabaseSeeder.php │ │ │ │ ├── DeliveryRequestSeeder.php │ │ │ │ └── UserSeeder.php │ │ ├── docker-compose.yml │ │ ├── itoll_project.png │ │ ├── lang │ │ │ ├── en │ │ │ │ ├── auth.php │ │ │ │ ├── pagination.php │ │ │ │ ├── passwords.php │ │ │ │ └── validation.php │ │ │ └── fa │ │ │ │ ├── api.php │ │ │ │ └── notification.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ │ ├── .htaccess │ │ │ ├── favicon.ico │ │ │ ├── index.php │ │ │ └── robots.txt │ │ ├── resources │ │ │ ├── css │ │ │ │ └── app.css │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ └── bootstrap.js │ │ │ └── views │ │ │ │ └── welcome.blade.php │ │ ├── routes │ │ │ ├── api.php │ │ │ ├── channels.php │ │ │ ├── console.php │ │ │ └── web.php │ │ ├── storage │ │ │ ├── app │ │ │ │ ├── .gitignore │ │ │ │ └── public │ │ │ │ │ └── .gitignore │ │ │ ├── framework │ │ │ │ ├── .gitignore │ │ │ │ ├── cache │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitignore │ │ │ │ ├── sessions │ │ │ │ │ └── .gitignore │ │ │ │ ├── testing │ │ │ │ │ └── .gitignore │ │ │ │ └── views │ │ │ │ │ └── .gitignore │ │ │ └── logs │ │ │ │ └── .gitignore │ │ ├── tests │ │ │ ├── CreatesApplication.php │ │ │ ├── TestCase.php │ │ │ └── Unit │ │ │ │ ├── DeliveryRequestTest.php │ │ │ │ └── UserTest.php │ │ └── webpack.mix.js │ └── P2 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── Itoll-task.postman_collection.json │ │ ├── README.md │ │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Contracts │ │ │ ├── DtoInterface.php │ │ │ └── Repositories │ │ │ │ └── OrderRepositoryInterface.php │ │ ├── Dtos │ │ │ └── OrderStoreDto.php │ │ ├── Enums │ │ │ └── OrderStatusEnum.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Helpers │ │ │ └── DtoHelper.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Controller.php │ │ │ │ ├── Delivery │ │ │ │ │ └── OrderController.php │ │ │ │ └── Supply │ │ │ │ │ └── OrderController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── DeliveryChecker.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── MartinChecker.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── SupplyChecker.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ ├── Requests │ │ │ │ ├── OrderDeliveryRequest.php │ │ │ │ └── OrderStoreRequest.php │ │ │ └── Resources │ │ │ │ ├── EmptyResource.php │ │ │ │ ├── OrderShowResource.php │ │ │ │ └── OrderStoreResource.php │ │ ├── Jobs │ │ │ └── CallWebHookJob.php │ │ ├── Models │ │ │ ├── Order.php │ │ │ └── User.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ ├── Repositories │ │ │ └── OrderRepository.php │ │ └── Rules │ │ │ ├── LatitudeChecker.php │ │ │ ├── LongitudeChecker.php │ │ │ └── NotSameChecker.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── OrderFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ └── 2023_07_21_145841_create_orders_table.php │ │ └── seeders │ │ │ └── DatabaseSeeder.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ │ ├── routes │ │ ├── apis │ │ │ ├── delivery.php │ │ │ └── supply.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ └── ExampleTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ExampleTest.php │ │ └── vite.config.js ├── Karlancer │ ├── .editorconfig │ ├── .env.example │ ├── .gitattributes │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── app │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Controller.php │ │ │ │ └── v1 │ │ │ │ │ ├── AuthController.php │ │ │ │ │ ├── CategoryController.php │ │ │ │ │ ├── EmailVerificationController.php │ │ │ │ │ ├── TodoController.php │ │ │ │ │ └── UserController.php │ │ │ ├── Helpers │ │ │ │ ├── CustomLengthAwarePaginator.php │ │ │ │ └── ResponseJson.php │ │ │ ├── Middleware │ │ │ │ └── AlwaysResponseJson.php │ │ │ ├── Requests │ │ │ │ ├── Auth │ │ │ │ │ ├── LoginRequest.php │ │ │ │ │ └── RegisterRequest.php │ │ │ │ └── v1 │ │ │ │ │ └── Todo │ │ │ │ │ ├── IndexRequest.php │ │ │ │ │ ├── StoreRequest.php │ │ │ │ │ └── UpdateRequest.php │ │ │ └── Resources │ │ │ │ └── v1 │ │ │ │ └── Todo │ │ │ │ ├── ListResource.php │ │ │ │ └── ShowResource.php │ │ ├── Models │ │ │ ├── Category.php │ │ │ ├── Todo.php │ │ │ └── User.php │ │ ├── Notifications │ │ │ └── EmailVerification.php │ │ ├── Policies │ │ │ └── v1 │ │ │ │ └── TodoPolicy.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── HorizonServiceProvider.php │ │ │ └── PaginatorServiceProvider.php │ │ └── Rules │ │ │ └── FutureDate.php │ ├── artisan │ ├── bootstrap │ │ ├── app.php │ │ ├── cache │ │ │ └── .gitignore │ │ └── providers.php │ ├── composer.json │ ├── composer.lock │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── cache.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── horizon.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── request-docs.php │ │ ├── sanctum.php │ │ ├── services.php │ │ └── session.php │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── CategoryFactory.php │ │ │ ├── TodoFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 0001_01_01_000000_create_users_table.php │ │ │ ├── 2024_04_07_100449_create_personal_access_tokens_table.php │ │ │ ├── 2024_04_07_112226_create_categories_table.php │ │ │ └── 2024_04_07_113149_create_todos_table.php │ │ └── seeders │ │ │ ├── CategorySeeder.php │ │ │ └── DatabaseSeeder.php │ ├── docker-compose.yml │ ├── docker │ │ ├── .gitignore │ │ ├── nginx │ │ │ └── default.conf │ │ └── php │ │ │ ├── Dockerfile │ │ │ └── docker-fpm.ini │ ├── package.json │ ├── phpunit.xml │ ├── public │ │ ├── .gitignore │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ ├── routes │ │ ├── api.php │ │ ├── console.php │ │ └── web.php │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ ├── tests │ │ ├── Feature │ │ │ ├── AuthTest.php │ │ │ ├── CategoryTest.php │ │ │ ├── TodoTest.php │ │ │ └── UserTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── TestExample.php │ └── vite.config.js ├── Lastsecond │ ├── .editorconfig │ ├── .env.example │ ├── .gitattributes │ ├── .gitignore │ ├── README.md │ ├── app │ │ ├── Enums │ │ │ └── BookingStatusEnum.php │ │ ├── Events │ │ │ └── BookingCreated.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── ActivityController.php │ │ │ │ ├── BookingController.php │ │ │ │ └── Controller.php │ │ │ └── Requests │ │ │ │ ├── CreateActivityRequest.php │ │ │ │ ├── CreateBookingRequest.php │ │ │ │ ├── IndexActivityRequest.php │ │ │ │ ├── UpdateActivityRequest.php │ │ │ │ └── UpdateBookingRequest.php │ │ ├── Listeners │ │ │ ├── NotifyAdminOfBooking.php │ │ │ └── SendBookingConfirmationEmail.php │ │ ├── Models │ │ │ ├── Activity.php │ │ │ ├── Booking.php │ │ │ └── User.php │ │ ├── Notifications │ │ │ ├── ActivityReminderNotification.php │ │ │ ├── AdminBookingNotification.php │ │ │ └── BookingConfirmationNotification.php │ │ ├── Policies │ │ │ ├── ActivityPolicy.php │ │ │ └── BookingPolicy.php │ │ ├── Providers │ │ │ └── AppServiceProvider.php │ │ └── Schedules │ │ │ └── SendBookingReminders.php │ ├── artisan │ ├── bootstrap │ │ ├── app.php │ │ ├── cache │ │ │ └── .gitignore │ │ └── providers.php │ ├── composer.json │ ├── composer.lock │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── cache.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ └── session.php │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 0001_01_01_000000_create_users_table.php │ │ │ ├── 0001_01_01_000001_create_cache_table.php │ │ │ ├── 0001_01_01_000002_create_jobs_table.php │ │ │ ├── 2024_08_21_075150_create_activities_table.php │ │ │ ├── 2024_08_21_075203_create_bookings_table.php │ │ │ ├── 2024_08_21_075329_create_personal_access_tokens_table.php │ │ │ └── 2024_08_21_092140_add_is_admin_to_users_table.php │ │ └── seeders │ │ │ └── DatabaseSeeder.php │ ├── package.json │ ├── phpunit.xml │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ ├── routes │ │ ├── api.php │ │ ├── console.php │ │ └── web.php │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ ├── tests │ │ ├── Feature │ │ │ └── ExampleTest.php │ │ ├── Pest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ExampleTest.php │ └── vite.config.js ├── ParsPack │ └── P1 │ │ └── README.md ├── Paystar │ └── P1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Auth │ │ │ │ │ ├── ConfirmPasswordController.php │ │ │ │ │ ├── ForgotPasswordController.php │ │ │ │ │ ├── LoginController.php │ │ │ │ │ ├── RegisterController.php │ │ │ │ │ ├── ResetPasswordController.php │ │ │ │ │ └── VerificationController.php │ │ │ │ ├── Controller.php │ │ │ │ ├── HomeController.php │ │ │ │ ├── PaymentController.php │ │ │ │ ├── dashboard │ │ │ │ │ ├── OrderController.php │ │ │ │ │ └── ProductController.php │ │ │ │ └── payment │ │ │ │ │ └── PaymentController.php │ │ │ ├── Kernel.php │ │ │ └── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ ├── Models │ │ │ ├── BankInfo.php │ │ │ ├── Order.php │ │ │ ├── Payment.php │ │ │ ├── Product.php │ │ │ └── User.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ └── Services │ │ │ └── Payment │ │ │ └── PayStar.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── payment.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── ProductFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_resets_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ ├── 2019_12_14_000002_create_products_table.php │ │ │ ├── 2019_12_14_000003_create_orders_table.php │ │ │ ├── 2023_04_11_231707_create_payments_table.php │ │ │ └── 2023_04_11_231832_create_bank_infos_table.php │ │ └── seeders │ │ │ ├── DatabaseSeeder.php │ │ │ └── PublishSeeder.php │ │ ├── lang │ │ └── en │ │ │ ├── auth.php │ │ │ ├── pagination.php │ │ │ ├── passwords.php │ │ │ └── validation.php │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ ├── .htaccess │ │ ├── css │ │ │ └── app.css │ │ ├── favicon.ico │ │ ├── fonts │ │ │ ├── IRANSansWeb(FaNum).eot │ │ │ ├── IRANSansWeb(FaNum).ttf │ │ │ ├── IRANSansWeb(FaNum).woff │ │ │ ├── IRANSansWeb(FaNum).woff2 │ │ │ ├── IRANSansWeb(FaNum)_Bold.eot │ │ │ ├── IRANSansWeb(FaNum)_Bold.ttf │ │ │ ├── IRANSansWeb(FaNum)_Bold.woff │ │ │ ├── IRANSansWeb(FaNum)_Bold.woff2 │ │ │ ├── IRANSansWeb(FaNum)_Light.eot │ │ │ ├── IRANSansWeb(FaNum)_Light.ttf │ │ │ ├── IRANSansWeb(FaNum)_Light.woff │ │ │ ├── IRANSansWeb(FaNum)_Light.woff2 │ │ │ ├── IRANSansWeb(FaNum)_Medium.eot │ │ │ ├── IRANSansWeb(FaNum)_Medium.ttf │ │ │ ├── IRANSansWeb(FaNum)_Medium.woff │ │ │ ├── IRANSansWeb(FaNum)_Medium.woff2 │ │ │ ├── IRANSansWeb(FaNum)_UltraLight.eot │ │ │ ├── IRANSansWeb(FaNum)_UltraLight.ttf │ │ │ ├── IRANSansWeb(FaNum)_UltraLight.woff │ │ │ └── IRANSansWeb(FaNum)_UltraLight.woff2 │ │ ├── index.php │ │ ├── js │ │ │ └── app.js │ │ ├── mix-manifest.json │ │ └── robots.txt │ │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── vue │ │ │ │ ├── App.vue │ │ │ │ ├── components │ │ │ │ └── Layout.vue │ │ │ │ ├── main.js │ │ │ │ └── routes │ │ │ │ └── routes.js │ │ ├── sass │ │ │ ├── _variables.scss │ │ │ ├── app.scss │ │ │ └── fonts │ │ │ │ ├── fonts.scss │ │ │ │ └── iransans │ │ │ │ ├── IRANSansWeb(FaNum).eot │ │ │ │ ├── IRANSansWeb(FaNum).ttf │ │ │ │ ├── IRANSansWeb(FaNum).woff │ │ │ │ ├── IRANSansWeb(FaNum).woff2 │ │ │ │ ├── IRANSansWeb(FaNum)_Black.eot │ │ │ │ ├── IRANSansWeb(FaNum)_Black.ttf │ │ │ │ ├── IRANSansWeb(FaNum)_Black.woff │ │ │ │ ├── IRANSansWeb(FaNum)_Black.woff2 │ │ │ │ ├── IRANSansWeb(FaNum)_Bold.eot │ │ │ │ ├── IRANSansWeb(FaNum)_Bold.ttf │ │ │ │ ├── IRANSansWeb(FaNum)_Bold.woff │ │ │ │ ├── IRANSansWeb(FaNum)_Bold.woff2 │ │ │ │ ├── IRANSansWeb(FaNum)_Light.eot │ │ │ │ ├── IRANSansWeb(FaNum)_Light.ttf │ │ │ │ ├── IRANSansWeb(FaNum)_Light.woff │ │ │ │ ├── IRANSansWeb(FaNum)_Light.woff2 │ │ │ │ ├── IRANSansWeb(FaNum)_Medium.eot │ │ │ │ ├── IRANSansWeb(FaNum)_Medium.ttf │ │ │ │ ├── IRANSansWeb(FaNum)_Medium.woff │ │ │ │ ├── IRANSansWeb(FaNum)_Medium.woff2 │ │ │ │ ├── IRANSansWeb(FaNum)_UltraLight.eot │ │ │ │ ├── IRANSansWeb(FaNum)_UltraLight.ttf │ │ │ │ ├── IRANSansWeb(FaNum)_UltraLight.woff │ │ │ │ ├── IRANSansWeb(FaNum)_UltraLight.woff2 │ │ │ │ ├── IRANSansWeb.eot │ │ │ │ ├── IRANSansWeb.ttf │ │ │ │ ├── IRANSansWeb.woff │ │ │ │ ├── IRANSansWeb.woff2 │ │ │ │ ├── IRANSansWeb_Black.eot │ │ │ │ ├── IRANSansWeb_Black.ttf │ │ │ │ ├── IRANSansWeb_Black.woff │ │ │ │ ├── IRANSansWeb_Black.woff2 │ │ │ │ ├── IRANSansWeb_Bold.eot │ │ │ │ ├── IRANSansWeb_Bold.ttf │ │ │ │ ├── IRANSansWeb_Bold.woff │ │ │ │ ├── IRANSansWeb_Bold.woff2 │ │ │ │ ├── IRANSansWeb_Light.eot │ │ │ │ ├── IRANSansWeb_Light.ttf │ │ │ │ ├── IRANSansWeb_Light.woff │ │ │ │ ├── IRANSansWeb_Light.woff2 │ │ │ │ ├── IRANSansWeb_Medium.eot │ │ │ │ ├── IRANSansWeb_Medium.ttf │ │ │ │ ├── IRANSansWeb_Medium.woff │ │ │ │ ├── IRANSansWeb_Medium.woff2 │ │ │ │ ├── IRANSansWeb_UltraLight.eot │ │ │ │ ├── IRANSansWeb_UltraLight.ttf │ │ │ │ ├── IRANSansWeb_UltraLight.woff │ │ │ │ └── IRANSansWeb_UltraLight.woff2 │ │ └── views │ │ │ ├── auth │ │ │ ├── login.blade.php │ │ │ ├── passwords │ │ │ │ ├── confirm.blade.php │ │ │ │ ├── email.blade.php │ │ │ │ └── reset.blade.php │ │ │ ├── register.blade.php │ │ │ └── verify.blade.php │ │ │ ├── dashboard │ │ │ ├── order │ │ │ │ └── index.blade.php │ │ │ └── product │ │ │ │ └── index.blade.php │ │ │ ├── home.blade.php │ │ │ ├── index.blade.php │ │ │ ├── layouts │ │ │ ├── app.blade.php │ │ │ └── sidebar.blade.php │ │ │ └── payment │ │ │ └── index.blade.php │ │ ├── routes │ │ ├── api.php │ │ ├── channels.php │ │ ├── console.php │ │ ├── dashboard │ │ │ ├── order.php │ │ │ ├── payment.php │ │ │ └── product.php │ │ └── web.php │ │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ ├── AuthTest.php │ │ │ └── ExampleTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ExampleTest.php │ │ └── webpack.mix.js ├── Private Companies │ └── P1 │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── REST API todo package.postman_collection.json │ │ ├── composer.json │ │ ├── config │ │ └── task.php │ │ ├── database │ │ ├── .gitignore │ │ └── migrations │ │ │ └── create_task_table.php │ │ ├── lang │ │ └── en │ │ │ └── task.php │ │ ├── project-description1.jpg │ │ ├── project-description2.jpg │ │ ├── project-description3.jpg │ │ ├── resources │ │ └── views │ │ │ └── mail │ │ │ └── email.blade.php │ │ ├── routes │ │ └── api.php │ │ ├── src │ │ ├── Console │ │ │ └── Commands │ │ │ │ └── TaskCommand.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ └── Api │ │ │ │ │ ├── ApiController.php │ │ │ │ │ ├── Requests │ │ │ │ │ └── StoreRequest.php │ │ │ │ │ ├── Resources │ │ │ │ │ ├── TaskCollection.php │ │ │ │ │ └── TaskResource.php │ │ │ │ │ └── TaskController.php │ │ │ └── Middleware │ │ │ │ └── TaskMiddleware.php │ │ ├── Jobs │ │ │ └── SendTaskDueJob.php │ │ ├── Mail │ │ │ └── DueTaskMail.php │ │ ├── Models │ │ │ ├── Relation.php │ │ │ ├── TableName.php │ │ │ └── Task.php │ │ ├── Repositories │ │ │ ├── Eloquent │ │ │ │ └── TaskRepository.php │ │ │ └── TaskRepositoryInterface.php │ │ ├── Services │ │ │ └── TaskService.php │ │ ├── TaskServiceProvider.php │ │ └── Trait │ │ │ └── ApiResponseTrait.php │ │ └── tests │ │ ├── BaseTest.php │ │ └── Feature │ │ └── TaskTest.php ├── Snapp │ ├── P1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app │ │ │ ├── Components │ │ │ │ └── helpers.php │ │ │ ├── Console │ │ │ │ └── Kernel.php │ │ │ ├── Exceptions │ │ │ │ ├── FailedNotification.php │ │ │ │ ├── Handler.php │ │ │ │ ├── Inquiry │ │ │ │ │ └── DriverNotFoundException.php │ │ │ │ ├── InsufficientBalanceTransactionException.php │ │ │ │ └── SameAccountTransactionException.php │ │ │ ├── Facades │ │ │ │ └── Inquiry.php │ │ │ ├── Http │ │ │ │ ├── Controllers │ │ │ │ │ ├── Api │ │ │ │ │ │ └── v1 │ │ │ │ │ │ │ ├── AuthController.php │ │ │ │ │ │ │ └── TransactionController.php │ │ │ │ │ └── Controller.php │ │ │ │ ├── Kernel.php │ │ │ │ ├── Middleware │ │ │ │ │ ├── Authenticate.php │ │ │ │ │ ├── EncryptCookies.php │ │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ │ ├── TrimStrings.php │ │ │ │ │ ├── TrustHosts.php │ │ │ │ │ ├── TrustProxies.php │ │ │ │ │ ├── ValidateSignature.php │ │ │ │ │ └── VerifyCsrfToken.php │ │ │ │ ├── Requests │ │ │ │ │ └── Api │ │ │ │ │ │ └── v1 │ │ │ │ │ │ ├── LoginRequest.php │ │ │ │ │ │ └── TransactionCreateRequest.php │ │ │ │ └── Resources │ │ │ │ │ └── Api │ │ │ │ │ └── v1 │ │ │ │ │ ├── TransactionResource.php │ │ │ │ │ └── UserResource.php │ │ │ ├── Lib │ │ │ │ ├── Inquiry │ │ │ │ │ ├── Contracts │ │ │ │ │ │ └── InquiryInterface.php │ │ │ │ │ ├── Drivers │ │ │ │ │ │ └── Finnotech.php │ │ │ │ │ └── Inquiry.php │ │ │ │ └── SMS │ │ │ │ │ ├── Clients │ │ │ │ │ ├── Ghasedak │ │ │ │ │ │ ├── Facades │ │ │ │ │ │ │ └── Ghasedak.php │ │ │ │ │ │ └── GhasedakClient.php │ │ │ │ │ └── Kavenegar │ │ │ │ │ │ ├── Facades │ │ │ │ │ │ └── Kavenegar.php │ │ │ │ │ │ └── KavehNegarClient.php │ │ │ │ │ ├── Contracts │ │ │ │ │ ├── SMSClientInterface.php │ │ │ │ │ └── SMSMessageInterface.php │ │ │ │ │ └── Messages │ │ │ │ │ ├── MessageRepository.php │ │ │ │ │ └── Payload.php │ │ │ ├── Models │ │ │ │ ├── BankAccount.php │ │ │ │ ├── BankAccountCard.php │ │ │ │ ├── Enums │ │ │ │ │ └── TransactionStatusEnum.php │ │ │ │ ├── Transaction.php │ │ │ │ ├── TransactionWage.php │ │ │ │ └── User.php │ │ │ ├── Notifications │ │ │ │ ├── Channels │ │ │ │ │ └── SMSChannel.php │ │ │ │ ├── DepositTransactionNotification.php │ │ │ │ └── WithdrawTransactionNotification.php │ │ │ ├── Policies │ │ │ │ └── BankAccountCardPolicy.php │ │ │ ├── Providers │ │ │ │ ├── AppServiceProvider.php │ │ │ │ ├── AuthServiceProvider.php │ │ │ │ ├── BroadcastServiceProvider.php │ │ │ │ ├── EventServiceProvider.php │ │ │ │ └── RouteServiceProvider.php │ │ │ ├── Rules │ │ │ │ └── ValidCardNumber.php │ │ │ └── Services │ │ │ │ └── TransactionService.php │ │ ├── artisan │ │ ├── bootstrap │ │ │ ├── app.php │ │ │ └── cache │ │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ │ ├── app.php │ │ │ ├── auth.php │ │ │ ├── broadcasting.php │ │ │ ├── cache.php │ │ │ ├── cors.php │ │ │ ├── database.php │ │ │ ├── filesystems.php │ │ │ ├── hashing.php │ │ │ ├── inquiry.php │ │ │ ├── logging.php │ │ │ ├── mail.php │ │ │ ├── queue.php │ │ │ ├── sanctum.php │ │ │ ├── services.php │ │ │ ├── session.php │ │ │ ├── sms.php │ │ │ └── view.php │ │ ├── database │ │ │ ├── .gitignore │ │ │ ├── factories │ │ │ │ ├── BankAccountCardFactory.php │ │ │ │ ├── BankAccountFactory.php │ │ │ │ ├── TransactionFactory.php │ │ │ │ ├── TransactionWageFactory.php │ │ │ │ └── UserFactory.php │ │ │ ├── migrations │ │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ │ ├── 2023_02_20_191020_create_bank_accounts_table.php │ │ │ │ ├── 2023_02_20_191334_create_bank_account_cards_table.php │ │ │ │ ├── 2023_02_21_122831_create_transactions_table.php │ │ │ │ └── 2023_02_21_130107_create_transaction_wages_table.php │ │ │ └── seeders │ │ │ │ └── DatabaseSeeder.php │ │ ├── lang │ │ │ ├── en │ │ │ │ ├── auth.php │ │ │ │ ├── message.php │ │ │ │ ├── pagination.php │ │ │ │ ├── passwords.php │ │ │ │ ├── strings.php │ │ │ │ └── validation.php │ │ │ └── fa │ │ │ │ ├── message.php │ │ │ │ ├── strings.php │ │ │ │ └── validation.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── project-description1.png │ │ ├── project-description2.png │ │ ├── public │ │ │ ├── .htaccess │ │ │ ├── favicon.ico │ │ │ ├── index.php │ │ │ └── robots.txt │ │ ├── resources │ │ │ ├── css │ │ │ │ └── app.css │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ └── bootstrap.js │ │ │ └── views │ │ │ │ └── welcome.blade.php │ │ ├── routes │ │ │ ├── api.php │ │ │ ├── channels.php │ │ │ ├── console.php │ │ │ └── web.php │ │ ├── storage │ │ │ ├── app │ │ │ │ ├── .gitignore │ │ │ │ └── public │ │ │ │ │ └── .gitignore │ │ │ ├── framework │ │ │ │ ├── .gitignore │ │ │ │ ├── cache │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitignore │ │ │ │ ├── sessions │ │ │ │ │ └── .gitignore │ │ │ │ ├── testing │ │ │ │ │ └── .gitignore │ │ │ │ └── views │ │ │ │ │ └── .gitignore │ │ │ └── logs │ │ │ │ └── .gitignore │ │ ├── tests │ │ │ ├── CreatesApplication.php │ │ │ ├── TestCase.php │ │ │ └── Unit │ │ │ │ └── Services │ │ │ │ └── TransactionServiceTest.php │ │ └── vite.config.js │ └── P2 │ │ ├── app │ │ └── helpers.php │ │ ├── artisan │ │ ├── bootstrap │ │ └── app.php │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ └── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ ├── 2023_08_23_144613_create_accounts_table.php │ │ │ ├── 2023_08_23_190756_create_cards_table.php │ │ │ ├── 2023_08_23_190911_create_transactions_table.php │ │ │ ├── 2023_08_23_191030_create_wages_table.php │ │ │ └── 2023_08_25_080045_create_jobs_table.php │ │ ├── public │ │ └── index.php │ │ ├── resources │ │ └── lang │ │ │ └── en │ │ │ └── messages.php │ │ └── routes │ │ ├── channels.php │ │ ├── console.php │ │ ├── v1.php │ │ └── web.php ├── SnappFood │ ├── P2 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── Dockerfile.nginx │ │ ├── README.md │ │ ├── app │ │ │ ├── Actions │ │ │ │ ├── AssignDelayReportAction.php │ │ │ │ └── StoreDelayReportAction.php │ │ │ ├── Contracts │ │ │ │ ├── Repository │ │ │ │ │ ├── AgentRepository.php │ │ │ │ │ ├── DelayReportRepository.php │ │ │ │ │ ├── DelayReportStatusRepository.php │ │ │ │ │ ├── OrderRepository.php │ │ │ │ │ ├── Repository.php │ │ │ │ │ ├── TripRepository.php │ │ │ │ │ ├── TripStatusRepository.php │ │ │ │ │ └── VendorRepository.php │ │ │ │ └── Validate │ │ │ │ │ ├── AssignDelayReport.php │ │ │ │ │ └── StoreDelayReport.php │ │ │ ├── Enums │ │ │ │ ├── DeliveryReport │ │ │ │ │ └── Status.php │ │ │ │ ├── Manager.php │ │ │ │ ├── PrepareValuesTrait.php │ │ │ │ ├── Supplier.php │ │ │ │ ├── Transform.php │ │ │ │ └── Tripe │ │ │ │ │ └── Status.php │ │ │ ├── Exceptions │ │ │ │ ├── AgentHasDelayReport.php │ │ │ │ ├── AgentNotFound.php │ │ │ │ ├── DelayReportNotFound.php │ │ │ │ ├── OrderDoesNotHaveDelay.php │ │ │ │ ├── OrderHasPendingDelayReport.php │ │ │ │ ├── OrderHasTrip.php │ │ │ │ ├── OrderNotFound.php │ │ │ │ ├── Repository │ │ │ │ │ └── Invalid.php │ │ │ │ ├── ServiceException.php │ │ │ │ └── TripNotFound.php │ │ │ ├── Foundation │ │ │ │ ├── Http │ │ │ │ │ ├── Resources │ │ │ │ │ │ └── Json │ │ │ │ │ │ │ ├── BaseResourceCollection.php │ │ │ │ │ │ │ ├── CustomPaginatedResourceResponse.php │ │ │ │ │ │ │ └── PaginatedResourceResponse.php │ │ │ │ │ └── Responses │ │ │ │ │ │ └── ErrorResponse.php │ │ │ │ ├── Transporter │ │ │ │ │ └── Request.php │ │ │ │ └── Utils │ │ │ │ │ └── ResponseValidator.php │ │ │ ├── Http │ │ │ │ ├── Controllers │ │ │ │ │ ├── Admin │ │ │ │ │ │ ├── AgentController.php │ │ │ │ │ │ ├── TripController.php │ │ │ │ │ │ └── VendorController.php │ │ │ │ │ ├── Agent │ │ │ │ │ │ └── DelayReportController.php │ │ │ │ │ ├── Controller.php │ │ │ │ │ └── Customer │ │ │ │ │ │ ├── DelayReportController.php │ │ │ │ │ │ └── OrderController.php │ │ │ │ ├── Requests │ │ │ │ │ ├── Admin │ │ │ │ │ │ ├── AgentStoreRequest.php │ │ │ │ │ │ ├── TripStoreRequest.php │ │ │ │ │ │ ├── TripUpdateRequest.php │ │ │ │ │ │ └── VendorStoreRequest.php │ │ │ │ │ ├── Agent │ │ │ │ │ │ └── DelayReportAssignRequest.php │ │ │ │ │ └── Customer │ │ │ │ │ │ ├── DelayReportStoreRequest.php │ │ │ │ │ │ └── OrderStoreRequest.php │ │ │ │ └── Resources │ │ │ │ │ ├── Admin │ │ │ │ │ ├── AgentCollection.php │ │ │ │ │ ├── AgentResource.php │ │ │ │ │ ├── TripCollection.php │ │ │ │ │ ├── TripResource.php │ │ │ │ │ ├── VendorCollection.php │ │ │ │ │ └── VendorResource.php │ │ │ │ │ ├── Agent │ │ │ │ │ ├── AnalyticsCollection.php │ │ │ │ │ ├── AnalyticsResource.php │ │ │ │ │ ├── DelayReportResource.php │ │ │ │ │ ├── DelayReportStatusCollection.php │ │ │ │ │ └── DelayReportStatusResource.php │ │ │ │ │ └── Customer │ │ │ │ │ ├── DelayReportResource.php │ │ │ │ │ ├── DelayReportStatusCollection.php │ │ │ │ │ ├── DelayReportStatusResource.php │ │ │ │ │ ├── OrderCollection.php │ │ │ │ │ └── OrderResource.php │ │ │ ├── Models │ │ │ │ ├── Agent.php │ │ │ │ ├── CurrentDelayReportStatus.php │ │ │ │ ├── CurrentTripStatus.php │ │ │ │ ├── DelayReport.php │ │ │ │ ├── DelayReportStatus.php │ │ │ │ ├── Order.php │ │ │ │ ├── Trip.php │ │ │ │ ├── TripStatus.php │ │ │ │ └── Vendor.php │ │ │ ├── Providers │ │ │ │ ├── AppServiceProvider.php │ │ │ │ ├── FakeServiceProvider.php │ │ │ │ └── RepositoryServiceProvider.php │ │ │ ├── Repositories │ │ │ │ └── Db │ │ │ │ │ ├── AgentRepository.php │ │ │ │ │ ├── BaseRepository.php │ │ │ │ │ ├── DelayReportRepository.php │ │ │ │ │ ├── DelayReportStatusRepository.php │ │ │ │ │ ├── OrderRepository.php │ │ │ │ │ ├── TripRepository.php │ │ │ │ │ ├── TripStatusRepository.php │ │ │ │ │ └── VendorRepository.php │ │ │ ├── Service │ │ │ │ └── MockDelay │ │ │ │ │ ├── GetMockDelayTimeRequest.php │ │ │ │ │ └── MockDelayService.php │ │ │ └── Validate │ │ │ │ ├── AssignDelayReport │ │ │ │ ├── CheckAgentExist.php │ │ │ │ └── CheckAgentHasDelayReport.php │ │ │ │ └── StoreDelayReport │ │ │ │ ├── CheckOrderDelayReport.php │ │ │ │ ├── CheckOrderExist.php │ │ │ │ └── CheckOrderHasDelay.php │ │ ├── artisan │ │ ├── bootstrap │ │ │ ├── app.php │ │ │ ├── cache │ │ │ │ └── .gitignore │ │ │ └── providers.php │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ │ ├── app.php │ │ │ ├── cache.php │ │ │ ├── database.php │ │ │ ├── external_service.php │ │ │ ├── filesystems.php │ │ │ ├── logging.php │ │ │ ├── mail.php │ │ │ ├── queue.php │ │ │ ├── seed_config.php │ │ │ ├── services.php │ │ │ └── session.php │ │ ├── database │ │ │ ├── .gitignore │ │ │ ├── factories │ │ │ │ ├── AgentFactory.php │ │ │ │ ├── DelayReportFactory.php │ │ │ │ ├── DelayReportStatusFactory.php │ │ │ │ ├── OrderFactory.php │ │ │ │ ├── TripFactory.php │ │ │ │ ├── TripStatusFactory.php │ │ │ │ └── VendorFactory.php │ │ │ ├── migrations │ │ │ │ ├── 0001_01_01_000001_create_cache_table.php │ │ │ │ ├── 0001_01_01_000002_create_jobs_table.php │ │ │ │ ├── 0001_01_01_000003_create_init_enums_pgsql_table.php │ │ │ │ ├── 2024_05_09_101312_create_vendors_table.php │ │ │ │ ├── 2024_05_09_101326_create_orders_table.php │ │ │ │ ├── 2024_05_09_101343_create_agents_table.php │ │ │ │ ├── 2024_05_09_101352_create_trips_table.php │ │ │ │ ├── 2024_05_09_101359_create_delay_reports_table.php │ │ │ │ ├── 2024_05_09_113400_create_trip_statuses_table.php │ │ │ │ ├── 2024_05_09_113410_create_current_trip_statuses_table.php │ │ │ │ ├── 2024_05_09_113433_create_delay_report_statuses_table.php │ │ │ │ └── 2024_05_09_113438_create_current_delay_report_statuses_table.php │ │ │ └── seeders │ │ │ │ ├── DatabaseSeeder.php │ │ │ │ └── InitSeeder.php │ │ ├── default.conf │ │ ├── docker-compose.yml │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ │ ├── .htaccess │ │ │ ├── favicon.ico │ │ │ ├── index.php │ │ │ └── robots.txt │ │ ├── resources │ │ │ ├── css │ │ │ │ └── app.css │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ └── bootstrap.js │ │ │ └── views │ │ │ │ └── welcome.blade.php │ │ ├── routes │ │ │ ├── api.php │ │ │ ├── console.php │ │ │ └── web.php │ │ ├── storage │ │ │ ├── app │ │ │ │ ├── .gitignore │ │ │ │ └── public │ │ │ │ │ └── .gitignore │ │ │ ├── framework │ │ │ │ ├── .gitignore │ │ │ │ ├── cache │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitignore │ │ │ │ ├── sessions │ │ │ │ │ └── .gitignore │ │ │ │ ├── testing │ │ │ │ │ └── .gitignore │ │ │ │ └── views │ │ │ │ │ └── .gitignore │ │ │ └── logs │ │ │ │ └── .gitignore │ │ ├── tests │ │ │ ├── Feature │ │ │ │ ├── Controller │ │ │ │ │ ├── Agent │ │ │ │ │ │ └── DelayReportControllerTest.php │ │ │ │ │ └── Customer │ │ │ │ │ │ └── DelayReportControllerTest.php │ │ │ │ └── ExampleTest.php │ │ │ ├── TestCase.php │ │ │ └── Unit │ │ │ │ └── ExampleTest.php │ │ └── vite.config.js │ └── p1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── README.md │ │ ├── Snappfood.postman_collection.json │ │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Enums │ │ │ └── TripStatus.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Controller.php │ │ │ │ ├── DelayReportController.php │ │ │ │ └── UserController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ ├── Requests │ │ │ │ ├── DelayReportRequest.php │ │ │ │ └── UserSigninRequest.php │ │ │ └── Resources │ │ │ │ ├── LastDelayReportResource.php │ │ │ │ ├── OrderDelayReportResource.php │ │ │ │ └── TripResource.php │ │ ├── Jobs │ │ │ └── ReEstimateOrderDeliveryTime.php │ │ ├── Models │ │ │ ├── Agent.php │ │ │ ├── DelayReport.php │ │ │ ├── Order.php │ │ │ ├── Trip.php │ │ │ ├── User.php │ │ │ └── Vendor.php │ │ └── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── AgentFactory.php │ │ │ ├── DelayReportFactory.php │ │ │ ├── OrderFactory.php │ │ │ ├── TripFactory.php │ │ │ ├── UserFactory.php │ │ │ └── VendorFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ ├── 2024_03_07_063141_create_vendors_table.php │ │ │ ├── 2024_03_07_063407_create_agents_table.php │ │ │ ├── 2024_03_07_063421_create_orders_table.php │ │ │ ├── 2024_03_07_064044_create_trips_table.php │ │ │ └── 2024_03_07_072106_create_delay_reports_table.php │ │ └── seeders │ │ │ ├── AgentSeeder.php │ │ │ ├── DatabaseSeeder.php │ │ │ ├── DelayReportSeeder.php │ │ │ ├── OrderSeeder.php │ │ │ ├── UserSeeder.php │ │ │ └── VendorSeeder.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ │ ├── routes │ │ ├── api.php │ │ ├── api │ │ │ ├── authentication.php │ │ │ └── delay-report.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ └── UserDelayReportTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ReEstimateOrderDeliveryTimeTest.php │ │ └── vite.config.js ├── SnappGrocery │ ├── P1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app │ │ │ ├── Console │ │ │ │ └── Kernel.php │ │ │ ├── Contracts │ │ │ │ ├── DtoInterface.php │ │ │ │ ├── Repositories │ │ │ │ │ ├── OrderProductRepositoryInterface.php │ │ │ │ │ ├── OrderRepositoryInterface.php │ │ │ │ │ └── ProductRepositoryInterface.php │ │ │ │ └── Services │ │ │ │ │ ├── OrderServiceInterface.php │ │ │ │ │ └── ProductServiceInterface.php │ │ │ ├── DTOs │ │ │ │ ├── OrderProductShowDto.php │ │ │ │ ├── OrderProductStoreDto.php │ │ │ │ ├── OrderProductWithoutOrderIdStoreDto.php │ │ │ │ ├── OrderShowDto.php │ │ │ │ ├── OrderStoreDto.php │ │ │ │ ├── OrderWithOrderProductShowDto.php │ │ │ │ ├── OrderWithOrderProductStoreDto.php │ │ │ │ ├── ProductShowDto.php │ │ │ │ └── ProductStoreDto.php │ │ │ ├── Enums │ │ │ │ └── OrderStatus.php │ │ │ ├── Exceptions │ │ │ │ └── Handler.php │ │ │ ├── Helpers │ │ │ │ └── DtoHelper.php │ │ │ ├── Http │ │ │ │ ├── Controllers │ │ │ │ │ ├── Controller.php │ │ │ │ │ ├── OrderController.php │ │ │ │ │ └── ProductController.php │ │ │ │ ├── Kernel.php │ │ │ │ ├── Middleware │ │ │ │ │ ├── Authenticate.php │ │ │ │ │ ├── EncryptCookies.php │ │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ │ ├── TrimStrings.php │ │ │ │ │ ├── TrustHosts.php │ │ │ │ │ ├── TrustProxies.php │ │ │ │ │ ├── ValidateSignature.php │ │ │ │ │ └── VerifyCsrfToken.php │ │ │ │ ├── Requests │ │ │ │ │ ├── OrderStoreRequest.php │ │ │ │ │ └── ProductStoreRequest.php │ │ │ │ └── Resources │ │ │ │ │ ├── OrderResource.php │ │ │ │ │ └── ProductResource.php │ │ │ ├── Models │ │ │ │ ├── Order.php │ │ │ │ ├── OrderProduct.php │ │ │ │ ├── Product.php │ │ │ │ └── User.php │ │ │ ├── Policies │ │ │ │ └── OrderPolicy.php │ │ │ ├── Providers │ │ │ │ ├── AppServiceProvider.php │ │ │ │ ├── AuthServiceProvider.php │ │ │ │ ├── BroadcastServiceProvider.php │ │ │ │ ├── EventServiceProvider.php │ │ │ │ ├── FacilityServiceProvider.php │ │ │ │ ├── RepositoryServiceProvider.php │ │ │ │ └── RouteServiceProvider.php │ │ │ ├── Repositories │ │ │ │ ├── OrderProductRepository.php │ │ │ │ ├── OrderRepository.php │ │ │ │ └── ProductRepository.php │ │ │ └── Services │ │ │ │ ├── OrderService.php │ │ │ │ └── ProductService.php │ │ ├── artisan │ │ ├── bootstrap │ │ │ ├── app.php │ │ │ └── cache │ │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ │ ├── app.php │ │ │ ├── auth.php │ │ │ ├── broadcasting.php │ │ │ ├── cache.php │ │ │ ├── cors.php │ │ │ ├── database.php │ │ │ ├── filesystems.php │ │ │ ├── hashing.php │ │ │ ├── logging.php │ │ │ ├── mail.php │ │ │ ├── queue.php │ │ │ ├── sanctum.php │ │ │ ├── services.php │ │ │ ├── session.php │ │ │ └── view.php │ │ ├── database │ │ │ ├── .gitignore │ │ │ ├── factories │ │ │ │ ├── OrderFactory.php │ │ │ │ ├── ProductFactory.php │ │ │ │ └── UserFactory.php │ │ │ ├── migrations │ │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ │ ├── 2023_06_24_134554_create_products_table.php │ │ │ │ ├── 2023_06_24_141959_create_orders_table.php │ │ │ │ └── 2023_06_24_141969_create_order_products_table.php │ │ │ └── seeders │ │ │ │ ├── DatabaseSeeder.php │ │ │ │ └── OrderSeeder.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ │ ├── .htaccess │ │ │ ├── favicon.ico │ │ │ ├── index.php │ │ │ └── robots.txt │ │ ├── resources │ │ │ ├── css │ │ │ │ └── app.css │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ └── bootstrap.js │ │ │ └── views │ │ │ │ └── welcome.blade.php │ │ ├── routes │ │ │ ├── api.php │ │ │ ├── channels.php │ │ │ ├── console.php │ │ │ └── web.php │ │ ├── storage │ │ │ ├── app │ │ │ │ ├── .gitignore │ │ │ │ └── public │ │ │ │ │ └── .gitignore │ │ │ ├── framework │ │ │ │ ├── .gitignore │ │ │ │ ├── cache │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitignore │ │ │ │ ├── sessions │ │ │ │ │ └── .gitignore │ │ │ │ ├── testing │ │ │ │ │ └── .gitignore │ │ │ │ └── views │ │ │ │ │ └── .gitignore │ │ │ └── logs │ │ │ │ └── .gitignore │ │ ├── tests │ │ │ ├── CreatesApplication.php │ │ │ ├── Feature │ │ │ │ └── ExampleTest.php │ │ │ ├── TestCase.php │ │ │ └── Unit │ │ │ │ └── ExampleTest.php │ │ └── vite.config.js │ └── P2 │ │ ├── .env.example │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ ├── docker-compose.yml │ │ ├── index.php │ │ ├── nginx.conf │ │ └── src │ │ ├── Config │ │ └── DBConfig.php │ │ ├── Controllers │ │ ├── BaseController.php │ │ └── TaskController.php │ │ ├── Database │ │ ├── DBConnection.php │ │ └── migration.php │ │ ├── Models │ │ ├── BaseModel.php │ │ └── TaskModel.php │ │ ├── Request │ │ ├── IRequest.php │ │ ├── Request.php │ │ ├── Resource.php │ │ └── Router.php │ │ └── router.php ├── SnappShop │ ├── P1 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app │ │ │ ├── Channels │ │ │ │ └── SmsChannel.php │ │ │ ├── Console │ │ │ │ └── Kernel.php │ │ │ ├── Exceptions │ │ │ │ └── Handler.php │ │ │ ├── Http │ │ │ │ ├── Controllers │ │ │ │ │ ├── API │ │ │ │ │ │ └── TransactionController.php │ │ │ │ │ └── Controller.php │ │ │ │ ├── Kernel.php │ │ │ │ ├── Middleware │ │ │ │ │ ├── Authenticate.php │ │ │ │ │ ├── ChangeFaNumbersToEn.php │ │ │ │ │ ├── EncryptCookies.php │ │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ │ ├── TrimStrings.php │ │ │ │ │ ├── TrustHosts.php │ │ │ │ │ ├── TrustProxies.php │ │ │ │ │ ├── ValidateSignature.php │ │ │ │ │ └── VerifyCsrfToken.php │ │ │ │ ├── Requests │ │ │ │ │ └── TransactionRequest.php │ │ │ │ └── Resources │ │ │ │ │ ├── LastTransactionsResource.php │ │ │ │ │ ├── TransactionsResource.php │ │ │ │ │ └── UsersResource.php │ │ │ ├── Interfaces │ │ │ │ ├── Repositories │ │ │ │ │ ├── AccountRepositoryInterface.php │ │ │ │ │ ├── CardRepositoryInterface.php │ │ │ │ │ ├── TransactionRepositoryInterface.php │ │ │ │ │ ├── UserRepositoryInterface.php │ │ │ │ │ └── WageRepositoryInterface.php │ │ │ │ └── Services │ │ │ │ │ └── DoTransactionServiceInterface.php │ │ │ ├── Jobs │ │ │ │ └── SmsJob.php │ │ │ ├── Models │ │ │ │ ├── Account.php │ │ │ │ ├── Card.php │ │ │ │ ├── Transaction.php │ │ │ │ ├── User.php │ │ │ │ └── Wage.php │ │ │ ├── Notifications │ │ │ │ └── SmsToClient.php │ │ │ ├── Providers │ │ │ │ ├── AppServiceProvider.php │ │ │ │ ├── AuthServiceProvider.php │ │ │ │ ├── BroadcastServiceProvider.php │ │ │ │ ├── EventServiceProvider.php │ │ │ │ ├── RepositoyServiceProvider.php │ │ │ │ ├── RouteServiceProvider.php │ │ │ │ └── ServicesServiceProvider.php │ │ │ ├── Repositories │ │ │ │ ├── AccountRepository.php │ │ │ │ ├── CardRepository.php │ │ │ │ ├── TransactionRepository.php │ │ │ │ ├── UserRepository.php │ │ │ │ └── WageRepository.php │ │ │ ├── Rules │ │ │ │ └── ValidIranCardNumberRule.php │ │ │ ├── Services │ │ │ │ └── DoTransactionService.php │ │ │ └── helpers.php │ │ ├── artisan │ │ ├── bootstrap │ │ │ ├── app.php │ │ │ └── cache │ │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ │ ├── app.php │ │ │ ├── auth.php │ │ │ ├── broadcasting.php │ │ │ ├── cache.php │ │ │ ├── cors.php │ │ │ ├── database.php │ │ │ ├── filesystems.php │ │ │ ├── hashing.php │ │ │ ├── logging.php │ │ │ ├── mail.php │ │ │ ├── queue.php │ │ │ ├── sanctum.php │ │ │ ├── services.php │ │ │ ├── session.php │ │ │ └── view.php │ │ ├── database │ │ │ ├── .gitignore │ │ │ ├── factories │ │ │ │ └── UserFactory.php │ │ │ ├── migrations │ │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ │ ├── 2023_09_09_175057_create_accounts_table.php │ │ │ │ ├── 2023_09_09_181608_create_cards_table.php │ │ │ │ ├── 2023_09_09_185414_create_transactions_table.php │ │ │ │ ├── 2023_09_10_160030_create_wages_table.php │ │ │ │ └── 2023_09_11_162928_create_jobs_table.php │ │ │ └── seeders │ │ │ │ ├── AccountSeeder.php │ │ │ │ ├── CardSeeder.php │ │ │ │ ├── DatabaseSeeder.php │ │ │ │ └── UserSeeder.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ │ ├── .htaccess │ │ │ ├── favicon.ico │ │ │ ├── index.php │ │ │ └── robots.txt │ │ ├── resources │ │ │ ├── css │ │ │ │ └── app.css │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ └── bootstrap.js │ │ │ └── views │ │ │ │ └── welcome.blade.php │ │ ├── routes │ │ │ ├── api.php │ │ │ ├── channels.php │ │ │ ├── console.php │ │ │ └── web.php │ │ ├── storage │ │ │ ├── app │ │ │ │ ├── .gitignore │ │ │ │ └── public │ │ │ │ │ └── .gitignore │ │ │ ├── framework │ │ │ │ ├── .gitignore │ │ │ │ ├── cache │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitignore │ │ │ │ ├── sessions │ │ │ │ │ └── .gitignore │ │ │ │ ├── testing │ │ │ │ │ └── .gitignore │ │ │ │ └── views │ │ │ │ │ └── .gitignore │ │ │ └── logs │ │ │ │ └── .gitignore │ │ ├── tests │ │ │ ├── CreatesApplication.php │ │ │ ├── Feature │ │ │ │ └── ExampleTest.php │ │ │ ├── TestCase.php │ │ │ └── Unit │ │ │ │ └── ExampleTest.php │ │ └── vite.config.js │ └── P2 │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Controller.php │ │ │ │ └── V1 │ │ │ │ │ ├── TransactionController.php │ │ │ │ │ └── TransactionReportController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ └── Requests │ │ │ │ └── MoneyTransferRequest.php │ │ ├── Interfaces │ │ │ └── TransactionRepositoryInterface.php │ │ ├── Jobs │ │ │ └── SendSms.php │ │ ├── Models │ │ │ ├── Account.php │ │ │ ├── Card.php │ │ │ ├── Transaction.php │ │ │ ├── User.php │ │ │ └── Wage.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ ├── RouteServiceProvider.php │ │ │ └── SmsServiceProvider.php │ │ ├── Repositories │ │ │ ├── EloquentTransactionRepository.php │ │ │ └── SqlTransactionRepository.php │ │ ├── Rules │ │ │ └── CardNumberFormat.php │ │ ├── Services │ │ │ ├── SmsService │ │ │ │ ├── Ghasedak.php │ │ │ │ ├── Kavenegar.php │ │ │ │ └── SmsServiceInterface.php │ │ │ └── Transaction │ │ │ │ └── TransactionService.php │ │ └── helpers.php │ │ ├── artisan │ │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── AccountFactory.php │ │ │ ├── CardFactory.php │ │ │ ├── TransactionFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ ├── 2023_08_23_144613_create_accounts_table.php │ │ │ ├── 2023_08_23_190756_create_cards_table.php │ │ │ ├── 2023_08_23_190911_create_transactions_table.php │ │ │ ├── 2023_08_23_191030_create_wages_table.php │ │ │ └── 2023_08_25_080045_create_jobs_table.php │ │ └── seeders │ │ │ └── DatabaseSeeder.php │ │ ├── docker-compose.yml │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ ├── lang │ │ │ └── en │ │ │ │ └── messages.php │ │ └── views │ │ │ └── welcome.blade.php │ │ ├── routes │ │ ├── channels.php │ │ ├── console.php │ │ ├── v1.php │ │ └── web.php │ │ ├── snapp.postman_collection.json │ │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ ├── TransactionControllerTest.php │ │ │ └── TransactionReportControllerTest.php │ │ └── TestCase.php │ │ └── vite.config.js ├── Technopay │ ├── .editorconfig │ ├── .env.example │ ├── .gitattributes │ ├── .gitignore │ ├── .phpunit.result.cache │ ├── README.md │ ├── Technopay.md │ ├── app │ │ ├── Console │ │ │ └── Kernel.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Controller.php │ │ │ │ └── OrderController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ └── Resources │ │ │ │ └── OrderFilterResource.php │ │ ├── Jobs │ │ │ ├── SendEmailNotification.php │ │ │ └── SendSmsNotification.php │ │ ├── Models │ │ │ ├── Order.php │ │ │ └── User.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ └── services │ │ │ ├── NotificationService │ │ │ ├── EmailNotification │ │ │ │ └── Email.php │ │ │ ├── NotificationContract.php │ │ │ └── SmsNotification │ │ │ │ └── Sms.php │ │ │ └── OrderService │ │ │ ├── Contracts │ │ │ └── OrderRepositoryInterface.php │ │ │ ├── Repositories │ │ │ └── OrderRepository.php │ │ │ └── Services │ │ │ └── OrderService.php │ ├── artisan │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ ├── challenge-description.png │ ├── challenge-img.png │ ├── composer.json │ ├── composer.lock │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ ├── OrderFactory.php │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2014_10_12_000000_create_users_table.php │ │ │ ├── 2014_10_12_100000_create_password_reset_tokens_table.php │ │ │ ├── 2019_08_19_000000_create_failed_jobs_table.php │ │ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php │ │ │ └── 2024_04_30_154432_create_orders_table.php │ │ └── seeders │ │ │ ├── DatabaseSeeder.php │ │ │ └── OrderSeeder.php │ ├── package.json │ ├── phpunit.xml │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ ├── routes │ │ ├── api.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ └── OrderTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ExampleTest.php │ └── vite.config.js ├── Tehrancreditcard │ ├── NewsChallange │ │ ├── .editorconfig │ │ ├── .env.example │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── README.md │ │ ├── app │ │ │ ├── Filament │ │ │ │ └── Resources │ │ │ │ │ ├── NewsResource.php │ │ │ │ │ ├── NewsResource │ │ │ │ │ └── Pages │ │ │ │ │ │ ├── CreateNews.php │ │ │ │ │ │ ├── EditNews.php │ │ │ │ │ │ ├── ListNews.php │ │ │ │ │ │ └── ViewNews.php │ │ │ │ │ ├── UserResource.php │ │ │ │ │ └── UserResource │ │ │ │ │ └── Pages │ │ │ │ │ ├── CreateUser.php │ │ │ │ │ ├── EditUser.php │ │ │ │ │ ├── ListUsers.php │ │ │ │ │ └── ViewUser.php │ │ │ ├── Http │ │ │ │ └── Controllers │ │ │ │ │ ├── Controller.php │ │ │ │ │ └── NewsController.php │ │ │ ├── Models │ │ │ │ ├── News.php │ │ │ │ └── User.php │ │ │ ├── Providers │ │ │ │ ├── AppServiceProvider.php │ │ │ │ └── Filament │ │ │ │ │ └── AdminPanelProvider.php │ │ │ └── Services │ │ │ │ ├── GuardianService.php │ │ │ │ └── NewsAPIService.php │ │ ├── artisan │ │ ├── bootstrap │ │ │ ├── app.php │ │ │ ├── cache │ │ │ │ └── .gitignore │ │ │ └── providers.php │ │ ├── composer.json │ │ ├── composer.lock │ │ ├── config │ │ │ ├── app.php │ │ │ ├── auth.php │ │ │ ├── cache.php │ │ │ ├── database.php │ │ │ ├── filesystems.php │ │ │ ├── logging.php │ │ │ ├── mail.php │ │ │ ├── queue.php │ │ │ ├── sanctum.php │ │ │ ├── services.php │ │ │ └── session.php │ │ ├── database │ │ │ ├── .gitignore │ │ │ ├── factories │ │ │ │ └── UserFactory.php │ │ │ ├── migrations │ │ │ │ ├── 0001_01_01_000000_create_users_table.php │ │ │ │ ├── 0001_01_01_000001_create_cache_table.php │ │ │ │ ├── 0001_01_01_000002_create_jobs_table.php │ │ │ │ ├── 2024_08_18_180729_create_news_table.php │ │ │ │ └── 2024_08_18_182053_create_personal_access_tokens_table.php │ │ │ └── seeders │ │ │ │ └── DatabaseSeeder.php │ │ ├── package.json │ │ ├── phpunit.xml │ │ ├── public │ │ │ ├── .htaccess │ │ │ ├── css │ │ │ │ └── filament │ │ │ │ │ ├── filament │ │ │ │ │ └── app.css │ │ │ │ │ ├── forms │ │ │ │ │ └── forms.css │ │ │ │ │ └── support │ │ │ │ │ └── support.css │ │ │ ├── favicon.ico │ │ │ ├── index.php │ │ │ ├── js │ │ │ │ └── filament │ │ │ │ │ ├── filament │ │ │ │ │ ├── app.js │ │ │ │ │ └── echo.js │ │ │ │ │ ├── forms │ │ │ │ │ └── components │ │ │ │ │ │ ├── color-picker.js │ │ │ │ │ │ ├── date-time-picker.js │ │ │ │ │ │ ├── file-upload.js │ │ │ │ │ │ ├── key-value.js │ │ │ │ │ │ ├── markdown-editor.js │ │ │ │ │ │ ├── rich-editor.js │ │ │ │ │ │ ├── select.js │ │ │ │ │ │ ├── tags-input.js │ │ │ │ │ │ └── textarea.js │ │ │ │ │ ├── notifications │ │ │ │ │ └── notifications.js │ │ │ │ │ ├── support │ │ │ │ │ ├── async-alpine.js │ │ │ │ │ └── support.js │ │ │ │ │ ├── tables │ │ │ │ │ └── components │ │ │ │ │ │ └── table.js │ │ │ │ │ └── widgets │ │ │ │ │ └── components │ │ │ │ │ ├── chart.js │ │ │ │ │ └── stats-overview │ │ │ │ │ └── stat │ │ │ │ │ └── chart.js │ │ │ └── robots.txt │ │ ├── resources │ │ │ ├── css │ │ │ │ └── app.css │ │ │ ├── js │ │ │ │ ├── app.js │ │ │ │ └── bootstrap.js │ │ │ └── views │ │ │ │ └── news │ │ │ │ ├── index.blade.php │ │ │ │ └── show.blade.php │ │ ├── routes │ │ │ ├── api.php │ │ │ ├── console.php │ │ │ └── web.php │ │ ├── storage │ │ │ ├── app │ │ │ │ ├── .gitignore │ │ │ │ └── public │ │ │ │ │ └── .gitignore │ │ │ ├── framework │ │ │ │ ├── .gitignore │ │ │ │ ├── cache │ │ │ │ │ ├── .gitignore │ │ │ │ │ └── data │ │ │ │ │ │ └── .gitignore │ │ │ │ ├── sessions │ │ │ │ │ └── .gitignore │ │ │ │ ├── testing │ │ │ │ │ └── .gitignore │ │ │ │ └── views │ │ │ │ │ └── .gitignore │ │ │ └── logs │ │ │ │ └── .gitignore │ │ ├── tests │ │ │ ├── Feature │ │ │ │ └── ExampleTest.php │ │ │ ├── TestCase.php │ │ │ └── Unit │ │ │ │ └── ExampleTest.php │ │ └── vite.config.js │ └── tehrancreditcard_project.jpg └── Turpal │ ├── P1 │ ├── .editorconfig │ ├── .env.example │ ├── .gitattributes │ ├── .gitignore │ ├── README.md │ ├── app │ │ ├── Abstracts │ │ │ └── AbstractProvider.php │ │ ├── Console │ │ │ ├── Commands │ │ │ │ └── FetchData │ │ │ │ │ └── FetchProducts.php │ │ │ └── Kernel.php │ │ ├── Constants │ │ │ └── ProductTypeConstant.php │ │ ├── Exceptions │ │ │ └── Handler.php │ │ ├── Http │ │ │ ├── Controllers │ │ │ │ ├── Controller.php │ │ │ │ └── Product │ │ │ │ │ └── ProductController.php │ │ │ ├── Kernel.php │ │ │ ├── Middleware │ │ │ │ ├── Authenticate.php │ │ │ │ ├── EncryptCookies.php │ │ │ │ ├── PreventRequestsDuringMaintenance.php │ │ │ │ ├── RedirectIfAuthenticated.php │ │ │ │ ├── TrimStrings.php │ │ │ │ ├── TrustHosts.php │ │ │ │ ├── TrustProxies.php │ │ │ │ ├── ValidateSignature.php │ │ │ │ └── VerifyCsrfToken.php │ │ │ ├── Requests │ │ │ │ └── Product │ │ │ │ │ └── ProductRequest.php │ │ │ └── Resources │ │ │ │ └── Product │ │ │ │ └── ProductResource.php │ │ ├── Models │ │ │ ├── Availability.php │ │ │ ├── ImportData.php │ │ │ ├── Product.php │ │ │ ├── ProductType.php │ │ │ └── User.php │ │ ├── Providers │ │ │ ├── AppServiceProvider.php │ │ │ ├── AuthServiceProvider.php │ │ │ ├── BroadcastServiceProvider.php │ │ │ ├── EventServiceProvider.php │ │ │ └── RouteServiceProvider.php │ │ ├── Repositories │ │ │ ├── AvailabilityRepository.php │ │ │ ├── ImportDataRepository.php │ │ │ └── ProductRepository.php │ │ └── Services │ │ │ └── Providers │ │ │ ├── HeavenlyProvider.php │ │ │ └── MajestyProvider.php │ ├── artisan │ ├── bootstrap │ │ ├── app.php │ │ └── cache │ │ │ └── .gitignore │ ├── composer.json │ ├── composer.lock │ ├── composer.phar │ ├── config │ │ ├── app.php │ │ ├── auth.php │ │ ├── broadcasting.php │ │ ├── cache.php │ │ ├── cors.php │ │ ├── database.php │ │ ├── filesystems.php │ │ ├── hashing.php │ │ ├── logging.php │ │ ├── mail.php │ │ ├── queue.php │ │ ├── sanctum.php │ │ ├── services.php │ │ ├── session.php │ │ └── view.php │ ├── database │ │ ├── .gitignore │ │ ├── factories │ │ │ └── UserFactory.php │ │ ├── migrations │ │ │ ├── 2022_10_23_185316_create_products_table.php │ │ │ ├── 2022_10_23_185536_create_availabilities_table.php │ │ │ ├── 2022_11_02_191442_create_product_types_table.php │ │ │ └── 2022_11_02_191449_create_import_data_table.php │ │ └── seeders │ │ │ ├── DatabaseSeeder.php │ │ │ └── ProductTypeSeeder.php │ ├── lang │ │ └── en │ │ │ ├── auth.php │ │ │ ├── pagination.php │ │ │ ├── passwords.php │ │ │ └── validation.php │ ├── package.json │ ├── phpunit.xml │ ├── public │ │ ├── .htaccess │ │ ├── favicon.ico │ │ ├── index.php │ │ └── robots.txt │ ├── resources │ │ ├── css │ │ │ └── app.css │ │ ├── js │ │ │ ├── app.js │ │ │ └── bootstrap.js │ │ └── views │ │ │ └── welcome.blade.php │ ├── routes │ │ ├── api.php │ │ ├── channels.php │ │ ├── console.php │ │ └── web.php │ ├── storage │ │ ├── app │ │ │ ├── .gitignore │ │ │ └── public │ │ │ │ └── .gitignore │ │ ├── framework │ │ │ ├── .gitignore │ │ │ ├── cache │ │ │ │ ├── .gitignore │ │ │ │ └── data │ │ │ │ │ └── .gitignore │ │ │ ├── sessions │ │ │ │ └── .gitignore │ │ │ ├── testing │ │ │ │ └── .gitignore │ │ │ └── views │ │ │ │ └── .gitignore │ │ └── logs │ │ │ └── .gitignore │ ├── tests │ │ ├── CreatesApplication.php │ │ ├── Feature │ │ │ └── ExampleTest.php │ │ ├── TestCase.php │ │ └── Unit │ │ │ └── ExampleTest.php │ └── vite.config.js │ └── Turpal_logo.png └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /.vscode -------------------------------------------------------------------------------- /Interview Challenges/7learn/1.md: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /Interview Challenges/7learn/2.md: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /Interview Challenges/Private Companies/C1/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.blade.php diff=html 4 | *.css diff=css 5 | *.html diff=html 6 | *.md diff=markdown 7 | *.php diff=php 8 | 9 | /.github export-ignore 10 | CHANGELOG.md export-ignore 11 | .styleci.yml export-ignore 12 | -------------------------------------------------------------------------------- /Interview Challenges/Private Companies/C1/app/Repositories/Comment/CommentRepositoryInterface.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Projects/7learn/P1/tools/php-cs-fixer/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require-dev": { 3 | "friendsofphp/php-cs-fixer": "^3.48" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /Projects/7learn/P1/tools/php-cs-fixer/vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | . 4 | -------------------------------------------------------------------------------- /Projects/7learn/P1/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/7learn/P1/tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/logo.png -------------------------------------------------------------------------------- /Projects/7learn/P1/tools/php-cs-fixer/vendor/psr/container/.gitignore: -------------------------------------------------------------------------------- 1 | composer.lock 2 | composer.phar 3 | /vendor/ 4 | -------------------------------------------------------------------------------- /Projects/7learn/P1/tools/php-cs-fixer/vendor/psr/container/src/ContainerExceptionInterface.php: -------------------------------------------------------------------------------- 1 | assertTrue(true); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Projects/Abrarvan/P1/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import laravel from 'laravel-vite-plugin'; 3 | 4 | export default defineConfig({ 5 | plugins: [ 6 | laravel({ 7 | input: ['resources/css/app.css', 'resources/js/app.js'], 8 | refresh: true, 9 | }), 10 | ], 11 | }); 12 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 4 7 | indent_style = space 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.{yml,yaml}] 15 | indent_size = 2 16 | 17 | [docker-compose.yml] 18 | indent_size = 4 19 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.blade.php diff=html 4 | *.css diff=css 5 | *.html diff=html 6 | *.md diff=markdown 7 | *.php diff=php 8 | 9 | /.github export-ignore 10 | CHANGELOG.md export-ignore 11 | .styleci.yml export-ignore 12 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/.gitignore: -------------------------------------------------------------------------------- 1 | /.phpunit.cache 2 | /node_modules 3 | /public/build 4 | /public/hot 5 | /public/storage 6 | /storage/*.key 7 | /vendor 8 | .env 9 | .env.backup 10 | .env.production 11 | .phpunit.result.cache 12 | Homestead.json 13 | Homestead.yaml 14 | auth.json 15 | npm-debug.log 16 | yarn-error.log 17 | /.fleet 18 | /.idea 19 | /.vscode 20 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/.rnd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/.rnd -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/App/Http/Controllers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Acl/App/Http/Controllers/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/App/Providers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Acl/App/Providers/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/Database/Seeders/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Acl/Database/Seeders/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/config/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Acl/config/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/config/config.php: -------------------------------------------------------------------------------- 1 | 'Acl', 5 | ]; 6 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Acl", 3 | "alias": "acl", 4 | "description": "", 5 | "keywords": [], 6 | "priority": 0, 7 | "providers": [ 8 | "Modules\\Acl\\App\\Providers\\AclServiceProvider" 9 | ], 10 | "files": [] 11 | } 12 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/resources/assets/js/app.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Acl/resources/assets/js/app.js -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/resources/assets/sass/app.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Acl/resources/assets/sass/app.scss -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/resources/views/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Acl/resources/views/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/resources/views/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('acl::layouts.master') 2 | 3 | @section('content') 4 |
Module: {!! config('acl.name') !!}
7 | @endsection 8 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Acl/routes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Acl/routes/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/App/Http/Controllers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Article/App/Http/Controllers/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/App/Providers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Article/App/Providers/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/Database/Seeders/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Article/Database/Seeders/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/config/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Article/config/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/config/config.php: -------------------------------------------------------------------------------- 1 | 'Article', 5 | ]; 6 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Article", 3 | "alias": "article", 4 | "description": "", 5 | "keywords": [], 6 | "priority": 0, 7 | "providers": [ 8 | "Modules\\Article\\App\\Providers\\ArticleServiceProvider" 9 | ], 10 | "files": [] 11 | } 12 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/resources/assets/js/app.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Article/resources/assets/js/app.js -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/resources/assets/sass/app.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Article/resources/assets/sass/app.scss -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/resources/views/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Article/resources/views/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/resources/views/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('article::layouts.master') 2 | 3 | @section('content') 4 |Module: {!! config('article.name') !!}
7 | @endsection 8 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/Modules/Article/routes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/Modules/Article/routes/.gitkeep -------------------------------------------------------------------------------- /Projects/Alibaba/P1/bootstrap/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite* 2 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/modules_statuses.json: -------------------------------------------------------------------------------- 1 | { 2 | "Acl": true, 3 | "Article": true 4 | } 5 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "type": "module", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "vite build" 7 | }, 8 | "devDependencies": { 9 | "axios": "^1.1.2", 10 | "laravel-vite-plugin": "^0.8.0", 11 | "vite": "^4.0.0" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/public/favicon.ico -------------------------------------------------------------------------------- /Projects/Alibaba/P1/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/resources/css/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P1/resources/css/app.css -------------------------------------------------------------------------------- /Projects/Alibaba/P1/resources/js/app.js: -------------------------------------------------------------------------------- 1 | import './bootstrap'; 2 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | compiled.php 2 | config.php 3 | down 4 | events.scanned.php 5 | maintenance.php 6 | routes.php 7 | routes.scanned.php 8 | schedule-* 9 | services.json 10 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !data/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/framework/cache/data/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/framework/testing/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P1/tests/TestCase.php: -------------------------------------------------------------------------------- 1 | /etc/nginx/conf.d/default.conf 4 | exec nginx -g "daemon off;" 5 | -------------------------------------------------------------------------------- /Projects/Alibaba/P2/docker/php/laravel.ini: -------------------------------------------------------------------------------- 1 | date.timezone=UTC 2 | display_errors=Off 3 | log_errors=On 4 | 5 | memory_limit=256M 6 | upload_max_filesize=20M 7 | post_max_size=20M 8 | max_execution_time=600 9 | default_socket_timeout=3600 10 | request_terminate_timeout=600 11 | -------------------------------------------------------------------------------- /Projects/Alibaba/P2/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /Projects/Alibaba/P2/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laravel98developer/laravel-hiring-projects/14c8864e26175a145078578b12bc8f05e2fc0ac0/Projects/Alibaba/P2/public/favicon.ico -------------------------------------------------------------------------------- /Projects/Alibaba/P2/public/hot: -------------------------------------------------------------------------------- 1 | http://127.0.0.1:5173 -------------------------------------------------------------------------------- /Projects/Alibaba/P2/public/my_custom_symlink_1: -------------------------------------------------------------------------------- 1 | /usr/src/app/storage/app/folder1 -------------------------------------------------------------------------------- /Projects/Alibaba/P2/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /Projects/Alibaba/P2/resources/css/app.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /Projects/Alibaba/P2/resources/js/app.js: -------------------------------------------------------------------------------- 1 | import './bootstrap'; 2 | 3 | import Alpine from 'alpinejs'; 4 | 5 | window.Alpine = Alpine; 6 | 7 | Alpine.start(); 8 | -------------------------------------------------------------------------------- /Projects/Alibaba/P2/resources/views/components/auth-session-status.blade.php: -------------------------------------------------------------------------------- 1 | @props(['status']) 2 | 3 | @if ($status) 4 |