PaymentSplit.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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_transfer_target_reference
  12. * @property string|null $gateway_transfer_target_label
  13. * @property \App\Enums\PaymentSplitStatusEnum $status
  14. * @property numeric $gross_amount Valor bruto destinado ao repasse do provider.
  15. * @property numeric $gateway_fee_amount Custo do gateway associado ao repasse.
  16. * @property numeric $net_amount Valor liquido do repasse: net_amount = gross_amount - gateway_fee_amount.
  17. * @property \Illuminate\Support\Carbon|null $transferred_at
  18. * @property array<array-key, mixed>|null $metadata
  19. * @property \Illuminate\Support\Carbon|null $created_at
  20. * @property \Illuminate\Support\Carbon|null $updated_at
  21. * @property \Illuminate\Support\Carbon|null $deleted_at
  22. * @property int|null $provider_withdrawal_id
  23. * @property-read \App\Models\Payment $payment
  24. * @property-read \App\Models\Provider $provider
  25. * @property-read \App\Models\ProviderWithdrawal|null $providerWithdrawal
  26. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit newModelQuery()
  27. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit newQuery()
  28. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit onlyTrashed()
  29. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit query()
  30. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereCreatedAt($value)
  31. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereDeletedAt($value)
  32. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereGatewayFeeAmount($value)
  33. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereGatewayProvider($value)
  34. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereGatewayTransferTargetLabel($value)
  35. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereGatewayTransferTargetReference($value)
  36. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereGrossAmount($value)
  37. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereId($value)
  38. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereMetadata($value)
  39. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereNetAmount($value)
  40. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit wherePaymentId($value)
  41. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereProviderId($value)
  42. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereProviderWithdrawalId($value)
  43. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereStatus($value)
  44. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereTransferredAt($value)
  45. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit whereUpdatedAt($value)
  46. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit withTrashed(bool $withTrashed = true)
  47. * @method static \Illuminate\Database\Eloquent\Builder<static>|PaymentSplit withoutTrashed()
  48. * @mixin \Eloquent
  49. */
  50. class PaymentSplit extends Model
  51. {
  52. use HasFactory, SoftDeletes;
  53. protected $table = 'payment_splits';
  54. protected $fillable = [
  55. 'payment_id',
  56. 'provider_id',
  57. 'provider_withdrawal_id',
  58. 'gateway_provider',
  59. 'gateway_transfer_target_reference',
  60. 'gateway_transfer_target_label',
  61. 'status',
  62. 'gross_amount',
  63. 'gateway_fee_amount',
  64. 'net_amount',
  65. 'transferred_at',
  66. 'metadata',
  67. ];
  68. protected $casts = [
  69. 'gross_amount' => 'decimal:2',
  70. 'gateway_fee_amount' => 'decimal:2',
  71. 'net_amount' => 'decimal:2',
  72. 'status' => \App\Enums\PaymentSplitStatusEnum::class,
  73. 'transferred_at' => 'datetime',
  74. 'metadata' => 'array',
  75. 'created_at' => 'datetime',
  76. 'updated_at' => 'datetime',
  77. 'deleted_at' => 'datetime',
  78. ];
  79. public function payment()
  80. {
  81. return $this->belongsTo(Payment::class);
  82. }
  83. public function provider()
  84. {
  85. return $this->belongsTo(Provider::class);
  86. }
  87. public function providerWithdrawal()
  88. {
  89. return $this->belongsTo(ProviderWithdrawal::class);
  90. }
  91. }