-
Notifications
You must be signed in to change notification settings - Fork 98
Open
Labels
good first issueGood for newcomersGood for newcomers
Description
For example:
A school class (30 students) can redeem a code for their class.
But you want to count on how many times the voucher has been redeemd.
After 30 redeems, the voucher is no longer valid.
Code example:
- Migration
Schema::create('vouchers', function (Blueprint $table) {
$table->id();
$table->string('code')->unique();
$table->integer('max_redeems')->default(30); // new
$table->integer('current_redeems')->default(0); // new
$table->timestamps();
});
- Model
class Voucher extends Model
{
protected $fillable = ['code', 'max_redeems', 'current_redeems'];
public function isValid()
{
return $this->current_redeems < $this->max_redeems;
}
public function redeem()
{
if ($this->isValid()) {
$this->current_redeems++;
$this->save();
return true;
}
return false;
}
}
bestiony
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomers