From 7a35ebe54f1088b9d81a6f57368e279107dc6cc1 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 13 Jun 2018 13:57:06 +0800 Subject: [PATCH] Add subscription model docblocks --- app/Entities/Subscriptions/Subscription.php | 75 ++++++++++++++++++++-- .../Subscriptions/SubscriptionsRepository.php | 17 +++++ app/Entities/Subscriptions/Type.php | 25 +++++++- 3 files changed, 110 insertions(+), 7 deletions(-) diff --git a/app/Entities/Subscriptions/Subscription.php b/app/Entities/Subscriptions/Subscription.php index 2653579..1dff03e 100755 --- a/app/Entities/Subscriptions/Subscription.php +++ b/app/Entities/Subscriptions/Subscription.php @@ -5,68 +5,133 @@ namespace App\Entities\Subscriptions; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; +/** + * Subscription Model. + * + * @author Nafies Luthfi + */ class Subscription extends Model { + /** + * The attributes that aren't mass assignable. + * + * @var array + */ protected $guarded = ['id', 'created_at', 'updated_at']; + /** + * Show subscription name with link to subscription detail. + * + * @return Illuminate\Support\HtmlString + */ public function nameLink() { return link_to_route('subscriptions.show', $this->name, [$this->id], [ - 'title' => trans( + 'title' => __( 'app.show_detail_title', - ['name' => $this->name, 'type' => trans('subscription.subscription')] + ['name' => $this->name, 'type' => __('subscription.subscription')] ), ]); } + /** + * Check weather the subscription is near it's due date. + * + * @return bool + */ public function nearOfDueDate() { return Carbon::parse($this->due_date)->diffInDays(Carbon::now()) < 60; } + /** + * Show the subscription near due date sign (icon). + * + * @return string + */ public function nearOfDueDateSign() { return $this->nearOfDueDate() ? '' : ''; } + /** + * Subscription near due date description. + * + * @return string + */ public function dueDateDescription() { - $dueDateDescription = trans('subscription.start_date').' : '.dateId($this->start_date)."\n"; - $dueDateDescription .= trans('subscription.due_date').' : '.dateId($this->due_date); + $dueDateDescription = __('subscription.start_date').' : '.dateId($this->start_date)."\n"; + $dueDateDescription .= __('subscription.due_date').' : '.dateId($this->due_date); return $dueDateDescription; } + /** + * Subscription belongs to Project relation. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ public function project() { return $this->belongsTo('App\Entities\Projects\Project'); } + /** + * Subscription belongs to Customer relation. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ public function customer() { return $this->belongsTo('App\Entities\Partners\Customer'); } + /** + * Subscription belongs to Vendor relation. + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ public function vendor() { return $this->belongsTo('App\Entities\Partners\Vendor'); } + /** + * Get subscription status to display in the view. + * + * @return string + */ public function status() { - return $this->status_id == 1 ? trans('app.active') : trans('app.in_active'); + return $this->status_id == 1 ? __('app.active') : __('app.in_active'); } + /** + * Add type attribute on Subscription model. + * + * @return string + */ public function getTypeAttribute() { return Type::getNameById($this->type_id); } + /** + * Add type_color attribute on Subscription model. + * + * @return string + */ public function getTypeColorAttribute() { return Type::getColorById($this->type_id); } + /** + * Add type_label attribute on Subscription model. + * + * @return string + */ public function getTypeLabelAttribute() { return ''.$this->type.''; diff --git a/app/Entities/Subscriptions/SubscriptionsRepository.php b/app/Entities/Subscriptions/SubscriptionsRepository.php index 4556018..ec203d1 100755 --- a/app/Entities/Subscriptions/SubscriptionsRepository.php +++ b/app/Entities/Subscriptions/SubscriptionsRepository.php @@ -9,13 +9,30 @@ use App\Entities\BaseRepository; */ class SubscriptionsRepository extends BaseRepository { + /** + * Subscription model. + * + * @var \App\Entities\Subscriptions\Subscription + */ protected $model; + /** + * Create SubscriptionRepository class instance. + * + * @param \App\Entities\Subscriptions\Subscription $model + */ public function __construct(Subscription $model) { parent::__construct($model); } + /** + * Get subscrioption list. + * + * @param string $q + * @param int $customerId + * @return \Illuminate\Pagination\LengthAwarePaginator + */ public function getSubscriptions($q, $customerId) { return $this->model->orderBy('status_id', 'desc') diff --git a/app/Entities/Subscriptions/Type.php b/app/Entities/Subscriptions/Type.php index 1974cd4..72ffc2d 100644 --- a/app/Entities/Subscriptions/Type.php +++ b/app/Entities/Subscriptions/Type.php @@ -6,28 +6,49 @@ use App\Entities\ReferenceAbstract; class Type extends ReferenceAbstract { + /** + * List of subscription type item. + * + * @var array + */ protected static $lists = [ 1 => 'domain', 2 => 'hosting', 3 => 'maintenance', ]; + /** + * List of subscription color by type. + * + * @var array + */ protected static $colors = [ 1 => '#337ab7', 2 => '#4caf50', 3 => '#00b3ff', ]; + /** + * Get type name by id. + * + * @param int $singleId + * @return string + */ public static function getNameById($singleId) { - return trans('subscription.types.'.static::getById($singleId)); + return __('subscription.types.'.static::getById($singleId)); } + /** + * Get subscription type items in array format. + * + * @return array + */ public static function toArray() { $lists = []; foreach (static::$lists as $key => $value) { - $lists[$key] = trans('subscription.types.'.$value); + $lists[$key] = __('subscription.types.'.$value); } return $lists;