Compare commits

...

8 Commits

Author SHA1 Message Date
1746ba4a60 ok 2025-07-04 19:00:47 +05:00
cfcfdefc36 update 2025-07-04 10:26:02 +05:00
647979fdef ok 2025-07-04 10:17:36 +05:00
aaf8d067f9 update users 2025-07-03 23:49:26 +05:00
6eb3628fd8 wip 2025-07-03 22:07:14 +05:00
f257559f42 wip 2025-07-03 21:27:47 +05:00
6540668f9f wip 2025-07-03 21:21:35 +05:00
251c19319a wip 2025-07-03 20:40:23 +05:00
10 changed files with 164 additions and 13 deletions

View File

@@ -116,7 +116,7 @@ function sendSMS(string|int $phone, string|int $message)
*/
function sendSMSVerification(string|int $phone_number): ?Verification
{
$phone_code = rand(10000, 99999);
$phone_code = rand(100000, 999999);
$verification = Verification::where(['username' => $phone_number])->first();
$verification ? $verification->update(['code' => $phone_code]) : Verification::create(['username' => $phone_number, 'code' => $phone_code]);

View File

@@ -31,6 +31,23 @@ class AlertController extends Controller
return response()->json($this->format($alerts));
}
/**
* All alerts
*/
public function all(): JsonResponse
{
/** @var \App\Models\User */
$user = auth()->user();
/** @var \Illuminate\Database\Eloquent\Builder<Alert> */
$alerstQuery = $user->alerts();
/** @var Collection<array-key, Alert> */
$alerts = $alerstQuery->get();
return response()->json($this->format($alerts));
}
/**
* Format
*

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\CMS\ContactUs;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
class ContactUsController extends Controller
{
/**
* Store contact us message
*/
public function store(Request $request)
{
$data = $request->validate([
/**
* Message Title
*
* @example Salam
*/
'title' => ['required', 'string', 'max:255'],
/**
* Message content
*
* @example Bet app
*/
'message' => ['required', 'string', 'max:255'],
]);
ContactUs::forceCreate(
...$data,
...[
'user_id' => auth()->id(),
],
);
return response()->json([
'message' => __('Successfully created'),
], 201);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Models\CMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
/**
* @property int $id
* @property int $user_id
* @property string $title
* @property string $message
* @property \Illuminate\Support\Facades\Date $created_at
* @property \Illuminate\Support\Facades\Date $updated_at
*/
class ContactUs extends Model
{
use HasFactory;
}

View File

@@ -94,4 +94,15 @@ class LoanPaidOffLetterOrder extends Model
{
return $this->belongsTo(Branch::class, 'branch_id');
}
/**
* "boot" method for model
*/
protected static function boot()
{
parent::boot();
static::creating(LoanOrderRepo::creating());
static::created(LoanOrderRepo::created());
}
}

View File

@@ -59,7 +59,15 @@ class ApiAuthController extends Controller
]);
return response()->json([
'message' => $user->createToken(bin2hex(random_bytes(20)))->plainTextToken,
'success' => true,
'token' => $user->createToken(bin2hex(random_bytes(20)))->plainTextToken,
'message' => __('successfully verified'),
'user' => [
'name' => $user->name,
'phone' => $user->phone,
'passport_serie' => $user->getOption('passport_serie'),
'passport_id' => $user->getOption('passport_id'),
],
]);
}

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Modules\VisaMasterPaymentOrder\Controllers;
use App\Http\Controllers\Controller;
class VisaMasterPaymentOrderController extends Controller
{
public function index()
{
}
}

View File

@@ -118,17 +118,6 @@ class LoanPaidOffLetterOrder extends Resource
return $query->where('user_id', $request->user()->id);
}
/**
* After resource created
*
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
*/
public static function afterCreate(NovaRequest $request, Model $model): void
{
$model->update(['unique_id' => CardOrderRepo::fillUniqueId($model)]);
}
/**
* Get the fields for index.
*

View File

@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('contact_us', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('message');
$table->foreignId('user_id')->nullable()->constrained()->nullOnDelete();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('contact_us');
}
};

View File

@@ -6,6 +6,7 @@ use App\Http\Controllers\Api\CardOrder\CardOrderController;
use App\Http\Controllers\Api\CardPin\CardPinController;
use App\Http\Controllers\Api\CardRequisite\CardRequisiteController;
use App\Http\Controllers\Api\CardTransaction\CardTransactionsController;
use App\Http\Controllers\Api\ContactUsController;
use App\Http\Controllers\Api\FetchLoanHistoryController;
use App\Http\Controllers\Api\LoanOrder\Remaining\LoanOrderRemainingOrderController;
use App\Http\Controllers\Api\LoanPaidOffLetterOrderController;
@@ -20,6 +21,7 @@ use App\Modules\Branch\Controllers\BranchController;
use App\Modules\LoanOrder\Controllers\LoanOrderController;
use App\Modules\LoanRemainingOrder\Controllers\LoanRemainingOrderController;
use App\Modules\Province\Controllers\ProvinceController;
use App\Modules\VisaMasterPaymentOrder\Controllers\VisaMasterPaymentOrderController;
use Illuminate\Support\Facades\Route;
use Laravel\Nova\Http\Middleware\Authenticate;
use Laravel\Nova\Http\Middleware\Authorize;
@@ -63,6 +65,8 @@ Route::get('provinces', [ProvinceController::class, 'index']);
Route::get('base-app-enums', [BaseAppEnumController::class, 'index']);
Route::middleware(['auth:sanctum', 'not_banned'])->group(function () {
Route::post('contact-us', [ContactUsController::class, 'store']);
// Profile... [tested fully]
Route::get('profile', [ProfileController::class, 'index']);
Route::post('profile', [ProfileController::class, 'store']);
@@ -94,6 +98,7 @@ Route::middleware(['auth:sanctum', 'not_banned'])->group(function () {
// Alerts... [tested fully]
Route::get('alerts', [AlertController::class, 'index']);
Route::get('alerts-all', [AlertController::class, 'all']);
// Card orders... [tested fully]
Route::get('card-order', [CardOrderController::class, 'index']);
@@ -132,4 +137,18 @@ Route::middleware(['auth:sanctum', 'not_banned'])->group(function () {
Route::post('card-pin-order', [CardPinController::class, 'store']);
Route::post('card-pin-order/{order}', [CardPinController::class, 'update']);
Route::delete('card-pin-order/{order}', [CardPinController::class, 'destroy']);
// Visa/Master order...
Route::get('visa-master-order', [VisaMasterPaymentOrderController::class, 'index']);
// Route::get('visa-master-order/{order}', [VisaMasterPaymentOrderController::class, 'show']);
// Route::post('visa-master-order', [VisaMasterPaymentOrderController::class, 'store']);
// Route::post('visa-master-order/{order}', [VisaMasterPaymentOrderController::class, 'update']);
// Route::delete('visa-master-order/{order}', [VisaMasterPaymentOrderController::class, 'destroy']);
// Sber order...
// Route::get('sber-order', [SberOrderController::class, 'index']);
// Route::get('sber-order/{order}', [SberOrderController::class, 'show']);
// Route::post('sber-order', [SberOrderController::class, 'store']);
// Route::post('sber-order/{order}', [SberOrderController::class, 'update']);
// Route::delete('sber-order/{order}', [SberOrderController::class, 'destroy']);
});