chore: [env] .env.example 업데이트 및 .gitignore 정리
- .env.example을 SAM 프로젝트 실제 키 구조로 업데이트 - .gitignore에 !.env.example 예외 추가 - GCS_* 중복 키 제거, Gemini/Claude/Vertex 키 섹션 추가
This commit is contained in:
@@ -1,73 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Barobill\BankServiceUrlRequest;
|
||||
use App\Http\Requests\Barobill\BarobillLoginRequest;
|
||||
use App\Http\Requests\Barobill\BarobillSignupRequest;
|
||||
use App\Services\Barobill\BarobillSoapService;
|
||||
|
||||
class BarobillController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
private BarobillSoapService $barobillSoapService
|
||||
) {}
|
||||
|
||||
public function login(BarobillLoginRequest $request)
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->barobillSoapService->registerLogin($request->validated()),
|
||||
__('message.barobill.login_success')
|
||||
);
|
||||
}
|
||||
|
||||
public function signup(BarobillSignupRequest $request)
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->barobillSoapService->registerSignup($request->validated()),
|
||||
__('message.barobill.signup_success')
|
||||
);
|
||||
}
|
||||
|
||||
public function bankServiceUrl(BankServiceUrlRequest $request)
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->barobillSoapService->getBankServiceRedirectUrl($request->validated()),
|
||||
__('message.fetched')
|
||||
);
|
||||
}
|
||||
|
||||
public function status()
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->barobillSoapService->getIntegrationStatus(),
|
||||
__('message.fetched')
|
||||
);
|
||||
}
|
||||
|
||||
public function accountLinkUrl()
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->barobillSoapService->getAccountLinkRedirectUrl(),
|
||||
__('message.fetched')
|
||||
);
|
||||
}
|
||||
|
||||
public function cardLinkUrl()
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->barobillSoapService->getCardLinkRedirectUrl(),
|
||||
__('message.fetched')
|
||||
);
|
||||
}
|
||||
|
||||
public function certificateUrl()
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->barobillSoapService->getCertificateRedirectUrl(),
|
||||
__('message.fetched')
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\V1\CorporateCard\StoreCorporateCardRequest;
|
||||
use App\Http\Requests\V1\CorporateCard\UpdateCorporateCardRequest;
|
||||
use App\Services\CorporateCardService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CorporateCardController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
private readonly CorporateCardService $service
|
||||
) {}
|
||||
|
||||
/**
|
||||
* 법인카드 목록
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$params = $request->only([
|
||||
'search',
|
||||
'status',
|
||||
'card_type',
|
||||
'sort_by',
|
||||
'sort_dir',
|
||||
'per_page',
|
||||
'page',
|
||||
]);
|
||||
|
||||
$cards = $this->service->index($params);
|
||||
|
||||
return ApiResponse::success($cards, __('message.fetched'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 법인카드 등록
|
||||
*/
|
||||
public function store(StoreCorporateCardRequest $request)
|
||||
{
|
||||
$card = $this->service->store($request->validated());
|
||||
|
||||
return ApiResponse::success($card, __('message.created'), [], 201);
|
||||
}
|
||||
|
||||
/**
|
||||
* 법인카드 상세
|
||||
*/
|
||||
public function show(int $id)
|
||||
{
|
||||
$card = $this->service->show($id);
|
||||
|
||||
return ApiResponse::success($card, __('message.fetched'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 법인카드 수정
|
||||
*/
|
||||
public function update(int $id, UpdateCorporateCardRequest $request)
|
||||
{
|
||||
$card = $this->service->update($id, $request->validated());
|
||||
|
||||
return ApiResponse::success($card, __('message.updated'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 법인카드 삭제
|
||||
*/
|
||||
public function destroy(int $id)
|
||||
{
|
||||
$this->service->destroy($id);
|
||||
|
||||
return ApiResponse::success(null, __('message.deleted'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 법인카드 상태 토글 (사용/정지)
|
||||
*/
|
||||
public function toggle(int $id)
|
||||
{
|
||||
$card = $this->service->toggleStatus($id);
|
||||
|
||||
return ApiResponse::success($card, __('message.updated'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 활성 법인카드 목록 (셀렉트박스용)
|
||||
*/
|
||||
public function active()
|
||||
{
|
||||
$cards = $this->service->getActiveCards();
|
||||
|
||||
return ApiResponse::success($cards, __('message.fetched'));
|
||||
}
|
||||
}
|
||||
@@ -4,30 +4,28 @@
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Authz\RoleIndexRequest;
|
||||
use App\Http\Requests\Authz\RoleStoreRequest;
|
||||
use App\Http\Requests\Authz\RoleUpdateRequest;
|
||||
use App\Services\Authz\RoleService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RoleController extends Controller
|
||||
{
|
||||
/**
|
||||
* 역할 목록 조회
|
||||
*/
|
||||
public function index(RoleIndexRequest $request)
|
||||
public function index(Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($request) {
|
||||
return RoleService::index($request->validated());
|
||||
return RoleService::index($request->all());
|
||||
}, __('message.fetched'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 역할 생성
|
||||
*/
|
||||
public function store(RoleStoreRequest $request)
|
||||
public function store(Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($request) {
|
||||
return RoleService::store($request->validated());
|
||||
return RoleService::store($request->all());
|
||||
}, __('message.created'));
|
||||
}
|
||||
|
||||
@@ -44,10 +42,10 @@ public function show($id)
|
||||
/**
|
||||
* 역할 수정
|
||||
*/
|
||||
public function update(RoleUpdateRequest $request, $id)
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($request, $id) {
|
||||
return RoleService::update((int) $id, $request->validated());
|
||||
return RoleService::update((int) $id, $request->all());
|
||||
}, __('message.updated'));
|
||||
}
|
||||
|
||||
|
||||
@@ -4,38 +4,37 @@
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Authz\RolePermissionGrantRequest;
|
||||
use App\Http\Requests\Authz\RolePermissionToggleRequest;
|
||||
use App\Services\Authz\RolePermissionService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RolePermissionController extends Controller
|
||||
{
|
||||
public function index($id)
|
||||
public function index($id, Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id) {
|
||||
return RolePermissionService::list((int) $id);
|
||||
}, __('message.fetched'));
|
||||
}, '역할 퍼미션 목록 조회');
|
||||
}
|
||||
|
||||
public function grant($id, RolePermissionGrantRequest $request)
|
||||
public function grant($id, Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id, $request) {
|
||||
return RolePermissionService::grant((int) $id, $request->validated());
|
||||
}, __('message.updated'));
|
||||
return RolePermissionService::grant((int) $id, $request->all());
|
||||
}, '역할 퍼미션 부여');
|
||||
}
|
||||
|
||||
public function revoke($id, RolePermissionGrantRequest $request)
|
||||
public function revoke($id, Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id, $request) {
|
||||
return RolePermissionService::revoke((int) $id, $request->validated());
|
||||
}, __('message.updated'));
|
||||
return RolePermissionService::revoke((int) $id, $request->all());
|
||||
}, '역할 퍼미션 회수');
|
||||
}
|
||||
|
||||
public function sync($id, RolePermissionGrantRequest $request)
|
||||
public function sync($id, Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id, $request) {
|
||||
return RolePermissionService::sync((int) $id, $request->validated());
|
||||
}, __('message.updated'));
|
||||
return RolePermissionService::sync((int) $id, $request->all());
|
||||
}, '역할 퍼미션 동기화');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,10 +60,10 @@ public function matrix($id)
|
||||
/**
|
||||
* 특정 메뉴의 특정 권한 토글
|
||||
*/
|
||||
public function toggle($id, RolePermissionToggleRequest $request)
|
||||
public function toggle($id, Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id, $request) {
|
||||
return RolePermissionService::toggle((int) $id, $request->validated());
|
||||
return RolePermissionService::toggle((int) $id, $request->all());
|
||||
}, __('message.updated'));
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\TaxInvoice\CancelTaxInvoiceRequest;
|
||||
use App\Http\Requests\TaxInvoice\CreateTaxInvoiceRequest;
|
||||
use App\Http\Requests\TaxInvoice\SaveSupplierSettingsRequest;
|
||||
use App\Http\Requests\TaxInvoice\TaxInvoiceListRequest;
|
||||
use App\Http\Requests\TaxInvoice\TaxInvoiceSummaryRequest;
|
||||
use App\Http\Requests\TaxInvoice\UpdateTaxInvoiceRequest;
|
||||
@@ -24,9 +23,11 @@ public function __construct(
|
||||
*/
|
||||
public function index(TaxInvoiceListRequest $request)
|
||||
{
|
||||
$taxInvoices = $this->taxInvoiceService->list($request->validated());
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->list($request->validated()),
|
||||
__('message.fetched')
|
||||
data: $taxInvoices,
|
||||
message: __('message.fetched')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -35,9 +36,11 @@ public function index(TaxInvoiceListRequest $request)
|
||||
*/
|
||||
public function show(int $id)
|
||||
{
|
||||
$taxInvoice = $this->taxInvoiceService->show($id);
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->show($id),
|
||||
__('message.fetched')
|
||||
data: $taxInvoice,
|
||||
message: __('message.fetched')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -46,9 +49,12 @@ public function show(int $id)
|
||||
*/
|
||||
public function store(CreateTaxInvoiceRequest $request)
|
||||
{
|
||||
$taxInvoice = $this->taxInvoiceService->create($request->validated());
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->create($request->validated()),
|
||||
__('message.created')
|
||||
data: $taxInvoice,
|
||||
message: __('message.created'),
|
||||
status: 201
|
||||
);
|
||||
}
|
||||
|
||||
@@ -57,9 +63,11 @@ public function store(CreateTaxInvoiceRequest $request)
|
||||
*/
|
||||
public function update(UpdateTaxInvoiceRequest $request, int $id)
|
||||
{
|
||||
$taxInvoice = $this->taxInvoiceService->update($id, $request->validated());
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->update($id, $request->validated()),
|
||||
__('message.updated')
|
||||
data: $taxInvoice,
|
||||
message: __('message.updated')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -68,9 +76,11 @@ public function update(UpdateTaxInvoiceRequest $request, int $id)
|
||||
*/
|
||||
public function destroy(int $id)
|
||||
{
|
||||
$this->taxInvoiceService->delete($id);
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->delete($id),
|
||||
__('message.deleted')
|
||||
data: null,
|
||||
message: __('message.deleted')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -79,9 +89,11 @@ public function destroy(int $id)
|
||||
*/
|
||||
public function issue(int $id)
|
||||
{
|
||||
$taxInvoice = $this->taxInvoiceService->issue($id);
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->issue($id),
|
||||
__('message.tax_invoice.issued')
|
||||
data: $taxInvoice,
|
||||
message: __('message.tax_invoice.issued')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -90,9 +102,11 @@ public function issue(int $id)
|
||||
*/
|
||||
public function bulkIssue(BulkIssueRequest $request)
|
||||
{
|
||||
$result = $this->taxInvoiceService->bulkIssue($request->getIds());
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->bulkIssue($request->getIds()),
|
||||
__('message.tax_invoice.bulk_issued')
|
||||
data: $result,
|
||||
message: __('message.tax_invoice.bulk_issued')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -101,9 +115,11 @@ public function bulkIssue(BulkIssueRequest $request)
|
||||
*/
|
||||
public function cancel(CancelTaxInvoiceRequest $request, int $id)
|
||||
{
|
||||
$taxInvoice = $this->taxInvoiceService->cancel($id, $request->validated()['reason']);
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->cancel($id, $request->validated()['reason']),
|
||||
__('message.tax_invoice.cancelled')
|
||||
data: $taxInvoice,
|
||||
message: __('message.tax_invoice.cancelled')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -112,9 +128,11 @@ public function cancel(CancelTaxInvoiceRequest $request, int $id)
|
||||
*/
|
||||
public function checkStatus(int $id)
|
||||
{
|
||||
$taxInvoice = $this->taxInvoiceService->checkStatus($id);
|
||||
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->checkStatus($id),
|
||||
__('message.fetched')
|
||||
data: $taxInvoice,
|
||||
message: __('message.fetched')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -123,42 +141,11 @@ public function checkStatus(int $id)
|
||||
*/
|
||||
public function summary(TaxInvoiceSummaryRequest $request)
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->summary($request->validated()),
|
||||
__('message.fetched')
|
||||
);
|
||||
}
|
||||
$summary = $this->taxInvoiceService->summary($request->validated());
|
||||
|
||||
/**
|
||||
* 공급자 설정 조회
|
||||
*/
|
||||
public function supplierSettings()
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->getSupplierSettings(),
|
||||
__('message.fetched')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 공급자 설정 저장
|
||||
*/
|
||||
public function saveSupplierSettings(SaveSupplierSettingsRequest $request)
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->saveSupplierSettings($request->validated()),
|
||||
__('message.updated')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 세금계산서 생성 + 즉시 발행
|
||||
*/
|
||||
public function storeAndIssue(CreateTaxInvoiceRequest $request)
|
||||
{
|
||||
return ApiResponse::handle(
|
||||
fn () => $this->taxInvoiceService->createAndIssue($request->validated()),
|
||||
__('message.tax_invoice.issued')
|
||||
data: $summary,
|
||||
message: __('message.fetched')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
use App\Helpers\ApiResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Authz\UserRoleGrantRequest;
|
||||
use App\Services\Authz\UserRoleService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UserRoleController extends Controller
|
||||
{
|
||||
@@ -13,27 +13,27 @@ public function index($id)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id) {
|
||||
return UserRoleService::list((int) $id);
|
||||
}, __('message.fetched'));
|
||||
}, '사용자의 역할 목록 조회');
|
||||
}
|
||||
|
||||
public function grant($id, UserRoleGrantRequest $request)
|
||||
public function grant($id, Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id, $request) {
|
||||
return UserRoleService::grant((int) $id, $request->validated());
|
||||
}, __('message.updated'));
|
||||
return UserRoleService::grant((int) $id, $request->all());
|
||||
}, '사용자에게 역할 부여');
|
||||
}
|
||||
|
||||
public function revoke($id, UserRoleGrantRequest $request)
|
||||
public function revoke($id, Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id, $request) {
|
||||
return UserRoleService::revoke((int) $id, $request->validated());
|
||||
}, __('message.updated'));
|
||||
return UserRoleService::revoke((int) $id, $request->all());
|
||||
}, '사용자의 역할 회수');
|
||||
}
|
||||
|
||||
public function sync($id, UserRoleGrantRequest $request)
|
||||
public function sync($id, Request $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($id, $request) {
|
||||
return UserRoleService::sync((int) $id, $request->validated());
|
||||
}, __('message.updated'));
|
||||
return UserRoleService::sync((int) $id, $request->all());
|
||||
}, '사용자의 역할 동기화');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Authz;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class RoleIndexRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'page' => 'sometimes|integer|min:1',
|
||||
'size' => 'sometimes|integer|min:1|max:100',
|
||||
'q' => 'sometimes|nullable|string|max:100',
|
||||
'is_hidden' => 'sometimes|boolean',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Authz;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class RolePermissionGrantRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'permission_names' => 'sometimes|array',
|
||||
'permission_names.*' => 'string|min:1',
|
||||
'menus' => 'sometimes|array',
|
||||
'menus.*' => 'integer|min:1',
|
||||
'actions' => 'sometimes|array',
|
||||
'actions.*' => [
|
||||
'string', Rule::in(config('authz.menu_actions', ['view', 'create', 'update', 'delete', 'approve'])),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function withValidator($validator): void
|
||||
{
|
||||
$validator->after(function ($validator) {
|
||||
$data = $this->all();
|
||||
if (empty($data['permission_names']) && (empty($data['menus']) || empty($data['actions']))) {
|
||||
$validator->errors()->add('permission_names', __('error.role.permission_input_required'));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Authz;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class RolePermissionToggleRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$permissionTypes = config('authz.menu_actions', ['view', 'create', 'update', 'delete', 'approve', 'export', 'manage']);
|
||||
|
||||
return [
|
||||
'menu_id' => 'required|integer|min:1',
|
||||
'permission_type' => ['required', 'string', Rule::in($permissionTypes)],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Authz;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class RoleStoreRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$tenantId = (int) app('tenant_id');
|
||||
$guard = 'api';
|
||||
|
||||
return [
|
||||
'name' => [
|
||||
'required', 'string', 'max:100',
|
||||
Rule::unique('roles', 'name')->where(fn ($q) => $q
|
||||
->where('tenant_id', $tenantId)
|
||||
->where('guard_name', $guard)),
|
||||
],
|
||||
'description' => 'nullable|string|max:255',
|
||||
'is_hidden' => 'sometimes|boolean',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Authz;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class RoleUpdateRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$tenantId = (int) app('tenant_id');
|
||||
$guard = 'api';
|
||||
$roleId = (int) $this->route('id');
|
||||
|
||||
return [
|
||||
'name' => [
|
||||
'sometimes', 'string', 'max:100',
|
||||
Rule::unique('roles', 'name')
|
||||
->where(fn ($q) => $q->where('tenant_id', $tenantId)->where('guard_name', $guard))
|
||||
->ignore($roleId),
|
||||
],
|
||||
'description' => 'sometimes|nullable|string|max:255',
|
||||
'is_hidden' => 'sometimes|boolean',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Authz;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UserRoleGrantRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'role_names' => 'sometimes|array',
|
||||
'role_names.*' => 'string|min:1',
|
||||
'role_ids' => 'sometimes|array',
|
||||
'role_ids.*' => 'integer|min:1',
|
||||
];
|
||||
}
|
||||
|
||||
public function withValidator($validator): void
|
||||
{
|
||||
$validator->after(function ($validator) {
|
||||
$data = $this->all();
|
||||
if (empty($data['role_names']) && empty($data['role_ids'])) {
|
||||
$validator->errors()->add('role_names', __('error.role.role_input_required'));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Barobill;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class BankServiceUrlRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'bank_code' => ['required', 'string', 'max:10'],
|
||||
'account_type' => ['required', 'string', 'max:10'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Barobill;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class BarobillLoginRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'barobill_id' => ['required', 'string', 'max:50'],
|
||||
'password' => ['required', 'string', 'max:255'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Barobill;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class BarobillSignupRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'business_number' => ['required', 'string', 'max:20'],
|
||||
'company_name' => ['required', 'string', 'max:100'],
|
||||
'ceo_name' => ['required', 'string', 'max:50'],
|
||||
'business_type' => ['nullable', 'string', 'max:50'],
|
||||
'business_category' => ['nullable', 'string', 'max:50'],
|
||||
'address' => ['nullable', 'string', 'max:255'],
|
||||
'barobill_id' => ['required', 'string', 'max:50'],
|
||||
'password' => ['required', 'string', 'max:255'],
|
||||
'manager_name' => ['nullable', 'string', 'max:50'],
|
||||
'manager_phone' => ['nullable', 'string', 'max:20'],
|
||||
'manager_email' => ['nullable', 'email', 'max:100'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\TaxInvoice;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class SaveSupplierSettingsRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'business_number' => ['required', 'string', 'max:20'],
|
||||
'company_name' => ['required', 'string', 'max:100'],
|
||||
'representative_name' => ['required', 'string', 'max:50'],
|
||||
'address' => ['nullable', 'string', 'max:255'],
|
||||
'business_type' => ['nullable', 'string', 'max:100'],
|
||||
'business_item' => ['nullable', 'string', 'max:100'],
|
||||
'contact_name' => ['nullable', 'string', 'max:50'],
|
||||
'contact_phone' => ['nullable', 'string', 'max:20'],
|
||||
'contact_email' => ['nullable', 'email', 'max:100'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -19,16 +19,9 @@ public function rules(): array
|
||||
'account_number' => ['required', 'string', 'max:30', 'regex:/^[\d-]+$/'],
|
||||
'account_holder' => ['required', 'string', 'max:50'],
|
||||
'account_name' => ['required', 'string', 'max:100'],
|
||||
'account_type' => ['nullable', 'string', 'max:30'],
|
||||
'balance' => ['nullable', 'numeric', 'min:0'],
|
||||
'currency' => ['nullable', 'string', 'max:3'],
|
||||
'opened_at' => ['nullable', 'date'],
|
||||
'branch_name' => ['nullable', 'string', 'max:100'],
|
||||
'memo' => ['nullable', 'string', 'max:500'],
|
||||
'status' => ['nullable', 'string', 'in:active,inactive'],
|
||||
'assigned_user_id' => ['nullable', 'integer', 'exists:users,id'],
|
||||
'is_primary' => ['nullable', 'boolean'],
|
||||
'sort_order' => ['nullable', 'integer', 'min:0'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -19,15 +19,8 @@ public function rules(): array
|
||||
'account_number' => ['sometimes', 'string', 'max:30', 'regex:/^[\d-]+$/'],
|
||||
'account_holder' => ['sometimes', 'string', 'max:50'],
|
||||
'account_name' => ['sometimes', 'string', 'max:100'],
|
||||
'account_type' => ['sometimes', 'nullable', 'string', 'max:30'],
|
||||
'balance' => ['sometimes', 'nullable', 'numeric', 'min:0'],
|
||||
'currency' => ['sometimes', 'nullable', 'string', 'max:3'],
|
||||
'opened_at' => ['sometimes', 'nullable', 'date'],
|
||||
'branch_name' => ['sometimes', 'nullable', 'string', 'max:100'],
|
||||
'memo' => ['sometimes', 'nullable', 'string', 'max:500'],
|
||||
'status' => ['sometimes', 'string', 'in:active,inactive'],
|
||||
'assigned_user_id' => ['nullable', 'integer', 'exists:users,id'],
|
||||
'sort_order' => ['sometimes', 'nullable', 'integer', 'min:0'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -15,21 +15,12 @@ public function rules(): array
|
||||
{
|
||||
return [
|
||||
'card_company' => ['required', 'string', 'max:50'],
|
||||
'card_type' => ['nullable', 'string', 'max:50'],
|
||||
'card_number' => ['required', 'string', 'regex:/^\d{13,19}$/'],
|
||||
'expiry_date' => ['required', 'string', 'regex:/^(0[1-9]|1[0-2])\/\d{2}$/'],
|
||||
'card_password' => ['nullable', 'string', 'size:2', 'regex:/^\d{2}$/'],
|
||||
'card_name' => ['required', 'string', 'max:100'],
|
||||
'alias' => ['nullable', 'string', 'max:100'],
|
||||
'csv' => ['nullable', 'string', 'max:4'],
|
||||
'payment_day' => ['nullable', 'integer', 'min:1', 'max:31'],
|
||||
'total_limit' => ['nullable', 'numeric', 'min:0'],
|
||||
'used_amount' => ['nullable', 'numeric', 'min:0'],
|
||||
'remaining_limit' => ['nullable', 'numeric', 'min:0'],
|
||||
'status' => ['nullable', 'string', 'in:active,inactive'],
|
||||
'is_manual' => ['nullable', 'boolean'],
|
||||
'assigned_user_id' => ['nullable', 'integer', 'exists:users,id'],
|
||||
'memo' => ['nullable', 'string', 'max:500'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -15,21 +15,12 @@ public function rules(): array
|
||||
{
|
||||
return [
|
||||
'card_company' => ['sometimes', 'string', 'max:50'],
|
||||
'card_type' => ['nullable', 'string', 'max:50'],
|
||||
'card_number' => ['sometimes', 'string', 'regex:/^\d{13,19}$/'],
|
||||
'expiry_date' => ['sometimes', 'string', 'regex:/^(0[1-9]|1[0-2])\/\d{2}$/'],
|
||||
'card_password' => ['nullable', 'string', 'size:2', 'regex:/^\d{2}$/'],
|
||||
'card_name' => ['sometimes', 'string', 'max:100'],
|
||||
'alias' => ['nullable', 'string', 'max:100'],
|
||||
'csv' => ['nullable', 'string', 'max:4'],
|
||||
'payment_day' => ['nullable', 'integer', 'min:1', 'max:31'],
|
||||
'total_limit' => ['nullable', 'numeric', 'min:0'],
|
||||
'used_amount' => ['nullable', 'numeric', 'min:0'],
|
||||
'remaining_limit' => ['nullable', 'numeric', 'min:0'],
|
||||
'status' => ['sometimes', 'string', 'in:active,inactive'],
|
||||
'is_manual' => ['nullable', 'boolean'],
|
||||
'assigned_user_id' => ['nullable', 'integer', 'exists:users,id'],
|
||||
'memo' => ['nullable', 'string', 'max:500'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V1\CorporateCard;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreCorporateCardRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'card_name' => ['required', 'string', 'max:100'],
|
||||
'card_company' => ['required', 'string', 'max:50'],
|
||||
'card_number' => ['required', 'string', 'max:30'],
|
||||
'card_type' => ['required', 'string', 'in:credit,debit'],
|
||||
'payment_day' => ['nullable', 'integer', 'min:1', 'max:31'],
|
||||
'credit_limit' => ['nullable', 'numeric', 'min:0'],
|
||||
'card_holder_name' => ['required', 'string', 'max:100'],
|
||||
'actual_user' => ['required', 'string', 'max:100'],
|
||||
'expiry_date' => ['nullable', 'string', 'max:10'],
|
||||
'cvc' => ['nullable', 'string', 'max:4'],
|
||||
'status' => ['nullable', 'string', 'in:active,inactive'],
|
||||
'memo' => ['nullable', 'string', 'max:500'],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V1\CorporateCard;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateCorporateCardRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'card_name' => ['sometimes', 'string', 'max:100'],
|
||||
'card_company' => ['sometimes', 'string', 'max:50'],
|
||||
'card_number' => ['sometimes', 'string', 'max:30'],
|
||||
'card_type' => ['sometimes', 'string', 'in:credit,debit'],
|
||||
'payment_day' => ['sometimes', 'nullable', 'integer', 'min:1', 'max:31'],
|
||||
'credit_limit' => ['sometimes', 'nullable', 'numeric', 'min:0'],
|
||||
'card_holder_name' => ['sometimes', 'string', 'max:100'],
|
||||
'actual_user' => ['sometimes', 'string', 'max:100'],
|
||||
'expiry_date' => ['sometimes', 'nullable', 'string', 'max:10'],
|
||||
'cvc' => ['sometimes', 'nullable', 'string', 'max:4'],
|
||||
'status' => ['sometimes', 'string', 'in:active,inactive'],
|
||||
'memo' => ['sometimes', 'nullable', 'string', 'max:500'],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user