feat: [barobill] 바로빌 연동 관리 API 7개 엔드포인트 구현

- SOAP 기반 BarobillSoapService 생성 (MNG 코드 포팅)
- BarobillMember, BarobillConfig 모델 생성
- BarobillController 7개 메서드 (login, signup, status, URL 조회)
- FormRequest 검증 클래스 3개 생성
- 라우트 등록 (POST /barobill/login, /signup, GET /status 등)
- i18n 메시지 키 추가 (ko/en)
- config/services.php에 barobill 설정 추가
This commit is contained in:
김보곤
2026-02-20 22:39:04 +09:00
parent 1dd9057540
commit b576fe97e8
12 changed files with 899 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
<?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'],
];
}
}

View File

@@ -0,0 +1,21 @@
<?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'],
];
}
}

View File

@@ -0,0 +1,30 @@
<?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'],
];
}
}