refactor: new_tv_req > activated_at change to approved_at

v2.0.0
ricky rx 1 year ago
parent 3322055ac5
commit 3ff470bc55

@ -17,7 +17,8 @@ class NewTvRequestController extends Controller {
'search' => DatabaseHelper::getSearchValidation() 'search' => DatabaseHelper::getSearchValidation()
]); ]);
$newTvRequests = NewTvRequest::addColumnCanApprove() $newTvRequests = NewTvRequest::with('tv')
->addColumnCanApprove()
->addColumnCanReject() ->addColumnCanReject()
->multiSearch($request->search, ['code']) ->multiSearch($request->search, ['code'])
->multiOrderBy($request->orderBys, 'created_at desc') ->multiOrderBy($request->orderBys, 'created_at desc')

@ -38,12 +38,12 @@ class NewTvRequest extends Model {
// -- RELATED TO SCOPE // -- RELATED TO SCOPE
public function scopeAddColumnCanApprove(Builder $query) { public function scopeAddColumnCanApprove(Builder $query) {
$query->withCount(['self as can_approve' => function($q) { $query->withCount(['self as can_approve' => function($q) {
$q->whereNull('activated_at'); $q->whereNull('approved_at');
}]); }]);
} }
public function scopeAddColumnCanReject(Builder $query) { public function scopeAddColumnCanReject(Builder $query) {
$query->withCount(['self as can_reject' => function($q) { $query->withCount(['self as can_reject' => function($q) {
$q->whereNull('activated_at'); $q->whereNull('approved_at');
}]); }]);
} }
// -- END RELATED TO SCOPE // -- END RELATED TO SCOPE
@ -64,16 +64,16 @@ class NewTvRequest extends Model {
/** /**
* Rule: * Rule:
* 1. if it has not been activated for more than the expiry date, deleted it * 1. if it has not been approved for more than the expiry date, deleted it
* 2. if it has been activated & has been responded more than expiry date, delete it * 2. if it has been approved & has been responded more than expiry date, delete it
* - case: when has been activated, but intenet connection missing, how can device know * - case: when has been approved, but intenet connection missing, how can device know
* that the new request tv has been activated? * that the new request tv has been approved?
*/ */
private static function _getMaxExpiredTime() :Carbon { return Carbon::now()->subHour(); } private static function _getMaxExpiredTime() :Carbon { return Carbon::now()->subHour(); }
public static function deleteExpiredRequests() { public static function deleteExpiredRequests() {
$expiredTime = self::_getMaxExpiredTime()->toDateTimeString(); $expiredTime = self::_getMaxExpiredTime()->toDateTimeString();
NewTvRequest::where(function($q) use ($expiredTime) { 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) { })->orWhere(function($q) use ($expiredTime) {
$q->where('responded_at', '<=', $expiredTime ); $q->where('responded_at', '<=', $expiredTime );
})->delete(); })->delete();
@ -84,7 +84,7 @@ class NewTvRequest extends Model {
//------------------------------------------------------------ //------------------------------------------------------------
// -- RELATED TO FROM REQUEST FUNCTION // -- RELATED TO FROM REQUEST FUNCTION
private static function _checkOrCreateResponse(NewTvRequest $newTvReq) { private static function _checkOrCreateResponse(NewTvRequest $newTvReq) {
if($newTvReq->activated_at) { if($newTvReq->approved_at) {
// make sure waiting tv_device responded before deleted // make sure waiting tv_device responded before deleted
if(empty($newTvReq->responded_at)) { if(empty($newTvReq->responded_at)) {
$newTvReq->responded_at = now(); $newTvReq->responded_at = now();
@ -92,7 +92,7 @@ class NewTvRequest extends Model {
} }
return JSONResponse::Success([ return JSONResponse::Success([
'message' => 'activated', 'message' => 'approved',
'new_tv_request' => $newTvReq, 'new_tv_request' => $newTvReq,
'tv' => $newTvReq->tv 'tv' => $newTvReq->tv
]); ]);
@ -176,7 +176,7 @@ class NewTvRequest extends Model {
$tv->save(); $tv->save();
TVLog::historyCreate($request->user(), $tv->id, $tv); TVLog::historyCreate($request->user(), $tv->id, $tv);
$newTvReq->activated_at = now(); $newTvReq->approved_at = now();
$newTvReq->tv_fk = $tv->id; $newTvReq->tv_fk = $tv->id;
$newTvReq->save(); $newTvReq->save();

@ -41,7 +41,7 @@ return new class extends Migration {
$table->string('code', 50); $table->string('code', 50);
$table->jsonb('device_info')->nullable(); $table->jsonb('device_info')->nullable();
$table->foreignId('tv_fk')->nullable(); $table->foreignId('tv_fk')->nullable();
$table->timestampTz('activated_at')->nullable(); $table->timestampTz('approved_at')->nullable();
$table->timestampTz('responded_at')->nullable(); $table->timestampTz('responded_at')->nullable();
$table->timestampsTz(); $table->timestampsTz();
}); });

Loading…
Cancel
Save