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