123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- namespace App\Models;
- use Hidehalo\Nanoid\Client;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Relations\BelongsTo;
- use NumberFormatter;
- class Payment extends Model
- {
- use HasFactory;
- public $incrementing = false;
- /**
- * @var string[]
- */
- protected $fillable = [
- 'id',
- 'user_id',
- 'payment_id',
- 'payment_method',
- 'status',
- 'type',
- 'amount',
- 'price',
- 'tax_value',
- 'total_price',
- 'tax_percent',
- 'currency_code',
- 'shop_item_product_id',
- ];
- public static function boot()
- {
- parent::boot();
- static::creating(function (Payment $payment) {
- $client = new Client();
- $payment->{$payment->getKeyName()} = $client->generateId($size = 8);
- });
- }
- /**
- * @return BelongsTo
- */
- public function user()
- {
- return $this->belongsTo(User::class);
- }
- /**
- * @param mixed $value
- * @param string $locale
- * @return float
- */
- public function formatToCurrency($value, $locale = 'en_US')
- {
- $formatter = new NumberFormatter($locale, NumberFormatter::CURRENCY);
- return $formatter->formatCurrency($value, $this->currency_code);
- }
- }
|