From 3ff470bc554f02bddf49772a402bdce6db509d30 Mon Sep 17 00:00:00 2001 From: ricky rx Date: Sat, 22 Jun 2024 14:05:06 +0700 Subject: [PATCH] refactor: new_tv_req > activated_at change to approved_at --- .../superadmin/tv/NewTvRequestController.php | 3 ++- app/Models/NewTvRequest.php | 20 +++++++++---------- database/migrations/2024_05_18_033105_tv.php | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/api/superadmin/tv/NewTvRequestController.php b/app/Http/Controllers/api/superadmin/tv/NewTvRequestController.php index 8eca953..0052c55 100644 --- a/app/Http/Controllers/api/superadmin/tv/NewTvRequestController.php +++ b/app/Http/Controllers/api/superadmin/tv/NewTvRequestController.php @@ -17,7 +17,8 @@ class NewTvRequestController extends Controller { 'search' => DatabaseHelper::getSearchValidation() ]); - $newTvRequests = NewTvRequest::addColumnCanApprove() + $newTvRequests = NewTvRequest::with('tv') + ->addColumnCanApprove() ->addColumnCanReject() ->multiSearch($request->search, ['code']) ->multiOrderBy($request->orderBys, 'created_at desc') diff --git a/app/Models/NewTvRequest.php b/app/Models/NewTvRequest.php index 68fcde1..cfce1be 100644 --- a/app/Models/NewTvRequest.php +++ b/app/Models/NewTvRequest.php @@ -38,12 +38,12 @@ class NewTvRequest extends Model { // -- RELATED TO SCOPE public function scopeAddColumnCanApprove(Builder $query) { $query->withCount(['self as can_approve' => function($q) { - $q->whereNull('activated_at'); + $q->whereNull('approved_at'); }]); } public function scopeAddColumnCanReject(Builder $query) { $query->withCount(['self as can_reject' => function($q) { - $q->whereNull('activated_at'); + $q->whereNull('approved_at'); }]); } // -- END RELATED TO SCOPE @@ -64,16 +64,16 @@ class NewTvRequest extends Model { /** * Rule: - * 1. if it has not been activated for more than the expiry date, deleted it - * 2. if it has been activated & has been responded more than expiry date, delete it - * - case: when has been activated, but intenet connection missing, how can device know - * that the new request tv has been activated? + * 1. if it has not been approved for more than the expiry date, deleted it + * 2. if it has been approved & has been responded more than expiry date, delete it + * - case: when has been approved, but intenet connection missing, how can device know + * that the new request tv has been approved? */ private static function _getMaxExpiredTime() :Carbon { return Carbon::now()->subHour(); } public static function deleteExpiredRequests() { $expiredTime = self::_getMaxExpiredTime()->toDateTimeString(); NewTvRequest::where(function($q) use ($expiredTime) { - $q->whereNull('activated_at')->where('created_at', '<=', $expiredTime); + $q->whereNull('approved_at')->where('created_at', '<=', $expiredTime); })->orWhere(function($q) use ($expiredTime) { $q->where('responded_at', '<=', $expiredTime ); })->delete(); @@ -84,7 +84,7 @@ class NewTvRequest extends Model { //------------------------------------------------------------ // -- RELATED TO FROM REQUEST FUNCTION private static function _checkOrCreateResponse(NewTvRequest $newTvReq) { - if($newTvReq->activated_at) { + if($newTvReq->approved_at) { // make sure waiting tv_device responded before deleted if(empty($newTvReq->responded_at)) { $newTvReq->responded_at = now(); @@ -92,7 +92,7 @@ class NewTvRequest extends Model { } return JSONResponse::Success([ - 'message' => 'activated', + 'message' => 'approved', 'new_tv_request' => $newTvReq, 'tv' => $newTvReq->tv ]); @@ -176,7 +176,7 @@ class NewTvRequest extends Model { $tv->save(); TVLog::historyCreate($request->user(), $tv->id, $tv); - $newTvReq->activated_at = now(); + $newTvReq->approved_at = now(); $newTvReq->tv_fk = $tv->id; $newTvReq->save(); diff --git a/database/migrations/2024_05_18_033105_tv.php b/database/migrations/2024_05_18_033105_tv.php index 98f8b12..c3aedad 100644 --- a/database/migrations/2024_05_18_033105_tv.php +++ b/database/migrations/2024_05_18_033105_tv.php @@ -41,7 +41,7 @@ return new class extends Migration { $table->string('code', 50); $table->jsonb('device_info')->nullable(); $table->foreignId('tv_fk')->nullable(); - $table->timestampTz('activated_at')->nullable(); + $table->timestampTz('approved_at')->nullable(); $table->timestampTz('responded_at')->nullable(); $table->timestampsTz(); });