{
    "$schema": "https://getcomposer.org/schema.json",
    "name": "tourism-platform/api",
    "type": "project",
    "description": "Multi-tenant tourism booking platform API — modular monolith behind contracts/openapi.yaml.",
    "keywords": ["tourism", "booking", "multi-tenant"],
    "license": "proprietary",
    "require": {
        "php": "^8.4",
        "darkaonline/l5-swagger": "^11.1",
        "laravel/framework": "^13.17",
        "laravel/tinker": "^3.0"
    },
    "require-dev": {
        "fakerphp/faker": "^1.23",
        "larastan/larastan": "^3.10",
        "laravel/pail": "^1.2.5",
        "laravel/pint": "^1.27",
        "mockery/mockery": "^1.6",
        "nunomaduro/collision": "^8.6",
        "pestphp/pest": "^5.1",
        "pestphp/pest-plugin-laravel": "^5.0",
        "phpunit/phpunit": "^13.3"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Modules\\": "Modules/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "pre-package-uninstall": [
            "Illuminate\\Foundation\\ComposerScripts::prePackageUninstall"
        ],
        "test": "pest",
        "test:unit": "pest --testsuite=Unit",
        "test:feature": "pest --testsuite=Feature",
        "test:integration": "pest --testsuite=Integration",
        "test:contract": "pest --testsuite=Contract",
        "test:coverage": "pest --coverage --min=85 --testsuite=Unit",
        "lint": "pint --test",
        "lint:fix": "pint",
        "analyse": "phpstan analyse --memory-limit=1G",
        "check": [
            "@lint",
            "@analyse",
            "@test"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "platform": {
            "php": "8.4.1"
        },
        "allow-plugins": {
            "pestphp/pest-plugin": true,
            "php-http/discovery": true
        }
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}
