chore: fix pint code style and add test config
Some checks failed
CI / tests (push) Failing after 1m25s
Some checks failed
CI / tests (push) Failing after 1m25s
Add phpunit.xml and tests/Pest.php for standalone test execution. Apply Laravel Pint formatting fixes across all source files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
3246ffe7af
commit
082be5ad90
61 changed files with 167 additions and 125 deletions
6
Boot.php
6
Boot.php
|
|
@ -8,14 +8,14 @@ use Core\Events\AdminPanelBooting;
|
||||||
use Core\Events\ApiRoutesRegistering;
|
use Core\Events\ApiRoutesRegistering;
|
||||||
use Core\Events\ConsoleBooting;
|
use Core\Events\ConsoleBooting;
|
||||||
use Core\Events\WebRoutesRegistering;
|
use Core\Events\WebRoutesRegistering;
|
||||||
use Illuminate\Support\Facades\Event;
|
|
||||||
use Illuminate\Support\Facades\Route;
|
|
||||||
use Illuminate\Support\ServiceProvider;
|
|
||||||
use Core\Mod\Commerce\Listeners\ProvisionSocialHostSubscription;
|
use Core\Mod\Commerce\Listeners\ProvisionSocialHostSubscription;
|
||||||
use Core\Mod\Commerce\Listeners\RewardAgentReferralOnSubscription;
|
use Core\Mod\Commerce\Listeners\RewardAgentReferralOnSubscription;
|
||||||
use Core\Mod\Commerce\Services\PaymentGateway\BTCPayGateway;
|
use Core\Mod\Commerce\Services\PaymentGateway\BTCPayGateway;
|
||||||
use Core\Mod\Commerce\Services\PaymentGateway\PaymentGatewayContract;
|
use Core\Mod\Commerce\Services\PaymentGateway\PaymentGatewayContract;
|
||||||
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
||||||
|
use Illuminate\Support\Facades\Event;
|
||||||
|
use Illuminate\Support\Facades\Route;
|
||||||
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Commerce Module Boot
|
* Commerce Module Boot
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Concerns;
|
namespace Core\Mod\Commerce\Concerns;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
|
||||||
use Core\Mod\Commerce\Models\ContentOverride;
|
use Core\Mod\Commerce\Models\ContentOverride;
|
||||||
use Core\Mod\Commerce\Models\Entity;
|
use Core\Mod\Commerce\Models\Entity;
|
||||||
use Core\Mod\Commerce\Services\ContentOverrideService;
|
use Core\Mod\Commerce\Services\ContentOverrideService;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trait for models that can have content overrides.
|
* Trait for models that can have content overrides.
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Console;
|
namespace Core\Mod\Commerce\Console;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Core\Mod\Commerce\Models\Order;
|
|
||||||
|
|
||||||
class CleanupExpiredOrders extends Command
|
class CleanupExpiredOrders extends Command
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Console;
|
namespace Core\Mod\Commerce\Console;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
|
||||||
use Core\Mod\Commerce\Services\ReferralService;
|
use Core\Mod\Commerce\Services\ReferralService;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mature referral commissions that are past their maturation date.
|
* Mature referral commissions that are past their maturation date.
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ declare(strict_types=1);
|
||||||
namespace Core\Mod\Commerce\Console;
|
namespace Core\Mod\Commerce\Console;
|
||||||
|
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Mod\Trees\Models\TreePlanting;
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Mod\Trees\Models\TreePlanting;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plants trees for active subscribers.
|
* Plants trees for active subscribers.
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Console;
|
namespace Core\Mod\Commerce\Console;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Services\DunningService;
|
use Core\Mod\Commerce\Services\DunningService;
|
||||||
use Core\Mod\Commerce\Services\SubscriptionService;
|
use Core\Mod\Commerce\Services\SubscriptionService;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class ProcessDunning extends Command
|
class ProcessDunning extends Command
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Console;
|
namespace Core\Mod\Commerce\Console;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
|
||||||
use Core\Mod\Commerce\Services\CurrencyService;
|
use Core\Mod\Commerce\Services\CurrencyService;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Refresh exchange rates from configured provider.
|
* Refresh exchange rates from configured provider.
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Console;
|
namespace Core\Mod\Commerce\Console;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Core\Mod\Commerce\Services\UsageBillingService;
|
use Core\Mod\Commerce\Services\UsageBillingService;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sync usage records to Stripe metered billing.
|
* Sync usage records to Stripe metered billing.
|
||||||
|
|
|
||||||
|
|
@ -5,17 +5,17 @@ declare(strict_types=1);
|
||||||
namespace Core\Mod\Commerce\Controllers\Api;
|
namespace Core\Mod\Commerce\Controllers\Api;
|
||||||
|
|
||||||
use Core\Front\Controller;
|
use Core\Front\Controller;
|
||||||
use Core\Tenant\Models\Package;
|
|
||||||
use Core\Tenant\Models\Workspace;
|
|
||||||
use Illuminate\Http\JsonResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Core\Mod\Commerce\Models\Invoice;
|
use Core\Mod\Commerce\Models\Invoice;
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Core\Mod\Commerce\Services\CommerceService;
|
use Core\Mod\Commerce\Services\CommerceService;
|
||||||
use Core\Mod\Commerce\Services\InvoiceService;
|
use Core\Mod\Commerce\Services\InvoiceService;
|
||||||
use Core\Mod\Commerce\Services\SubscriptionService;
|
use Core\Mod\Commerce\Services\SubscriptionService;
|
||||||
|
use Core\Tenant\Models\Package;
|
||||||
|
use Core\Tenant\Models\Workspace;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Commerce REST API for MCP agents and external integrations.
|
* Commerce REST API for MCP agents and external integrations.
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,6 @@ namespace Core\Mod\Commerce\Controllers\Webhooks;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Core\Front\Controller;
|
use Core\Front\Controller;
|
||||||
use Core\Tenant\Models\Workspace;
|
|
||||||
use Core\Tenant\Services\EntitlementService;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Core\Mod\Commerce\Models\Payment;
|
use Core\Mod\Commerce\Models\Payment;
|
||||||
use Core\Mod\Commerce\Models\PaymentMethod;
|
use Core\Mod\Commerce\Models\PaymentMethod;
|
||||||
|
|
@ -26,6 +20,12 @@ use Core\Mod\Commerce\Services\InvoiceService;
|
||||||
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
||||||
use Core\Mod\Commerce\Services\WebhookLogger;
|
use Core\Mod\Commerce\Services\WebhookLogger;
|
||||||
use Core\Mod\Commerce\Services\WebhookRateLimiter;
|
use Core\Mod\Commerce\Services\WebhookRateLimiter;
|
||||||
|
use Core\Tenant\Models\Workspace;
|
||||||
|
use Core\Tenant\Services\EntitlementService;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Http\Response;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle Stripe webhooks.
|
* Handle Stripe webhooks.
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Events;
|
namespace Core\Mod\Commerce\Events;
|
||||||
|
|
||||||
use Illuminate\Foundation\Events\Dispatchable;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Core\Mod\Commerce\Models\Payment;
|
use Core\Mod\Commerce\Models\Payment;
|
||||||
|
use Illuminate\Foundation\Events\Dispatchable;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event fired when an order is successfully paid.
|
* Event fired when an order is successfully paid.
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Exceptions;
|
namespace Core\Mod\Commerce\Exceptions;
|
||||||
|
|
||||||
use Exception;
|
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
|
use Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exception thrown when a subscription has exceeded its pause cycle limit.
|
* Exception thrown when a subscription has exceeded its pause cycle limit.
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Listeners;
|
namespace Core\Mod\Commerce\Listeners;
|
||||||
|
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Events\OrderPaid;
|
use Core\Mod\Commerce\Events\OrderPaid;
|
||||||
use Core\Mod\Commerce\Services\ReferralService;
|
use Core\Mod\Commerce\Services\ReferralService;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates referral commission when an order is paid.
|
* Creates referral commission when an order is paid.
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Listeners;
|
namespace Core\Mod\Commerce\Listeners;
|
||||||
|
|
||||||
use Core\Mod\Commerce\Jobs\ProcessSubscriptionRenewal;
|
|
||||||
use Core\Mod\Commerce\Events\SubscriptionCancelled;
|
use Core\Mod\Commerce\Events\SubscriptionCancelled;
|
||||||
use Core\Mod\Commerce\Events\SubscriptionCreated;
|
use Core\Mod\Commerce\Events\SubscriptionCreated;
|
||||||
use Core\Mod\Commerce\Events\SubscriptionRenewed;
|
use Core\Mod\Commerce\Events\SubscriptionRenewed;
|
||||||
use Core\Mod\Commerce\Events\SubscriptionUpdated;
|
use Core\Mod\Commerce\Events\SubscriptionUpdated;
|
||||||
|
use Core\Mod\Commerce\Jobs\ProcessSubscriptionRenewal;
|
||||||
use Core\Tenant\Models\Package;
|
use Core\Tenant\Models\Package;
|
||||||
use Core\Tenant\Models\WorkspacePackage;
|
use Core\Tenant\Models\WorkspacePackage;
|
||||||
use Core\Tenant\Services\EntitlementService;
|
use Core\Tenant\Services\EntitlementService;
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ declare(strict_types=1);
|
||||||
namespace Core\Mod\Commerce\Listeners;
|
namespace Core\Mod\Commerce\Listeners;
|
||||||
|
|
||||||
use Core\Mod\Commerce\Events\SubscriptionCreated;
|
use Core\Mod\Commerce\Events\SubscriptionCreated;
|
||||||
use Mod\Trees\Models\TreePlanting;
|
|
||||||
use Core\Tenant\Models\AgentReferralBonus;
|
use Core\Tenant\Models\AgentReferralBonus;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Mod\Trees\Models\TreePlanting;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rewards agents when their referred user subscribes.
|
* Rewards agents when their referred user subscribes.
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ namespace Core\Mod\Commerce\Mcp\Tools;
|
||||||
|
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Core\Mod\Commerce\Services\SubscriptionService;
|
use Core\Mod\Commerce\Services\SubscriptionService;
|
||||||
use Core\Tenant\Models\Workspace;
|
|
||||||
use Core\Tenant\Models\Package;
|
use Core\Tenant\Models\Package;
|
||||||
|
use Core\Tenant\Models\Workspace;
|
||||||
use Illuminate\Contracts\JsonSchema\JsonSchema;
|
use Illuminate\Contracts\JsonSchema\JsonSchema;
|
||||||
use Laravel\Mcp\Request;
|
use Laravel\Mcp\Request;
|
||||||
use Laravel\Mcp\Response;
|
use Laravel\Mcp\Response;
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Middleware;
|
namespace Core\Mod\Commerce\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
use Core\Mod\Commerce\Models\Entity;
|
use Core\Mod\Commerce\Models\Entity;
|
||||||
use Core\Mod\Commerce\Services\PermissionMatrixService;
|
use Core\Mod\Commerce\Services\PermissionMatrixService;
|
||||||
use Closure;
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Models;
|
namespace Core\Mod\Commerce\Models;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Contracts\Orderable;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Core\Mod\Commerce\Contracts\Orderable;
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
use Spatie\Activitylog\LogOptions;
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
use Spatie\Activitylog\Traits\LogsActivity;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Models;
|
namespace Core\Mod\Commerce\Models;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Contracts\Orderable;
|
||||||
use Core\Tenant\Models\User;
|
use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
|
@ -10,7 +11,6 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||||
use Core\Mod\Commerce\Contracts\Orderable;
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
use Spatie\Activitylog\LogOptions;
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
use Spatie\Activitylog\Traits\LogsActivity;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,13 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Models;
|
namespace Core\Mod\Commerce\Models;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Concerns\HasContentOverrides;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Core\Mod\Commerce\Concerns\HasContentOverrides;
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
use Spatie\Activitylog\LogOptions;
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
use Spatie\Activitylog\Traits\LogsActivity;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Models;
|
namespace Core\Mod\Commerce\Models;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Concerns\HasContentOverrides;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Core\Mod\Commerce\Concerns\HasContentOverrides;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Product Assignment - Links products to M2/M3 entities.
|
* Product Assignment - Links products to M2/M3 entities.
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Models;
|
namespace Core\Mod\Commerce\Models;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Events\SubscriptionCreated;
|
||||||
|
use Core\Mod\Commerce\Events\SubscriptionUpdated;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Core\Tenant\Models\WorkspacePackage;
|
use Core\Tenant\Models\WorkspacePackage;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Core\Mod\Commerce\Events\SubscriptionCreated;
|
|
||||||
use Core\Mod\Commerce\Events\SubscriptionUpdated;
|
|
||||||
use Spatie\Activitylog\LogOptions;
|
use Spatie\Activitylog\LogOptions;
|
||||||
use Spatie\Activitylog\Traits\LogsActivity;
|
use Spatie\Activitylog\Traits\LogsActivity;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Notifications;
|
namespace Core\Mod\Commerce\Notifications;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Illuminate\Bus\Queueable;
|
use Illuminate\Bus\Queueable;
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
use Illuminate\Notifications\Messages\MailMessage;
|
use Illuminate\Notifications\Messages\MailMessage;
|
||||||
use Illuminate\Notifications\Notification;
|
use Illuminate\Notifications\Notification;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
|
||||||
|
|
||||||
class SubscriptionPaused extends Notification implements ShouldQueue
|
class SubscriptionPaused extends Notification implements ShouldQueue
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -184,11 +184,10 @@ class CommerceService
|
||||||
* also applies rate limiting.
|
* also applies rate limiting.
|
||||||
*
|
*
|
||||||
* @param Request|null $request The HTTP request for rate limiting (auto-resolved if null)
|
* @param Request|null $request The HTTP request for rate limiting (auto-resolved if null)
|
||||||
|
* @return array{order: Order, session_id: string, checkout_url: string, fraud_assessment?: FraudAssessment}
|
||||||
*
|
*
|
||||||
* @throws CheckoutRateLimitException When rate limit is exceeded
|
* @throws CheckoutRateLimitException When rate limit is exceeded
|
||||||
* @throws FraudBlockedException When order is blocked due to high fraud risk
|
* @throws FraudBlockedException When order is blocked due to high fraud risk
|
||||||
*
|
|
||||||
* @return array{order: Order, session_id: string, checkout_url: string, fraud_assessment?: FraudAssessment}
|
|
||||||
*/
|
*/
|
||||||
public function createCheckout(
|
public function createCheckout(
|
||||||
Order $order,
|
Order $order,
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use Core\Mod\Commerce\Models\ContentOverride;
|
use Core\Mod\Commerce\Models\ContentOverride;
|
||||||
use Core\Mod\Commerce\Models\Entity;
|
use Core\Mod\Commerce\Models\Entity;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Content Override Service - Sparse override resolution for white-label commerce.
|
* Content Override Service - Sparse override resolution for white-label commerce.
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\CreditNote;
|
||||||
|
use Core\Mod\Commerce\Models\Order;
|
||||||
|
use Core\Mod\Commerce\Models\Refund;
|
||||||
use Core\Tenant\Models\User;
|
use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Core\Mod\Commerce\Models\CreditNote;
|
|
||||||
use Core\Mod\Commerce\Models\Order;
|
|
||||||
use Core\Mod\Commerce\Models\Refund;
|
|
||||||
|
|
||||||
class CreditNoteService
|
class CreditNoteService
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\ExchangeRate;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Http;
|
use Illuminate\Support\Facades\Http;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Facades\Session;
|
use Illuminate\Support\Facades\Session;
|
||||||
use Core\Mod\Commerce\Models\ExchangeRate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Currency service for multi-currency support.
|
* Currency service for multi-currency support.
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Models\Invoice;
|
use Core\Mod\Commerce\Models\Invoice;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Core\Mod\Commerce\Notifications\AccountSuspended;
|
use Core\Mod\Commerce\Notifications\AccountSuspended;
|
||||||
|
|
@ -13,6 +11,8 @@ use Core\Mod\Commerce\Notifications\PaymentRetry;
|
||||||
use Core\Mod\Commerce\Notifications\SubscriptionCancelled;
|
use Core\Mod\Commerce\Notifications\SubscriptionCancelled;
|
||||||
use Core\Mod\Commerce\Notifications\SubscriptionPaused;
|
use Core\Mod\Commerce\Notifications\SubscriptionPaused;
|
||||||
use Core\Tenant\Services\EntitlementService;
|
use Core\Tenant\Services\EntitlementService;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dunning service for failed payment recovery.
|
* Dunning service for failed payment recovery.
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,14 @@
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
use Barryvdh\DomPDF\Facade\Pdf;
|
use Barryvdh\DomPDF\Facade\Pdf;
|
||||||
use Illuminate\Support\Facades\Mail;
|
|
||||||
use Illuminate\Support\Facades\Storage;
|
|
||||||
use Core\Mod\Commerce\Mail\InvoiceGenerated;
|
use Core\Mod\Commerce\Mail\InvoiceGenerated;
|
||||||
use Core\Mod\Commerce\Models\Invoice;
|
use Core\Mod\Commerce\Models\Invoice;
|
||||||
use Core\Mod\Commerce\Models\InvoiceItem;
|
use Core\Mod\Commerce\Models\InvoiceItem;
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Core\Mod\Commerce\Models\Payment;
|
use Core\Mod\Commerce\Models\Payment;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invoice generation and management service.
|
* Invoice generation and management service.
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Services\PaymentGateway;
|
namespace Core\Mod\Commerce\Services\PaymentGateway;
|
||||||
|
|
||||||
use Core\Tenant\Models\Workspace;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Core\Mod\Commerce\Models\Payment;
|
use Core\Mod\Commerce\Models\Payment;
|
||||||
use Core\Mod\Commerce\Models\PaymentMethod;
|
use Core\Mod\Commerce\Models\PaymentMethod;
|
||||||
use Core\Mod\Commerce\Models\Refund;
|
use Core\Mod\Commerce\Models\Refund;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
|
use Core\Tenant\Models\Workspace;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Stripe\StripeClient;
|
use Stripe\StripeClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\PaymentMethod;
|
||||||
|
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
||||||
use Core\Tenant\Models\User;
|
use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Core\Mod\Commerce\Models\PaymentMethod;
|
|
||||||
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service for managing payment methods.
|
* Service for managing payment methods.
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,16 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
use Core\Tenant\Models\User;
|
|
||||||
use Mod\Bio\Models\Page;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Core\Mod\Commerce\Models\Referral;
|
use Core\Mod\Commerce\Models\Referral;
|
||||||
use Core\Mod\Commerce\Models\ReferralCode;
|
use Core\Mod\Commerce\Models\ReferralCode;
|
||||||
use Core\Mod\Commerce\Models\ReferralCommission;
|
use Core\Mod\Commerce\Models\ReferralCommission;
|
||||||
use Core\Mod\Commerce\Models\ReferralPayout;
|
use Core\Mod\Commerce\Models\ReferralPayout;
|
||||||
|
use Core\Tenant\Models\User;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use Mod\Bio\Models\Page;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service for managing referrals and affiliate commissions.
|
* Service for managing referrals and affiliate commissions.
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,14 @@
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Exceptions\PauseLimitExceededException;
|
use Core\Mod\Commerce\Exceptions\PauseLimitExceededException;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Core\Tenant\Models\Package;
|
use Core\Tenant\Models\Package;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Core\Tenant\Models\WorkspacePackage;
|
use Core\Tenant\Models\WorkspacePackage;
|
||||||
use Core\Tenant\Services\EntitlementService;
|
use Core\Tenant\Services\EntitlementService;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class SubscriptionService
|
class SubscriptionService
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
use Illuminate\Support\Facades\Http;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Contracts\Orderable;
|
use Core\Mod\Commerce\Contracts\Orderable;
|
||||||
use Core\Mod\Commerce\Models\TaxRate;
|
use Core\Mod\Commerce\Models\TaxRate;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
use Illuminate\Support\Facades\Http;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tax calculation service.
|
* Tax calculation service.
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,6 @@
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Core\Tenant\Models\User;
|
|
||||||
use Core\Tenant\Models\Workspace;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Core\Mod\Commerce\Models\Invoice;
|
use Core\Mod\Commerce\Models\Invoice;
|
||||||
use Core\Mod\Commerce\Models\InvoiceItem;
|
use Core\Mod\Commerce\Models\InvoiceItem;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
|
|
@ -15,6 +10,11 @@ use Core\Mod\Commerce\Models\SubscriptionUsage;
|
||||||
use Core\Mod\Commerce\Models\UsageEvent;
|
use Core\Mod\Commerce\Models\UsageEvent;
|
||||||
use Core\Mod\Commerce\Models\UsageMeter;
|
use Core\Mod\Commerce\Models\UsageMeter;
|
||||||
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
||||||
|
use Core\Tenant\Models\User;
|
||||||
|
use Core\Tenant\Models\Workspace;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Usage-based billing service.
|
* Usage-based billing service.
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,13 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Services;
|
namespace Core\Mod\Commerce\Services;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Order;
|
||||||
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
|
use Core\Mod\Commerce\Models\WebhookEvent;
|
||||||
use Illuminate\Database\QueryException;
|
use Illuminate\Database\QueryException;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Core\Mod\Commerce\Models\Order;
|
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
|
||||||
use Core\Mod\Commerce\Models\WebhookEvent;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service for logging webhook events from payment gateways.
|
* Service for logging webhook events from payment gateways.
|
||||||
|
|
|
||||||
|
|
@ -206,7 +206,7 @@ class WebhookRateLimiter
|
||||||
// Build a bitmask from the prefix length
|
// Build a bitmask from the prefix length
|
||||||
$maskBinary = str_repeat("\xff", (int) ($mask / 8));
|
$maskBinary = str_repeat("\xff", (int) ($mask / 8));
|
||||||
if ($mask % 8) {
|
if ($mask % 8) {
|
||||||
$maskBinary .= chr(0xff << (8 - ($mask % 8)));
|
$maskBinary .= chr(0xFF << (8 - ($mask % 8)));
|
||||||
}
|
}
|
||||||
$maskBinary = str_pad($maskBinary, 16, "\x00");
|
$maskBinary = str_pad($maskBinary, 16, "\x00");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Admin;
|
namespace Core\Mod\Commerce\View\Modal\Admin;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Coupon;
|
||||||
|
use Core\Mod\Commerce\Services\CouponService;
|
||||||
use Core\Tenant\Models\Package;
|
use Core\Tenant\Models\Package;
|
||||||
use Livewire\Attributes\Computed;
|
use Livewire\Attributes\Computed;
|
||||||
use Livewire\Attributes\Layout;
|
use Livewire\Attributes\Layout;
|
||||||
use Livewire\Attributes\Title;
|
use Livewire\Attributes\Title;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Livewire\WithPagination;
|
use Livewire\WithPagination;
|
||||||
use Core\Mod\Commerce\Models\Coupon;
|
|
||||||
use Core\Mod\Commerce\Services\CouponService;
|
|
||||||
|
|
||||||
#[Layout('hub::admin.layouts.app')]
|
#[Layout('hub::admin.layouts.app')]
|
||||||
#[Title('Coupons')]
|
#[Title('Coupons')]
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Admin;
|
namespace Core\Mod\Commerce\View\Modal\Admin;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\CreditNote;
|
||||||
|
use Core\Mod\Commerce\Services\CreditNoteService;
|
||||||
use Core\Tenant\Models\User;
|
use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Livewire\Attributes\Computed;
|
use Livewire\Attributes\Computed;
|
||||||
use Livewire\Attributes\Title;
|
use Livewire\Attributes\Title;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Livewire\WithPagination;
|
use Livewire\WithPagination;
|
||||||
use Core\Mod\Commerce\Models\CreditNote;
|
|
||||||
use Core\Mod\Commerce\Services\CreditNoteService;
|
|
||||||
|
|
||||||
#[Title('Credit Notes')]
|
#[Title('Credit Notes')]
|
||||||
class CreditNoteManager extends Component
|
class CreditNoteManager extends Component
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ use Core\Mod\Commerce\Models\ProductAssignment;
|
||||||
use Core\Mod\Commerce\Services\ProductCatalogService;
|
use Core\Mod\Commerce\Services\ProductCatalogService;
|
||||||
use Illuminate\Contracts\View\View;
|
use Illuminate\Contracts\View\View;
|
||||||
use Livewire\Attributes\Computed;
|
use Livewire\Attributes\Computed;
|
||||||
use Livewire\Attributes\Url;
|
|
||||||
use Livewire\Attributes\Layout;
|
use Livewire\Attributes\Layout;
|
||||||
|
use Livewire\Attributes\Url;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Livewire\WithPagination;
|
use Livewire\WithPagination;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,16 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Admin;
|
namespace Core\Mod\Commerce\View\Modal\Admin;
|
||||||
|
|
||||||
use Livewire\Attributes\Computed;
|
|
||||||
use Livewire\Attributes\Layout;
|
|
||||||
use Livewire\Attributes\Title;
|
|
||||||
use Livewire\Component;
|
|
||||||
use Livewire\WithPagination;
|
|
||||||
use Core\Mod\Commerce\Models\Referral;
|
use Core\Mod\Commerce\Models\Referral;
|
||||||
use Core\Mod\Commerce\Models\ReferralCode;
|
use Core\Mod\Commerce\Models\ReferralCode;
|
||||||
use Core\Mod\Commerce\Models\ReferralCommission;
|
use Core\Mod\Commerce\Models\ReferralCommission;
|
||||||
use Core\Mod\Commerce\Models\ReferralPayout;
|
use Core\Mod\Commerce\Models\ReferralPayout;
|
||||||
use Core\Mod\Commerce\Services\ReferralService;
|
use Core\Mod\Commerce\Services\ReferralService;
|
||||||
|
use Livewire\Attributes\Computed;
|
||||||
|
use Livewire\Attributes\Layout;
|
||||||
|
use Livewire\Attributes\Title;
|
||||||
|
use Livewire\Component;
|
||||||
|
use Livewire\WithPagination;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Admin dashboard for managing referrals, commissions, and payouts.
|
* Admin dashboard for managing referrals, commissions, and payouts.
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Web;
|
namespace Core\Mod\Commerce\View\Modal\Web;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
|
use Core\Mod\Commerce\Services\CommerceService;
|
||||||
|
use Core\Mod\Commerce\Services\SubscriptionService;
|
||||||
use Core\Tenant\Models\Package;
|
use Core\Tenant\Models\Package;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Livewire\Attributes\Layout;
|
use Livewire\Attributes\Layout;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
|
||||||
use Core\Mod\Commerce\Services\CommerceService;
|
|
||||||
use Core\Mod\Commerce\Services\SubscriptionService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plan change UI for upgrading or downgrading subscriptions.
|
* Plan change UI for upgrading or downgrading subscriptions.
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Web;
|
namespace Core\Mod\Commerce\View\Modal\Web;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Order;
|
||||||
|
use Core\Tenant\Models\User;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Livewire\Attributes\Layout;
|
use Livewire\Attributes\Layout;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Core\Mod\Commerce\Models\Order;
|
|
||||||
use Core\Tenant\Models\User;
|
|
||||||
|
|
||||||
#[Layout('shared::layouts.checkout')]
|
#[Layout('shared::layouts.checkout')]
|
||||||
class CheckoutCancel extends Component
|
class CheckoutCancel extends Component
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,6 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Web;
|
namespace Core\Mod\Commerce\View\Modal\Web;
|
||||||
|
|
||||||
use Core\Tenant\Models\Package;
|
|
||||||
use Core\Tenant\Models\Workspace;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Livewire\Attributes\Computed;
|
|
||||||
use Livewire\Attributes\Layout;
|
|
||||||
use Livewire\Attributes\Url;
|
|
||||||
use Livewire\Component;
|
|
||||||
use Core\Mod\Commerce\Models\Coupon;
|
use Core\Mod\Commerce\Models\Coupon;
|
||||||
use Core\Mod\Commerce\Models\ExchangeRate;
|
use Core\Mod\Commerce\Models\ExchangeRate;
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
|
|
@ -17,6 +10,13 @@ use Core\Mod\Commerce\Services\CommerceService;
|
||||||
use Core\Mod\Commerce\Services\CouponService;
|
use Core\Mod\Commerce\Services\CouponService;
|
||||||
use Core\Mod\Commerce\Services\CurrencyService;
|
use Core\Mod\Commerce\Services\CurrencyService;
|
||||||
use Core\Mod\Commerce\Services\TaxService;
|
use Core\Mod\Commerce\Services\TaxService;
|
||||||
|
use Core\Tenant\Models\Package;
|
||||||
|
use Core\Tenant\Models\Workspace;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Livewire\Attributes\Computed;
|
||||||
|
use Livewire\Attributes\Layout;
|
||||||
|
use Livewire\Attributes\Url;
|
||||||
|
use Livewire\Component;
|
||||||
|
|
||||||
#[Layout('shared::layouts.checkout')]
|
#[Layout('shared::layouts.checkout')]
|
||||||
class CheckoutPage extends Component
|
class CheckoutPage extends Component
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Web;
|
namespace Core\Mod\Commerce\View\Modal\Web;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Order;
|
||||||
|
use Core\Tenant\Models\User;
|
||||||
|
use Core\Tenant\Models\Workspace;
|
||||||
use Illuminate\Auth\Events\Registered;
|
use Illuminate\Auth\Events\Registered;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
@ -9,9 +12,6 @@ use Illuminate\Support\Facades\Hash;
|
||||||
use Livewire\Attributes\Layout;
|
use Livewire\Attributes\Layout;
|
||||||
use Livewire\Attributes\Validate;
|
use Livewire\Attributes\Validate;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Core\Mod\Commerce\Models\Order;
|
|
||||||
use Core\Tenant\Models\User;
|
|
||||||
use Core\Tenant\Models\Workspace;
|
|
||||||
|
|
||||||
#[Layout('shared::layouts.checkout')]
|
#[Layout('shared::layouts.checkout')]
|
||||||
class CheckoutSuccess extends Component
|
class CheckoutSuccess extends Component
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Web;
|
namespace Core\Mod\Commerce\View\Modal\Web;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Services\CurrencyService;
|
||||||
use Livewire\Attributes\Computed;
|
use Livewire\Attributes\Computed;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Core\Mod\Commerce\Services\CurrencyService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Currency selector component.
|
* Currency selector component.
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Web;
|
namespace Core\Mod\Commerce\View\Modal\Web;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\PaymentMethod;
|
||||||
|
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
||||||
|
use Core\Mod\Commerce\Services\PaymentMethodService;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Livewire\Attributes\Layout;
|
use Livewire\Attributes\Layout;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Core\Mod\Commerce\Models\PaymentMethod;
|
|
||||||
use Core\Mod\Commerce\Services\PaymentGateway\StripeGateway;
|
|
||||||
use Core\Mod\Commerce\Services\PaymentMethodService;
|
|
||||||
|
|
||||||
#[Layout('hub::admin.layouts.app')]
|
#[Layout('hub::admin.layouts.app')]
|
||||||
class PaymentMethods extends Component
|
class PaymentMethods extends Component
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,15 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Web;
|
namespace Core\Mod\Commerce\View\Modal\Web;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Referral;
|
||||||
|
use Core\Mod\Commerce\Models\ReferralCommission;
|
||||||
|
use Core\Mod\Commerce\Models\ReferralPayout;
|
||||||
|
use Core\Mod\Commerce\Services\ReferralService;
|
||||||
use Livewire\Attributes\Computed;
|
use Livewire\Attributes\Computed;
|
||||||
use Livewire\Attributes\Layout;
|
use Livewire\Attributes\Layout;
|
||||||
use Livewire\Attributes\Title;
|
use Livewire\Attributes\Title;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Livewire\WithPagination;
|
use Livewire\WithPagination;
|
||||||
use Core\Mod\Commerce\Models\Referral;
|
|
||||||
use Core\Mod\Commerce\Models\ReferralCommission;
|
|
||||||
use Core\Mod\Commerce\Models\ReferralPayout;
|
|
||||||
use Core\Mod\Commerce\Services\ReferralService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* User-facing referral dashboard showing earnings and referrals.
|
* User-facing referral dashboard showing earnings and referrals.
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\View\Modal\Web;
|
namespace Core\Mod\Commerce\View\Modal\Web;
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
|
use Core\Mod\Commerce\Services\CommerceService;
|
||||||
|
use Core\Mod\Commerce\Services\UsageBillingService;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Livewire\Component;
|
use Livewire\Component;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
|
||||||
use Core\Mod\Commerce\Services\CommerceService;
|
|
||||||
use Core\Mod\Commerce\Services\UsageBillingService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Usage Dashboard component.
|
* Usage Dashboard component.
|
||||||
|
|
|
||||||
39
phpunit.xml
Normal file
39
phpunit.xml
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
|
||||||
|
bootstrap="vendor/autoload.php"
|
||||||
|
colors="true"
|
||||||
|
cacheDirectory=".phpunit.cache"
|
||||||
|
executionOrder="random"
|
||||||
|
requireCoverageMetadata="false"
|
||||||
|
beStrictAboutCoverageMetadata="false"
|
||||||
|
beStrictAboutOutputDuringTests="true"
|
||||||
|
failOnRisky="true"
|
||||||
|
failOnWarning="true">
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="Feature">
|
||||||
|
<directory>tests/Feature</directory>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="Unit">
|
||||||
|
<directory>tests/Unit</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
<source>
|
||||||
|
<include>
|
||||||
|
<directory>src</directory>
|
||||||
|
</include>
|
||||||
|
</source>
|
||||||
|
<php>
|
||||||
|
<env name="APP_ENV" value="testing"/>
|
||||||
|
<env name="APP_DEBUG" value="true"/>
|
||||||
|
<env name="APP_KEY" value="base64:Kx0qLJZJAQcDSFE2gMpuOlwrJcC6kXHM0j0KJdMGqzQ="/>
|
||||||
|
<env name="BCRYPT_ROUNDS" value="4"/>
|
||||||
|
<env name="CACHE_STORE" value="array"/>
|
||||||
|
<env name="DB_CONNECTION" value="sqlite"/>
|
||||||
|
<env name="DB_DATABASE" value=":memory:"/>
|
||||||
|
<env name="MAIL_MAILER" value="array"/>
|
||||||
|
<env name="QUEUE_CONNECTION" value="sync"/>
|
||||||
|
<env name="SESSION_DRIVER" value="array"/>
|
||||||
|
<env name="TELESCOPE_ENABLED" value="false"/>
|
||||||
|
</php>
|
||||||
|
</phpunit>
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
|
||||||
use Core\Mod\Commerce\Controllers\Api\CommerceController;
|
use Core\Mod\Commerce\Controllers\Api\CommerceController;
|
||||||
use Core\Mod\Commerce\Controllers\Webhooks\BTCPayWebhookController;
|
use Core\Mod\Commerce\Controllers\Webhooks\BTCPayWebhookController;
|
||||||
use Core\Mod\Commerce\Controllers\Webhooks\StripeWebhookController;
|
use Core\Mod\Commerce\Controllers\Webhooks\StripeWebhookController;
|
||||||
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
use Core\Mod\Commerce\Models\Invoice;
|
use Core\Mod\Commerce\Models\Invoice;
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Core\Mod\Commerce\Models\Payment;
|
use Core\Mod\Commerce\Models\Payment;
|
||||||
|
|
@ -10,6 +9,7 @@ use Core\Tenant\Models\Package;
|
||||||
use Core\Tenant\Models\User;
|
use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Core\Tenant\Models\WorkspacePackage;
|
use Core\Tenant\Models\WorkspacePackage;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
||||||
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Tests\Feature;
|
namespace Core\Mod\Commerce\Tests\Feature;
|
||||||
|
|
||||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
||||||
use Core\Mod\Commerce\Models\ContentOverride;
|
use Core\Mod\Commerce\Models\ContentOverride;
|
||||||
use Core\Mod\Commerce\Models\Entity;
|
use Core\Mod\Commerce\Models\Entity;
|
||||||
use Core\Mod\Commerce\Models\Product;
|
use Core\Mod\Commerce\Models\Product;
|
||||||
use Core\Mod\Commerce\Services\ContentOverrideService;
|
use Core\Mod\Commerce\Services\ContentOverrideService;
|
||||||
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class ContentOverrideServiceTest extends TestCase
|
class ContentOverrideServiceTest extends TestCase
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Core\Mod\Commerce\Tests\Feature;
|
namespace Core\Mod\Commerce\Tests\Feature;
|
||||||
|
|
||||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
||||||
use Core\Mod\Commerce\Models\ExchangeRate;
|
use Core\Mod\Commerce\Models\ExchangeRate;
|
||||||
use Core\Mod\Commerce\Services\CurrencyService;
|
use Core\Mod\Commerce\Services\CurrencyService;
|
||||||
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class CurrencyServiceTest extends TestCase
|
class CurrencyServiceTest extends TestCase
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
use Illuminate\Support\Facades\Notification;
|
|
||||||
use Core\Mod\Commerce\Models\Invoice;
|
use Core\Mod\Commerce\Models\Invoice;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Core\Mod\Commerce\Notifications\AccountSuspended;
|
use Core\Mod\Commerce\Notifications\AccountSuspended;
|
||||||
|
|
@ -14,6 +12,8 @@ use Core\Tenant\Models\Package;
|
||||||
use Core\Tenant\Models\User;
|
use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Core\Tenant\Models\WorkspacePackage;
|
use Core\Tenant\Models\WorkspacePackage;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
use Illuminate\Support\Facades\Notification;
|
||||||
|
|
||||||
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
use Illuminate\Support\Facades\Event;
|
|
||||||
use Core\Mod\Commerce\Events\SubscriptionRenewed;
|
use Core\Mod\Commerce\Events\SubscriptionRenewed;
|
||||||
use Core\Mod\Commerce\Jobs\ProcessSubscriptionRenewal;
|
use Core\Mod\Commerce\Jobs\ProcessSubscriptionRenewal;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
|
|
@ -13,6 +11,8 @@ use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Core\Tenant\Models\WorkspacePackage;
|
use Core\Tenant\Models\WorkspacePackage;
|
||||||
use Core\Tenant\Services\EntitlementService;
|
use Core\Tenant\Services\EntitlementService;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
use Illuminate\Support\Facades\Event;
|
||||||
|
|
||||||
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
use Core\Mod\Commerce\Exceptions\PauseLimitExceededException;
|
use Core\Mod\Commerce\Exceptions\PauseLimitExceededException;
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
use Core\Mod\Commerce\Models\Subscription;
|
||||||
use Core\Mod\Commerce\Services\ProrationResult;
|
use Core\Mod\Commerce\Services\ProrationResult;
|
||||||
|
|
@ -11,6 +10,7 @@ use Core\Tenant\Models\Package;
|
||||||
use Core\Tenant\Models\User;
|
use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
use Core\Tenant\Models\WorkspacePackage;
|
use Core\Tenant\Models\WorkspacePackage;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
||||||
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Core\Mod\Commerce\Services\WebhookRateLimiter;
|
||||||
use Illuminate\Cache\RateLimiter;
|
use Illuminate\Cache\RateLimiter;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Core\Mod\Commerce\Services\WebhookRateLimiter;
|
|
||||||
|
|
||||||
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
use Core\Mod\Commerce\Controllers\Webhooks\BTCPayWebhookController;
|
use Core\Mod\Commerce\Controllers\Webhooks\BTCPayWebhookController;
|
||||||
use Core\Mod\Commerce\Controllers\Webhooks\StripeWebhookController;
|
use Core\Mod\Commerce\Controllers\Webhooks\StripeWebhookController;
|
||||||
use WebhookPayloadValidationException;
|
|
||||||
use Core\Mod\Commerce\Models\Order;
|
use Core\Mod\Commerce\Models\Order;
|
||||||
use Core\Mod\Commerce\Models\OrderItem;
|
use Core\Mod\Commerce\Models\OrderItem;
|
||||||
use Core\Mod\Commerce\Models\Payment;
|
use Core\Mod\Commerce\Models\Payment;
|
||||||
|
|
@ -21,6 +20,7 @@ use Core\Tenant\Models\Workspace;
|
||||||
use Core\Tenant\Models\WorkspacePackage;
|
use Core\Tenant\Models\WorkspacePackage;
|
||||||
use Core\Tenant\Services\EntitlementService;
|
use Core\Tenant\Services\EntitlementService;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
|
use WebhookPayloadValidationException;
|
||||||
|
|
||||||
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
uses(\Illuminate\Foundation\Testing\RefreshDatabase::class);
|
||||||
|
|
||||||
|
|
@ -1396,7 +1396,7 @@ describe('Webhook Idempotency (Replay Attack Protection)', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('processes first webhook and rejects subsequent duplicates', function () {
|
it('processes first webhook and rejects subsequent duplicates', function () {
|
||||||
$eventId = 'btc_event_first_' . uniqid();
|
$eventId = 'btc_event_first_'.uniqid();
|
||||||
|
|
||||||
$mockGateway = Mockery::mock(BTCPayGateway::class);
|
$mockGateway = Mockery::mock(BTCPayGateway::class);
|
||||||
$mockGateway->shouldReceive('verifyWebhookSignature')->andReturn(true);
|
$mockGateway->shouldReceive('verifyWebhookSignature')->andReturn(true);
|
||||||
|
|
|
||||||
7
tests/Pest.php
Normal file
7
tests/Pest.php
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
use Orchestra\Testbench\TestCase;
|
||||||
|
|
||||||
|
uses(TestCase::class)->in('Feature', 'Unit');
|
||||||
|
|
@ -7,9 +7,6 @@
|
||||||
* Tests the happy path user journey for products, orders, and subscriptions.
|
* Tests the happy path user journey for products, orders, and subscriptions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Core\Mod\Commerce\Models\Order;
|
|
||||||
use Core\Mod\Commerce\Models\Product;
|
|
||||||
use Core\Mod\Commerce\Models\Subscription;
|
|
||||||
use Core\Tenant\Models\User;
|
use Core\Tenant\Models\User;
|
||||||
use Core\Tenant\Models\Workspace;
|
use Core\Tenant\Models\Workspace;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue