- Mail campaign: mẫu nhắc gia hạn thanh toán QR, chọn dịch vụ + chu kỳ từng dòng (renewal_services) - Hosting: nhiều server Plesk cho một gói (service_plan_servers), chuyển server khi server chết - Admin xem/sửa giấy tờ định danh khách, tuỳ chọn gia hạn cho khách, nhật ký cấp phát dịch vụ - Đánh dấu mẫu email dịch vụ là non-marketing Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
35 lines
1.2 KiB
PHP
35 lines
1.2 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Api\Admin\Customer\CustomerIdentityController;
|
|
use App\Http\Controllers\Api\Admin\Ticket\TicketController as AdminTicketController;
|
|
use App\Http\Controllers\Api\Admin\Transaction\AdminTransactionController;
|
|
use App\Support\CustomerIdentity;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::prefix('v1/administrator/transactions')
|
|
->as('admin.transactions.')
|
|
->middleware('signed')
|
|
->group(function () {
|
|
Route::get('{transaction:uuid}/proof-image/{index?}', [AdminTransactionController::class, 'proofImage'])
|
|
->whereNumber('index')
|
|
->name('proof-image');
|
|
});
|
|
|
|
Route::prefix('v1/administrator/tickets')
|
|
->as('admin.tickets.')
|
|
->middleware('signed')
|
|
->group(function () {
|
|
Route::get('{ticket}/images/{index}', [AdminTicketController::class, 'image'])
|
|
->whereNumber('index')
|
|
->name('image');
|
|
});
|
|
|
|
Route::prefix('v1/administrator/customers')
|
|
->as('admin.customers.')
|
|
->middleware('signed')
|
|
->group(function () {
|
|
Route::get('{customer:uuid}/identity-image/{side}', [CustomerIdentityController::class, 'image'])
|
|
->whereIn('side', array_keys(CustomerIdentity::SIDES))
|
|
->name('identity-image');
|
|
});
|