PaymentTransfer.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\SoftDeletes;
  6. /**
  7. * @property int $id
  8. * @property int $payment_id
  9. * @property int $provider_id
  10. * @property string $gateway_provider
  11. * @property string|null $gateway_entity_reference
  12. * @property string|null $gateway_entity_label
  13. * @property string|null $gateway_operation_reference
  14. * @property string|null $gateway_operation_label
  15. * @property string|null $gateway_parent_reference
  16. * @property string|null $gateway_parent_label
  17. * @property string|null $gateway_transfer_target_reference
  18. * @property string|null $gateway_transfer_target_label
  19. * @property string $status
  20. * @property numeric $gross_amount Valor bruto destinado ao repasse do provider.
  21. * @property numeric $gateway_fee_amount Custo do gateway associado ao repasse.
  22. * @property numeric $net_amount Valor liquido do repasse: net_amount = gross_amount - gateway_fee_amount.
  23. * @property \Illuminate\Support\Carbon|null $transferred_at
  24. * @property \Illuminate\Support\Carbon|null $failed_at
  25. * @property string|null $failure_code
  26. * @property string|null $failure_message
  27. * @property array<array-key, mixed>|null $gateway_payload
  28. * @property array<array-key, mixed>|null $metadata
  29. * @property \Illuminate\Support\Carbon|null $created_at
  30. * @property \Illuminate\Support\Carbon|null $updated_at
  31. * @property \Illuminate\Support\Carbon|null $deleted_at
  32. * @property-read \App\Models\Payment $payment
  33. * @property-read \App\Models\Provider $provider
  34. *
  35. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer newModelQuery()
  36. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer newQuery()
  37. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer onlyTrashed()
  38. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer query()
  39. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereCreatedAt($value)
  40. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereDeletedAt($value)
  41. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereFailedAt($value)
  42. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereFailureCode($value)
  43. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereFailureMessage($value)
  44. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayEntityLabel($value)
  45. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayEntityReference($value)
  46. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayFeeAmount($value)
  47. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayOperationLabel($value)
  48. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayOperationReference($value)
  49. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayParentLabel($value)
  50. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayParentReference($value)
  51. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayPayload($value)
  52. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayProvider($value)
  53. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayTransferTargetLabel($value)
  54. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGatewayTransferTargetReference($value)
  55. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereGrossAmount($value)
  56. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereId($value)
  57. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereMetadata($value)
  58. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereNetAmount($value)
  59. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer wherePaymentId($value)
  60. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereProviderId($value)
  61. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereStatus($value)
  62. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereTransferredAt($value)
  63. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer whereUpdatedAt($value)
  64. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer withTrashed(bool $withTrashed = true)
  65. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentTransfer withoutTrashed()
  66. *
  67. * @mixin \Eloquent
  68. */
  69. class PaymentTransfer extends Model
  70. {
  71. use HasFactory, SoftDeletes;
  72. protected $table = 'payment_transfers';
  73. protected $fillable = [
  74. 'payment_id',
  75. 'provider_id',
  76. 'gateway_provider',
  77. 'gateway_entity_reference',
  78. 'gateway_entity_label',
  79. 'gateway_operation_reference',
  80. 'gateway_operation_label',
  81. 'gateway_parent_reference',
  82. 'gateway_parent_label',
  83. 'gateway_transfer_target_reference',
  84. 'gateway_transfer_target_label',
  85. 'status',
  86. 'gross_amount',
  87. 'gateway_fee_amount',
  88. 'net_amount',
  89. 'transferred_at',
  90. 'failed_at',
  91. 'failure_code',
  92. 'failure_message',
  93. 'gateway_payload',
  94. 'metadata',
  95. ];
  96. protected $casts = [
  97. 'gross_amount' => 'decimal:2',
  98. 'gateway_fee_amount' => 'decimal:2',
  99. 'net_amount' => 'decimal:2',
  100. 'transferred_at' => 'datetime',
  101. 'failed_at' => 'datetime',
  102. 'gateway_payload' => 'array',
  103. 'metadata' => 'array',
  104. 'created_at' => 'datetime',
  105. 'updated_at' => 'datetime',
  106. 'deleted_at' => 'datetime',
  107. ];
  108. public function payment()
  109. {
  110. return $this->belongsTo(Payment::class);
  111. }
  112. public function provider()
  113. {
  114. return $this->belongsTo(Provider::class);
  115. }
  116. }