CompanyPaymentAccount.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Model;
  4. /**
  5. * Conta Asaas da franqueadora (matriz). Linha única.
  6. *
  7. * @property int $id
  8. * @property string|null $asaas_api_key
  9. * @property string|null $asaas_webhook_id
  10. * @property string $status
  11. * @property \Illuminate\Support\Carbon|null $onboarded_at
  12. */
  13. class CompanyPaymentAccount extends Model
  14. {
  15. public const STATUS_PENDING = 'pending';
  16. public const STATUS_ACTIVE = 'active';
  17. protected $table = 'company_payment_accounts';
  18. protected $guarded = ['id'];
  19. protected $casts = [
  20. 'asaas_api_key' => 'encrypted',
  21. 'onboarded_at' => 'datetime',
  22. 'created_at' => 'datetime',
  23. 'updated_at' => 'datetime',
  24. ];
  25. /**
  26. * A (única) conta da matriz.
  27. */
  28. public static function current(): self
  29. {
  30. return static::query()->first() ?? new self();
  31. }
  32. /**
  33. * Chave efetiva da matriz: banco → fallback .env.
  34. */
  35. public static function resolveApiKey(): ?string
  36. {
  37. $key = static::query()->first()?->asaas_api_key;
  38. return filled($key) ? $key : config('services.asaas.api_key');
  39. }
  40. }