Skip to content

Commit

Permalink
initialize model and re-migrate databases
Browse files Browse the repository at this point in the history
  • Loading branch information
arief-github committed Apr 21, 2024
1 parent 96dc01c commit 9dc7dfb
Show file tree
Hide file tree
Showing 9 changed files with 208 additions and 2 deletions.
20 changes: 19 additions & 1 deletion app/Models/Campaign.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ class Campaign extends Model
'description', 'image', 'user_id',
];

/**
* Relation with User
*/
public function user()
{
return $this->belongsTo(User::class);
}

/**
*
* Relation with Category
Expand All @@ -42,4 +50,14 @@ public function getImageAttribute($image)
{
return asset('storage/campaigns/'. $image);
}
}

/**
* sumDonation
*/
public function sumDonation()
{
return $this->hasMany(Donation::class)->selectRaw('donations.campaign_id, SUM(donations.amount) as total')
->where('donation.status', 'success')->groupBy('donations.campaign_id');
}

}
65 changes: 65 additions & 0 deletions app/Models/Donation.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Donation extends Model
{
use HasFactory;

/**
* fillable
*
* @var array
*/

protected $fillable = [
'invoice',
'campaign_id',
'donatur_id',
'amount',
'pray',
'status',
'snap_token'
];

/**
* category relation
* @return void
*/

public function category()
{
return $this->belongsTo(Category::class);
}

/**
* user relation
* @return void
*/

public function user()
{
return $this->belongsTo(User::class);
}

/**
* Campaign Relation
* @return void
*/
public function campaign()
{
return $this->belongsTo(Campaign::class);
}

/**
* Donatur Relations
*/

public function donatur()
{
return $this->belongsTo(Donatur::class);
}
}
39 changes: 39 additions & 0 deletions app/Models/Donatur.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Donatur extends Model
{
use HasFactory;

/**
* fillable
*
* @var array
*/

protected $fillable = [
'name', 'email', 'password', 'avatar'
];

/**
* hidden
* @var array
*/

protected $hidden = [
'password', 'remember_token',
];

/**
* donations relation
*/

public function donations()
{
return $this->hasMany(Donation::class);
}
}
9 changes: 9 additions & 0 deletions app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,13 @@ class User extends Authenticatable
protected $casts = [
'email_verified_at' => 'datetime',
];

/**
* Campaigns relation
*/

public function campaigns()
{
return $this->hasMany(Campaign::class);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public function up()
$table->date('max_date');
$table->text('description');
$table->string('image');
$table->unsignedBigInteger('user_id');
$table->unsignedInteger('user_id');
$table->timestamps();
});
}
Expand Down
37 changes: 37 additions & 0 deletions database/migrations/2021_02_17_013015_create_donaturs_table.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateDonatursTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('donaturs', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->string('avatar')->nullable();
$table->rememberToken();
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('donaturs');
}
}
38 changes: 38 additions & 0 deletions database/migrations/2021_02_17_021017_create_donations_table.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateDonationsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('donations', function (Blueprint $table) {
$table->id();
$table->string('invoice');
$table->unsignedInteger('campaign_id');
$table->unsignedInteger('donatur_id');
$table->bigInteger('amount');
$table->text('pray')->nullable();
$table->string('snap_token')->nullable();
$table->enum('status', array('pending', 'success', 'expired', 'failed'));
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('donations');
}
}

0 comments on commit 9dc7dfb

Please sign in to comment.