2025-12-26 13:23:07 +09:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Swagger\v1;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Tag(
|
|
|
|
|
* name="ExpectedExpense",
|
|
|
|
|
* description="미지급비용(지출예상내역) 관리"
|
|
|
|
|
* )
|
|
|
|
|
*
|
|
|
|
|
* @OA\Schema(
|
|
|
|
|
* schema="ExpectedExpense",
|
|
|
|
|
* type="object",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="id", type="integer", example=1),
|
|
|
|
|
* @OA\Property(property="tenant_id", type="integer", example=1),
|
|
|
|
|
* @OA\Property(property="expected_payment_date", type="string", format="date", example="2025-01-15"),
|
|
|
|
|
* @OA\Property(property="settlement_date", type="string", format="date", nullable=true, example="2025-01-10"),
|
|
|
|
|
* @OA\Property(property="transaction_type", type="string", enum={"purchase","advance","suspense","rent","salary","insurance","tax","utilities","other"}, example="purchase"),
|
|
|
|
|
* @OA\Property(property="amount", type="number", format="float", example=1500000),
|
|
|
|
|
* @OA\Property(property="client_id", type="integer", nullable=true, example=1),
|
|
|
|
|
* @OA\Property(property="client_name", type="string", nullable=true, example="(주)삼성전자"),
|
|
|
|
|
* @OA\Property(property="bank_account_id", type="integer", nullable=true, example=1),
|
|
|
|
|
* @OA\Property(property="account_code", type="string", nullable=true, example="매입비용"),
|
|
|
|
|
* @OA\Property(property="payment_status", type="string", enum={"pending","partial","paid","overdue"}, example="pending"),
|
|
|
|
|
* @OA\Property(property="approval_status", type="string", enum={"none","pending","approved","rejected"}, example="none"),
|
|
|
|
|
* @OA\Property(property="description", type="string", nullable=true, example="월정산"),
|
|
|
|
|
* @OA\Property(property="created_at", type="string", format="datetime"),
|
|
|
|
|
* @OA\Property(property="updated_at", type="string", format="datetime"),
|
|
|
|
|
* @OA\Property(
|
|
|
|
|
* property="client",
|
|
|
|
|
* type="object",
|
|
|
|
|
* nullable=true,
|
|
|
|
|
* @OA\Property(property="id", type="integer"),
|
|
|
|
|
* @OA\Property(property="name", type="string")
|
|
|
|
|
* ),
|
|
|
|
|
* @OA\Property(
|
|
|
|
|
* property="bank_account",
|
|
|
|
|
* type="object",
|
|
|
|
|
* nullable=true,
|
|
|
|
|
* @OA\Property(property="id", type="integer"),
|
|
|
|
|
* @OA\Property(property="bank_name", type="string"),
|
|
|
|
|
* @OA\Property(property="account_name", type="string")
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*
|
|
|
|
|
* @OA\Schema(
|
|
|
|
|
* schema="ExpectedExpensePagination",
|
|
|
|
|
* type="object",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="current_page", type="integer", example=1),
|
|
|
|
|
* @OA\Property(property="data", type="array", @OA\Items(ref="#/components/schemas/ExpectedExpense")),
|
|
|
|
|
* @OA\Property(property="first_page_url", type="string"),
|
|
|
|
|
* @OA\Property(property="from", type="integer"),
|
|
|
|
|
* @OA\Property(property="last_page", type="integer"),
|
|
|
|
|
* @OA\Property(property="last_page_url", type="string"),
|
|
|
|
|
* @OA\Property(property="next_page_url", type="string", nullable=true),
|
|
|
|
|
* @OA\Property(property="path", type="string"),
|
|
|
|
|
* @OA\Property(property="per_page", type="integer"),
|
|
|
|
|
* @OA\Property(property="prev_page_url", type="string", nullable=true),
|
|
|
|
|
* @OA\Property(property="to", type="integer"),
|
|
|
|
|
* @OA\Property(property="total", type="integer")
|
|
|
|
|
* )
|
|
|
|
|
*
|
|
|
|
|
* @OA\Schema(
|
|
|
|
|
* schema="ExpectedExpenseCreateRequest",
|
|
|
|
|
* type="object",
|
|
|
|
|
* required={"expected_payment_date", "transaction_type", "amount"},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="expected_payment_date", type="string", format="date", example="2025-01-15"),
|
|
|
|
|
* @OA\Property(property="settlement_date", type="string", format="date", nullable=true, example="2025-01-10"),
|
|
|
|
|
* @OA\Property(property="transaction_type", type="string", enum={"purchase","advance","suspense","rent","salary","insurance","tax","utilities","other"}, example="purchase"),
|
|
|
|
|
* @OA\Property(property="amount", type="number", format="float", example=1500000),
|
|
|
|
|
* @OA\Property(property="client_id", type="integer", nullable=true, example=1),
|
|
|
|
|
* @OA\Property(property="client_name", type="string", nullable=true, example="(주)삼성전자"),
|
|
|
|
|
* @OA\Property(property="bank_account_id", type="integer", nullable=true, example=1),
|
|
|
|
|
* @OA\Property(property="account_code", type="string", nullable=true, example="매입비용"),
|
|
|
|
|
* @OA\Property(property="payment_status", type="string", enum={"pending","partial","paid","overdue"}, example="pending"),
|
|
|
|
|
* @OA\Property(property="approval_status", type="string", enum={"none","pending","approved","rejected"}, example="none"),
|
|
|
|
|
* @OA\Property(property="description", type="string", nullable=true, example="월정산")
|
|
|
|
|
* )
|
|
|
|
|
*
|
|
|
|
|
* @OA\Schema(
|
|
|
|
|
* schema="ExpectedExpenseUpdateRequest",
|
|
|
|
|
* type="object",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="expected_payment_date", type="string", format="date", example="2025-01-20"),
|
|
|
|
|
* @OA\Property(property="settlement_date", type="string", format="date", nullable=true),
|
|
|
|
|
* @OA\Property(property="transaction_type", type="string", enum={"purchase","advance","suspense","rent","salary","insurance","tax","utilities","other"}),
|
|
|
|
|
* @OA\Property(property="amount", type="number", format="float"),
|
|
|
|
|
* @OA\Property(property="client_id", type="integer", nullable=true),
|
|
|
|
|
* @OA\Property(property="client_name", type="string", nullable=true),
|
|
|
|
|
* @OA\Property(property="bank_account_id", type="integer", nullable=true),
|
|
|
|
|
* @OA\Property(property="account_code", type="string", nullable=true),
|
|
|
|
|
* @OA\Property(property="payment_status", type="string", enum={"pending","partial","paid","overdue"}),
|
|
|
|
|
* @OA\Property(property="approval_status", type="string", enum={"none","pending","approved","rejected"}),
|
|
|
|
|
* @OA\Property(property="description", type="string", nullable=true)
|
|
|
|
|
* )
|
|
|
|
|
*
|
|
|
|
|
* @OA\Schema(
|
|
|
|
|
* schema="ExpectedExpenseSummary",
|
|
|
|
|
* type="object",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="total_amount", type="number", format="float", example=15000000),
|
|
|
|
|
* @OA\Property(property="total_count", type="integer", example=12),
|
|
|
|
|
* @OA\Property(property="by_payment_status", type="object"),
|
|
|
|
|
* @OA\Property(property="by_transaction_type", type="object"),
|
|
|
|
|
* @OA\Property(property="by_month", type="object")
|
|
|
|
|
* )
|
2026-01-22 23:18:33 +09:00
|
|
|
*
|
|
|
|
|
* @OA\Schema(
|
|
|
|
|
* schema="ExpectedExpenseDashboardDetail",
|
|
|
|
|
* type="object",
|
|
|
|
|
* description="CEO 대시보드 당월 예상 지출내역 me4 모달용 데이터",
|
|
|
|
|
*
|
|
|
|
|
* @OA\Property(
|
|
|
|
|
* property="summary",
|
|
|
|
|
* type="object",
|
|
|
|
|
* @OA\Property(property="current_month_total", type="number", format="float", example=5000000, description="당월 지출예상 합계"),
|
|
|
|
|
* @OA\Property(property="previous_month_total", type="number", format="float", example=4500000, description="전월 지출예상 합계"),
|
|
|
|
|
* @OA\Property(property="change_rate", type="number", format="float", example=11.1, description="전월대비 증감률(%)"),
|
|
|
|
|
* @OA\Property(property="pending_balance", type="number", format="float", example=3000000, description="미지급 잔액")
|
|
|
|
|
* ),
|
|
|
|
|
* @OA\Property(
|
|
|
|
|
* property="items",
|
|
|
|
|
* type="array",
|
|
|
|
|
* description="당월 지출예상 목록",
|
|
|
|
|
*
|
|
|
|
|
* @OA\Items(
|
|
|
|
|
* type="object",
|
|
|
|
|
*
|
|
|
|
|
* @OA\Property(property="id", type="integer", example=1),
|
|
|
|
|
* @OA\Property(property="payment_date", type="string", format="date", example="2026-01-15"),
|
|
|
|
|
* @OA\Property(property="item", type="string", example="월 임대료"),
|
|
|
|
|
* @OA\Property(property="amount", type="number", format="float", example=1500000),
|
|
|
|
|
* @OA\Property(property="vendor", type="string", example="(주)빌딩관리"),
|
|
|
|
|
* @OA\Property(property="account", type="string", example="임차료"),
|
|
|
|
|
* @OA\Property(property="status", type="string", example="pending")
|
|
|
|
|
* )
|
|
|
|
|
* ),
|
|
|
|
|
* @OA\Property(
|
|
|
|
|
* property="footer_summary",
|
|
|
|
|
* type="object",
|
|
|
|
|
* @OA\Property(property="total_amount", type="number", format="float", example=5000000),
|
|
|
|
|
* @OA\Property(property="total_count", type="integer", example=8)
|
|
|
|
|
* )
|
|
|
|
|
* )
|
2025-12-26 13:23:07 +09:00
|
|
|
*/
|
|
|
|
|
class ExpectedExpenseApi
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Get(
|
|
|
|
|
* path="/api/v1/expected-expenses",
|
|
|
|
|
* summary="미지급비용 목록 조회",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Parameter(name="search", in="query", description="검색어 (거래처명, 계정과목, 적요)", @OA\Schema(type="string")),
|
|
|
|
|
* @OA\Parameter(name="start_date", in="query", description="시작일", @OA\Schema(type="string", format="date")),
|
|
|
|
|
* @OA\Parameter(name="end_date", in="query", description="종료일", @OA\Schema(type="string", format="date")),
|
|
|
|
|
* @OA\Parameter(name="client_id", in="query", description="거래처 ID", @OA\Schema(type="integer")),
|
|
|
|
|
* @OA\Parameter(name="transaction_type", in="query", description="거래유형", @OA\Schema(type="string")),
|
|
|
|
|
* @OA\Parameter(name="payment_status", in="query", description="지급상태", @OA\Schema(type="string")),
|
|
|
|
|
* @OA\Parameter(name="approval_status", in="query", description="결재상태", @OA\Schema(type="string")),
|
|
|
|
|
* @OA\Parameter(name="sort_by", in="query", description="정렬 기준", @OA\Schema(type="string", default="expected_payment_date")),
|
|
|
|
|
* @OA\Parameter(name="sort_dir", in="query", description="정렬 방향", @OA\Schema(type="string", enum={"asc","desc"}, default="asc")),
|
|
|
|
|
* @OA\Parameter(name="per_page", in="query", description="페이지당 항목 수", @OA\Schema(type="integer", default=50)),
|
|
|
|
|
* @OA\Parameter(name="page", in="query", description="페이지 번호", @OA\Schema(type="integer", default=1)),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Response(
|
|
|
|
|
* response=200,
|
|
|
|
|
* description="성공",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string"),
|
|
|
|
|
* @OA\Property(property="data", ref="#/components/schemas/ExpectedExpensePagination")
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function index() {}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Post(
|
|
|
|
|
* path="/api/v1/expected-expenses",
|
|
|
|
|
* summary="미지급비용 등록",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\RequestBody(
|
|
|
|
|
* required=true,
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(ref="#/components/schemas/ExpectedExpenseCreateRequest")
|
|
|
|
|
* ),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Response(
|
|
|
|
|
* response=201,
|
|
|
|
|
* description="생성 성공",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string"),
|
|
|
|
|
* @OA\Property(property="data", ref="#/components/schemas/ExpectedExpense")
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function store() {}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Get(
|
|
|
|
|
* path="/api/v1/expected-expenses/{id}",
|
|
|
|
|
* summary="미지급비용 상세 조회",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Parameter(name="id", in="path", required=true, description="미지급비용 ID", @OA\Schema(type="integer")),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Response(
|
|
|
|
|
* response=200,
|
|
|
|
|
* description="성공",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string"),
|
|
|
|
|
* @OA\Property(property="data", ref="#/components/schemas/ExpectedExpense")
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function show() {}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Put(
|
|
|
|
|
* path="/api/v1/expected-expenses/{id}",
|
|
|
|
|
* summary="미지급비용 수정",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Parameter(name="id", in="path", required=true, description="미지급비용 ID", @OA\Schema(type="integer")),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\RequestBody(
|
|
|
|
|
* required=true,
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(ref="#/components/schemas/ExpectedExpenseUpdateRequest")
|
|
|
|
|
* ),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Response(
|
|
|
|
|
* response=200,
|
|
|
|
|
* description="수정 성공",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string"),
|
|
|
|
|
* @OA\Property(property="data", ref="#/components/schemas/ExpectedExpense")
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function update() {}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Delete(
|
|
|
|
|
* path="/api/v1/expected-expenses/{id}",
|
|
|
|
|
* summary="미지급비용 삭제",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Parameter(name="id", in="path", required=true, description="미지급비용 ID", @OA\Schema(type="integer")),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Response(
|
|
|
|
|
* response=200,
|
|
|
|
|
* description="삭제 성공",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string")
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function destroy() {}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Delete(
|
|
|
|
|
* path="/api/v1/expected-expenses",
|
|
|
|
|
* summary="미지급비용 일괄 삭제",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\RequestBody(
|
|
|
|
|
* required=true,
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="ids", type="array", @OA\Items(type="integer"), example={1, 2, 3})
|
|
|
|
|
* )
|
|
|
|
|
* ),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Response(
|
|
|
|
|
* response=200,
|
|
|
|
|
* description="일괄 삭제 성공",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string"),
|
|
|
|
|
* @OA\Property(property="data", type="object",
|
|
|
|
|
* @OA\Property(property="deleted_count", type="integer", example=3)
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function destroyMany() {}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Put(
|
|
|
|
|
* path="/api/v1/expected-expenses/update-payment-date",
|
|
|
|
|
* summary="예상 지급일 일괄 변경",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\RequestBody(
|
|
|
|
|
* required=true,
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="ids", type="array", @OA\Items(type="integer"), example={1, 2, 3}),
|
|
|
|
|
* @OA\Property(property="expected_payment_date", type="string", format="date", example="2025-02-01")
|
|
|
|
|
* )
|
|
|
|
|
* ),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Response(
|
|
|
|
|
* response=200,
|
|
|
|
|
* description="일괄 변경 성공",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string"),
|
|
|
|
|
* @OA\Property(property="data", type="object",
|
|
|
|
|
* @OA\Property(property="updated_count", type="integer", example=3)
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function updateExpectedPaymentDate() {}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Get(
|
|
|
|
|
* path="/api/v1/expected-expenses/summary",
|
|
|
|
|
* summary="미지급비용 요약 (기간별 합계)",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Parameter(name="start_date", in="query", description="시작일", @OA\Schema(type="string", format="date")),
|
|
|
|
|
* @OA\Parameter(name="end_date", in="query", description="종료일", @OA\Schema(type="string", format="date")),
|
|
|
|
|
* @OA\Parameter(name="payment_status", in="query", description="지급상태", @OA\Schema(type="string")),
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Response(
|
|
|
|
|
* response=200,
|
|
|
|
|
* description="성공",
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\JsonContent(
|
2026-01-13 19:48:54 +09:00
|
|
|
*
|
2025-12-26 13:23:07 +09:00
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string"),
|
|
|
|
|
* @OA\Property(property="data", ref="#/components/schemas/ExpectedExpenseSummary")
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function summary() {}
|
2026-01-22 23:18:33 +09:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @OA\Get(
|
|
|
|
|
* path="/api/v1/expected-expenses/dashboard-detail",
|
|
|
|
|
* summary="대시보드 상세 조회 (CEO 대시보드 당월 예상 지출내역 me4 모달용)",
|
|
|
|
|
* description="당월 지출예상 요약, 상세 목록을 제공합니다. me4(지출예상) 모달에서 사용됩니다.",
|
|
|
|
|
* tags={"ExpectedExpense"},
|
|
|
|
|
* security={{"ApiKeyAuth": {}}, {"BearerAuth": {}}},
|
|
|
|
|
*
|
|
|
|
|
* @OA\Response(
|
|
|
|
|
* response=200,
|
|
|
|
|
* description="성공",
|
|
|
|
|
*
|
|
|
|
|
* @OA\JsonContent(
|
|
|
|
|
*
|
|
|
|
|
* @OA\Property(property="success", type="boolean", example=true),
|
|
|
|
|
* @OA\Property(property="message", type="string"),
|
|
|
|
|
* @OA\Property(property="data", ref="#/components/schemas/ExpectedExpenseDashboardDetail")
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
* )
|
|
|
|
|
*/
|
|
|
|
|
public function dashboardDetail() {}
|
2025-12-26 13:23:07 +09:00
|
|
|
}
|