codingmatters/client-management-package
Laravel package for managing clients in your application. Provides a foundation for client records and related workflows so you can add, update, and organize client data consistently across projects.
ClientCreated, PartnerStatusUpdated).Partner vs. Client as interchangeable terms).Gate/Policy system, or does it enforce its own?PartnerValidation) might need adaptation for public use.api-resources or spatie/laravel-api patterns.clients/partners tables with proprietary fields (e.g., contract_id, billing_cycle). Evaluate:
users table or requires a separate partners table?).is_active, tier_level).create, update, delete) but may include business logic (e.g., auto-generating partner_id).Client ↔ Project/Invoice/User relationships. Check for:
Client belongs to User but also has many Projects).getFullNameAttribute()).draft → active → terminated).ClientUpdated events or use Laravel’s Observers?@codingmatters/*).^8.0 vs. ^10.0).spatie/laravel-permission for role-based access)..env keys (e.g., PARTNER_API_KEY) or unpublished configs.__call/__get overrides that break expectations.Client updates).tier_level column) may require downtime.Partner roles) could conflict with existing seeds.Partner workflow (e.g., onboarding/offboarding) be decoupled from internal APIs?auth system, or does it require a separate Partner auth table?/admin/partners) that would expose sensitive data?with()) or lazy collections that could cause memory issues at scale?Illuminate\Support\Collection::when(), ensure your Laravel version supports it.utf8mb4_unicode_ci).ClientManagementServiceProvider vs. existing AppServiceProvider).config:clear and cache:clear post-integration to avoid stale bindings.@codingmatters/*).spatie/laravel-permission for RBAC).users table with partner_fields (e.g., is_partner, tier).partners table and link via user_id (recommended for separation of concerns).Schema::create('partners', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained()->cascadeOnDelete();
$table->string('tier')->default('basic');
$table->timestamps();
});
php artisan vendor:publish --provider="CodingMatters\ClientManagement\ClientManagementServiceProvider"
Client model to add custom logic).routes/api.php or routes/web.php:
Route::middleware(['auth:sanctum'])->group(function () {
require __DIR__.'/client-management-routes.php';
});
can() or package-specific middleware.SendPartnerWelcomeEmail)? Ensure your queue worker (queue:work) is configured.PartnerInvitation) and replace with Laravel’s Notifiable interface.ClientCreated) and extend logic:
Event::listen(ClientCreated::class, function ($event) {
// Custom logic (e.g., log to analytics)
});
laravel/breeze/laravel/jetstream (if managing users/partners).spatie/laravel-permission (if the package includes its own RBAC).composer install and php artisan package:discover to test isolation.HttpTests or FeatureTests.Method Illuminate\Support\Collection::pluck() does not exist).How can I help you explore Laravel packages today?