Files
ticketbeast/app/Order.php
2017-03-13 12:40:18 -04:00

56 lines
1.2 KiB
PHP

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
protected $guarded = [];
public static function forTickets($tickets, $email, $amount)
{
$order = self::create([
'confirmation_number' => app(OrderConfirmationNumberGenerator::class)->generate(),
'email' => $email,
'amount' => $amount,
]);
foreach ($tickets as $ticket) {
$order->tickets()->save($ticket);
}
return $order;
}
public static function findByConfirmationNumber($confirmationNumber)
{
return self::where('confirmation_number', $confirmationNumber)->firstOrFail();
}
public function concert()
{
return $this->belongsTo(Concert::class);
}
public function tickets()
{
return $this->hasMany(Ticket::class);
}
public function ticketQuantity()
{
return $this->tickets()->count();
}
public function toArray()
{
return [
'confirmation_number' => $this->confirmation_number,
'email' => $this->email,
'ticket_quantity' => $this->ticketQuantity(),
'amount' => $this->amount,
];
}
}