Files
ticketbeast/app/Concert.php
2016-11-13 19:18:52 -05:00

66 lines
1.3 KiB
PHP

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Concert extends Model
{
protected $guarded = [];
protected $dates = ['date'];
public function scopePublished($query)
{
return $query->whereNotNull('published_at');
}
public function getFormattedDateAttribute()
{
return $this->date->format('F j, Y');
}
public function getFormattedStartTimeAttribute()
{
return $this->date->format('g:ia');
}
public function getTicketPriceInDollarsAttribute()
{
return number_format($this->ticket_price / 100, 2);
}
public function orders()
{
return $this->hasMany(Order::class);
}
public function tickets()
{
return $this->hasMany(Ticket::class);
}
public function orderTickets($email, $ticketQuantity)
{
$order = $this->orders()->create(['email' => $email]);
$tickets = $this->tickets()->take($ticketQuantity)->get();
foreach ($tickets as $ticket) {
$order->tickets()->save($ticket);
}
return $order;
}
public function addTickets($quantity)
{
foreach (range(1, $quantity) as $i) {
$this->tickets()->create([]);
}
}
public function ticketsRemaining()
{
return $this->tickets()->whereNull('order_id')->count();
}
}