mirror of
https://github.com/nothingworksinc/ticketbeast.git
synced 2026-01-26 03:04:05 +00:00
5.3 - Preparing for Extraction
This commit is contained in:
@@ -32,7 +32,7 @@ class Concert extends Model
|
||||
|
||||
public function orders()
|
||||
{
|
||||
return $this->hasMany(Order::class);
|
||||
return $this->belongsToMany(Order::class, 'tickets');
|
||||
}
|
||||
|
||||
public function hasOrderFor($customerEmail)
|
||||
@@ -69,9 +69,9 @@ class Concert extends Model
|
||||
|
||||
public function createOrder($email, $tickets)
|
||||
{
|
||||
$order = $this->orders()->create([
|
||||
$order = Order::create([
|
||||
'email' => $email,
|
||||
'amount' => $tickets->count() * $this->ticket_price,
|
||||
'amount' => $tickets->sum('price'),
|
||||
]);
|
||||
|
||||
foreach ($tickets as $ticket) {
|
||||
|
||||
@@ -17,4 +17,14 @@ class Ticket extends Model
|
||||
{
|
||||
$this->update(['order_id' => null]);
|
||||
}
|
||||
|
||||
public function concert()
|
||||
{
|
||||
return $this->belongsTo(Concert::class);
|
||||
}
|
||||
|
||||
public function getPriceAttribute()
|
||||
{
|
||||
return $this->concert->ticket_price;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ class CreateOrdersTable extends Migration
|
||||
{
|
||||
Schema::create('orders', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->unsignedInteger('concert_id');
|
||||
$table->integer('amount');
|
||||
$table->string('email');
|
||||
$table->timestamps();
|
||||
|
||||
@@ -32,6 +32,7 @@ class PurchaseTicketsTest extends TestCase
|
||||
/** @test */
|
||||
function customer_can_purchase_tickets_to_a_published_concert()
|
||||
{
|
||||
$this->disableExceptionHandling();
|
||||
$concert = factory(Concert::class)->states('published')->create(['ticket_price' => 3250])->addTickets(3);
|
||||
|
||||
$this->orderTickets($concert, [
|
||||
|
||||
Reference in New Issue
Block a user