ApplicationApi.php 788 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Models;
  3. use Hidehalo\Nanoid\Client;
  4. use Illuminate\Database\Eloquent\Factories\HasFactory;
  5. use Illuminate\Database\Eloquent\Model;
  6. class ApplicationApi extends Model
  7. {
  8. use HasFactory;
  9. protected $fillable = ['token', 'memo', 'last_used'];
  10. protected $primaryKey = 'token';
  11. public $incrementing = false;
  12. protected $casts = [
  13. 'last_used' => 'datetime',
  14. ];
  15. public static function boot()
  16. {
  17. parent::boot();
  18. static::creating(function (ApplicationApi $applicationApi) {
  19. $client = new Client();
  20. $applicationApi->{$applicationApi->getKeyName()} = $client->generateId(48);
  21. });
  22. }
  23. public function updateLastUsed()
  24. {
  25. $this->update(['last_used' => now()]);
  26. }
  27. }