├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ └── config.yml ├── dependabot.yml └── workflows │ ├── dependabot-auto-merge.yml │ ├── run-pest.yml │ └── update-changelog.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── UPGRADE.md ├── composer.json ├── composer.lock ├── config └── approval.php ├── database └── migrations │ ├── 2022_02_12_195950_create_approvals_table.php │ ├── 2023_10_09_204810_add_rolled_back_at_column_to_approvals_table.php │ ├── 2023_11_17_002135_add_audited_by_column_to_approvals_table.php │ ├── 2024_03_16_173148_add_foreign_id_column_to_approvals_table.php │ ├── 2025_03_04_000001_add_creator_to_approvals_table.php │ ├── 2025_03_14_062513_add_expiration_columns_to_approvals_table.php │ └── 2025_03_15_123355_add_custom_state_to_approvals_table.php ├── phpstan.neon.dist ├── phpunit.xml ├── pint.json ├── rector.php ├── src ├── ApprovalServiceProvider.php ├── Concerns │ ├── MustBeApproved.php │ └── MustBeApprovedFactory.php ├── Console │ └── Commands │ │ ├── ProcessExpiredApprovalsCommand.php │ │ └── UpgradeToV2Command.php ├── Enums │ └── ApprovalStatus.php ├── Events │ ├── ApprovalCreated.php │ ├── ApprovalExpired.php │ ├── ModelApproved.php │ ├── ModelRejected.php │ ├── ModelRolledBackEvent.php │ └── ModelSetPending.php ├── Facades │ └── Approval.php ├── Models │ └── Approval.php └── Scopes │ └── ApprovalStateScope.php ├── testbench.yaml ├── tests ├── Feature │ ├── ConfigurableApprovalStatesTest.php │ ├── Factories │ │ └── FakeModelFactory.php │ ├── Models │ │ └── ApprovalTest.php │ ├── MustBeApprovedFactoryTraitTest.php │ ├── MustBeApprovedTraitTest.php │ ├── Scopes │ │ └── ApprovalStateScopeTest.php │ └── UpgradeToV2CommandTest.php ├── Models │ ├── FakeModel.php │ └── FakeUser.php ├── Pest.php ├── TestCase.php ├── Traits │ └── WithTestUser.php └── database │ └── migrations │ ├── 2022_06_20_231650_create_fake_model_table.php │ └── 2024_12_03_110050_create_fake_user_table.php └── workbench ├── app ├── Models │ ├── .gitkeep │ └── User.php └── Providers │ └── WorkbenchServiceProvider.php ├── bootstrap ├── app.php └── providers.php ├── database ├── factories │ ├── .gitkeep │ └── UserFactory.php ├── migrations │ └── .gitkeep └── seeders │ └── DatabaseSeeder.php ├── resources └── views │ └── .gitkeep ├── routes ├── console.php └── web.php └── storage /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/.github/ISSUE_TEMPLATE/config.yml -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/dependabot-auto-merge.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/.github/workflows/dependabot-auto-merge.yml -------------------------------------------------------------------------------- /.github/workflows/run-pest.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/.github/workflows/run-pest.yml -------------------------------------------------------------------------------- /.github/workflows/update-changelog.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/.github/workflows/update-changelog.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/README.md -------------------------------------------------------------------------------- /UPGRADE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/UPGRADE.md -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/composer.json -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/composer.lock -------------------------------------------------------------------------------- /config/approval.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/config/approval.php -------------------------------------------------------------------------------- /database/migrations/2022_02_12_195950_create_approvals_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/database/migrations/2022_02_12_195950_create_approvals_table.php -------------------------------------------------------------------------------- /database/migrations/2023_10_09_204810_add_rolled_back_at_column_to_approvals_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/database/migrations/2023_10_09_204810_add_rolled_back_at_column_to_approvals_table.php -------------------------------------------------------------------------------- /database/migrations/2023_11_17_002135_add_audited_by_column_to_approvals_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/database/migrations/2023_11_17_002135_add_audited_by_column_to_approvals_table.php -------------------------------------------------------------------------------- /database/migrations/2024_03_16_173148_add_foreign_id_column_to_approvals_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/database/migrations/2024_03_16_173148_add_foreign_id_column_to_approvals_table.php -------------------------------------------------------------------------------- /database/migrations/2025_03_04_000001_add_creator_to_approvals_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/database/migrations/2025_03_04_000001_add_creator_to_approvals_table.php -------------------------------------------------------------------------------- /database/migrations/2025_03_14_062513_add_expiration_columns_to_approvals_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/database/migrations/2025_03_14_062513_add_expiration_columns_to_approvals_table.php -------------------------------------------------------------------------------- /database/migrations/2025_03_15_123355_add_custom_state_to_approvals_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/database/migrations/2025_03_15_123355_add_custom_state_to_approvals_table.php -------------------------------------------------------------------------------- /phpstan.neon.dist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/phpstan.neon.dist -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/phpunit.xml -------------------------------------------------------------------------------- /pint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/pint.json -------------------------------------------------------------------------------- /rector.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/rector.php -------------------------------------------------------------------------------- /src/ApprovalServiceProvider.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/ApprovalServiceProvider.php -------------------------------------------------------------------------------- /src/Concerns/MustBeApproved.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Concerns/MustBeApproved.php -------------------------------------------------------------------------------- /src/Concerns/MustBeApprovedFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Concerns/MustBeApprovedFactory.php -------------------------------------------------------------------------------- /src/Console/Commands/ProcessExpiredApprovalsCommand.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Console/Commands/ProcessExpiredApprovalsCommand.php -------------------------------------------------------------------------------- /src/Console/Commands/UpgradeToV2Command.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Console/Commands/UpgradeToV2Command.php -------------------------------------------------------------------------------- /src/Enums/ApprovalStatus.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Enums/ApprovalStatus.php -------------------------------------------------------------------------------- /src/Events/ApprovalCreated.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Events/ApprovalCreated.php -------------------------------------------------------------------------------- /src/Events/ApprovalExpired.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Events/ApprovalExpired.php -------------------------------------------------------------------------------- /src/Events/ModelApproved.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Events/ModelApproved.php -------------------------------------------------------------------------------- /src/Events/ModelRejected.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Events/ModelRejected.php -------------------------------------------------------------------------------- /src/Events/ModelRolledBackEvent.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Events/ModelRolledBackEvent.php -------------------------------------------------------------------------------- /src/Events/ModelSetPending.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Events/ModelSetPending.php -------------------------------------------------------------------------------- /src/Facades/Approval.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Facades/Approval.php -------------------------------------------------------------------------------- /src/Models/Approval.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Models/Approval.php -------------------------------------------------------------------------------- /src/Scopes/ApprovalStateScope.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/src/Scopes/ApprovalStateScope.php -------------------------------------------------------------------------------- /testbench.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/testbench.yaml -------------------------------------------------------------------------------- /tests/Feature/ConfigurableApprovalStatesTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Feature/ConfigurableApprovalStatesTest.php -------------------------------------------------------------------------------- /tests/Feature/Factories/FakeModelFactory.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Feature/Factories/FakeModelFactory.php -------------------------------------------------------------------------------- /tests/Feature/Models/ApprovalTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Feature/Models/ApprovalTest.php -------------------------------------------------------------------------------- /tests/Feature/MustBeApprovedFactoryTraitTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Feature/MustBeApprovedFactoryTraitTest.php -------------------------------------------------------------------------------- /tests/Feature/MustBeApprovedTraitTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Feature/MustBeApprovedTraitTest.php -------------------------------------------------------------------------------- /tests/Feature/Scopes/ApprovalStateScopeTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Feature/Scopes/ApprovalStateScopeTest.php -------------------------------------------------------------------------------- /tests/Feature/UpgradeToV2CommandTest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Feature/UpgradeToV2CommandTest.php -------------------------------------------------------------------------------- /tests/Models/FakeModel.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Models/FakeModel.php -------------------------------------------------------------------------------- /tests/Models/FakeUser.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Models/FakeUser.php -------------------------------------------------------------------------------- /tests/Pest.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Pest.php -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/TestCase.php -------------------------------------------------------------------------------- /tests/Traits/WithTestUser.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/Traits/WithTestUser.php -------------------------------------------------------------------------------- /tests/database/migrations/2022_06_20_231650_create_fake_model_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/database/migrations/2022_06_20_231650_create_fake_model_table.php -------------------------------------------------------------------------------- /tests/database/migrations/2024_12_03_110050_create_fake_user_table.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/tests/database/migrations/2024_12_03_110050_create_fake_user_table.php -------------------------------------------------------------------------------- /workbench/app/Models/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workbench/app/Models/User.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/workbench/app/Models/User.php -------------------------------------------------------------------------------- /workbench/app/Providers/WorkbenchServiceProvider.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/workbench/app/Providers/WorkbenchServiceProvider.php -------------------------------------------------------------------------------- /workbench/bootstrap/app.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjmellor/approval/HEAD/workbench/bootstrap/app.php -------------------------------------------------------------------------------- /workbench/bootstrap/providers.php: -------------------------------------------------------------------------------- 1 |