<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class Payment extends Model
{
    protected $fillable = [
        'user_id',
        'mp_payment_id',
        'external_reference',
        'amount',
        'method',
        'status',
        'status_detail',
        'installments',
        'pix_qr_code',
        'pix_qr_code_base64',
        'pix_ticket_url',
        'expires_at',
        'approved_at',
    ];

    protected $casts = [
        'amount'       => 'decimal:2',
        'installments' => 'integer',
        'expires_at'   => 'datetime',
        'approved_at'  => 'datetime',
    ];

    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class);
    }

    public function isApproved(): bool
    {
        return $this->status === 'approved';
    }

    public function isPending(): bool
    {
        return in_array($this->status, ['pending', 'in_process']);
    }
}
