delete fortify, jetstream

This commit is contained in:
2025-07-28 12:57:08 +09:00
parent c9f4e27ad1
commit 1233058eda
11 changed files with 790 additions and 791 deletions

777
storage/api-docs/api-docs-v1.json Executable file
View File

@@ -0,0 +1,777 @@
{
"openapi": "3.0.0",
"info": {
"title": "SAM API Documentation",
"description": "===============================<br><strong>[공통 에러 응답 포맷]</strong><br>400: 필수 파라미터 누락<br>401: 인증 실패<br>403: 권한 없음<br>404: 존재하지 않는 URI 또는 데이터<br>405: 허용되지 않는 메서드<br>500: 서버 에러<br><br><strong>모든 에러 응답 예시:</strong><br>{<br>&nbsp;&nbsp;&quot;success&quot;: false,<br>&nbsp;&nbsp;&quot;message&quot;: &quot;에러 메시지&quot;,<br>&nbsp;&nbsp;&quot;data&quot;: null<br>}<br>===============================",
"contact": {
"email": "shine1324@gmail.com"
},
"version": "1.0.0"
},
"servers": [
{
"url": "https://api.5130.co.kr",
"description": "SAM관리시스템 API 서버"
}
],
"paths": {
"/api/v1/debug-apikey": {
"get": {
"tags": [
"API Key 인증"
],
"summary": "API Key 인증 확인",
"operationId": "8d05f26a859e82207ba533ab88682ddf",
"responses": {
"200": {
"description": "API Key 인증 성공"
},
"401": {
"description": "인증 실패"
}
},
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
]
}
},
"/api/v1/login": {
"post": {
"tags": [
"Auth"
],
"summary": "회원 토큰 정보확인",
"operationId": "3878a009ac5aef1ebe0e72b7716e24ac",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"required": [
"user_id",
"user_pwd"
],
"properties": {
"user_id": {
"type": "string",
"example": "test"
},
"user_pwd": {
"type": "string",
"example": "testpass"
}
},
"type": "object"
}
}
}
},
"responses": {
"200": {
"description": "로그인 성공",
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string"
},
"user_token": {
"type": "string"
}
},
"type": "object"
}
}
}
},
"401": {
"description": "로그인 실패"
}
},
"security": [
{
"ApiKeyAuth": []
}
]
}
},
"/api/v1/logout": {
"post": {
"tags": [
"Auth"
],
"summary": "로그아웃 (Access 및 Token 무효화)",
"operationId": "39200ed8c17c34aa7af9a24f064e13a4",
"responses": {
"200": {
"description": "로그아웃 성공"
},
"401": {
"description": "인증 실패"
}
},
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
]
}
},
"/api/v1/member/index": {
"get": {
"tags": [
"Member"
],
"summary": "회원 목록 조회",
"description": "회원 목록을 페이징 형태로 반환합니다.",
"operationId": "9243d8df1b20c9552b21389ce84415ea",
"parameters": [
{
"name": "page",
"in": "query",
"description": "페이지 번호 (기본값: 1)",
"required": false,
"schema": {
"type": "integer",
"example": 1
}
},
{
"name": "size",
"in": "query",
"description": "페이지당 항목 수 (기본값: 20)",
"required": false,
"schema": {
"type": "integer",
"example": 20
}
}
],
"responses": {
"200": {
"description": "회원 목록 조회 성공",
"content": {
"application/json": {
"schema": {
"properties": {
"success": {
"type": "boolean",
"example": true
},
"message": {
"type": "string",
"example": "회원목록 조회 성공"
},
"data": {
"properties": {
"current_page": {
"type": "integer",
"example": 1
},
"data": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "integer",
"example": 1
},
"user_id": {
"type": "string",
"example": "hamss"
},
"phone": {
"type": "string",
"example": "010-4820-9104"
},
"options": {
"type": "string",
"example": null,
"nullable": true
},
"name": {
"type": "string",
"example": "권혁성"
},
"email": {
"type": "string",
"example": "shine1324@gmail.com"
},
"email_verified_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
},
"last_login_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
},
"current_team_id": {
"type": "integer",
"example": null,
"nullable": true
},
"profile_photo_path": {
"type": "string",
"example": null,
"nullable": true
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2025-07-16 18:28:41"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2025-07-25 23:13:06"
},
"deleted_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
}
},
"type": "object"
}
},
"first_page_url": {
"type": "string",
"example": "http://api.sam.kr/api/v1/member/index?page=1"
},
"from": {
"type": "integer",
"example": 1
},
"last_page": {
"type": "integer",
"example": 1
},
"last_page_url": {
"type": "string",
"example": "http://api.sam.kr/api/v1/member/index?page=1"
},
"links": {
"type": "array",
"items": {
"properties": {
"url": {
"type": "string",
"example": null,
"nullable": true
},
"label": {
"type": "string",
"example": "&laquo; Previous"
},
"active": {
"type": "boolean",
"example": false
}
},
"type": "object"
}
},
"next_page_url": {
"type": "string",
"example": null,
"nullable": true
},
"path": {
"type": "string",
"example": "http://api.sam.kr/api/v1/member/index"
},
"per_page": {
"type": "integer",
"example": 20
},
"prev_page_url": {
"type": "string",
"example": null,
"nullable": true
},
"to": {
"type": "integer",
"example": 3
},
"total": {
"type": "integer",
"example": 3
}
},
"type": "object"
}
},
"type": "object"
}
}
}
}
},
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
]
}
},
"/api/v1/member/show/{user_no}": {
"get": {
"tags": [
"Member"
],
"summary": "회원 상세조회",
"description": "user_no 기준으로 회원 상세 정보를 조회합니다.",
"operationId": "b4c822915531828ea5f3a50d5112ef26",
"parameters": [
{
"name": "user_no",
"in": "path",
"description": "회원 번호 (USER_NO)",
"required": true,
"schema": {
"type": "integer",
"example": 1
}
}
],
"responses": {
"200": {
"description": "회원 상세조회 성공",
"content": {
"application/json": {
"schema": {
"properties": {
"success": {
"type": "boolean",
"example": true
},
"message": {
"type": "string",
"example": "회원 상세조회 성공"
},
"data": {
"properties": {
"id": {
"type": "integer",
"example": 1
},
"user_id": {
"type": "string",
"example": "hamss"
},
"phone": {
"type": "string",
"example": "010-4820-9104"
},
"options": {
"type": "string",
"example": null,
"nullable": true
},
"name": {
"type": "string",
"example": "권혁성"
},
"email": {
"type": "string",
"example": "shine1324@gmail.com"
},
"email_verified_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
},
"last_login_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
},
"current_team_id": {
"type": "integer",
"example": null,
"nullable": true
},
"profile_photo_path": {
"type": "string",
"example": null,
"nullable": true
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2025-07-16 18:28:41"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2025-07-25 23:13:06"
},
"deleted_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
}
},
"type": "object"
}
},
"type": "object"
}
}
}
},
"401": {
"description": "인증 실패"
},
"404": {
"description": "회원 정보 없음"
}
},
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
]
}
},
"/api/v1/member/me": {
"get": {
"tags": [
"Member"
],
"summary": "내 정보 조회",
"description": "내정보와 테넌트 정보를 전달 합니다.",
"operationId": "0c641be8a4e4ab5e1c2db29989b219ce",
"responses": {
"200": {
"description": "나의 정보 조회 성공",
"content": {
"application/json": {
"schema": {
"properties": {
"success": {
"type": "boolean",
"example": true
},
"message": {
"type": "string",
"example": "나의 정보 조회 성공"
},
"data": {
"properties": {
"user": {
"properties": {
"id": {
"type": "integer",
"example": 3
},
"user_id": {
"type": "string",
"example": "test"
},
"phone": {
"type": "string",
"example": "010-1234-5678"
},
"options": {
"type": "string",
"example": null,
"nullable": true
},
"name": {
"type": "string",
"example": "테스트"
},
"email": {
"type": "string",
"example": "test@5130.co.kr"
},
"email_verified_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
},
"last_login_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
},
"current_team_id": {
"type": "integer",
"example": null,
"nullable": true
},
"profile_photo_path": {
"type": "string",
"example": null,
"nullable": true
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2025-07-17 13:19:37"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2025-07-26 15:51:14"
},
"deleted_at": {
"type": "string",
"format": "date-time",
"example": null,
"nullable": true
}
},
"type": "object"
},
"tenant": {
"properties": {
"id": {
"type": "integer",
"example": 1
},
"company_name": {
"type": "string",
"example": "(주)경동기업"
},
"code": {
"type": "string",
"example": "KDCOM"
},
"email": {
"type": "string",
"example": "kd5130@naver.com"
},
"phone": {
"type": "string",
"example": "01083935130"
},
"address": {
"type": "string",
"example": "경기도 김포시 통진읍 옹정로 45-22"
},
"business_num": {
"type": "string",
"example": "1398700333"
},
"corp_reg_no": {
"type": "string",
"example": null,
"nullable": true
},
"ceo_name": {
"type": "string",
"example": "이경호"
},
"homepage": {
"type": "string",
"example": null,
"nullable": true
},
"fax": {
"type": "string",
"example": null,
"nullable": true
},
"logo": {
"type": "string",
"example": null,
"nullable": true
},
"admin_memo": {
"type": "string",
"example": null,
"nullable": true
},
"options": {
"type": "string",
"example": null,
"nullable": true
}
},
"type": "object"
}
},
"type": "object"
}
},
"type": "object"
}
}
}
},
"401": {
"description": "인증 실패 (헤더 누락, 유효하지 않은 토큰/키 등)"
}
},
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
]
}
},
"/api/v1/product/category": {
"get": {
"tags": [
"Product"
],
"summary": "제품 카테고리 목록 조회",
"description": "제품 카테고리(최상위, parent_id=null) 리스트를 반환합니다.",
"operationId": "ae018aa8eec41762f28513ae1aecebfc",
"responses": {
"200": {
"description": "카테고리 목록 조회 성공",
"content": {
"application/json": {
"schema": {
"properties": {
"status": {
"type": "string",
"example": "success"
},
"message": {
"type": "string",
"example": "get 성공"
},
"data": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "integer",
"example": 4
},
"code_group": {
"type": "string",
"example": "category"
},
"code": {
"type": "string",
"example": "BP"
},
"name": {
"type": "string",
"example": "절곡판"
},
"parent_id": {
"type": "integer",
"example": null
},
"attributes": {
"type": "string",
"example": "[{...}]"
},
"description": {
"type": "string",
"example": "절곡판"
},
"is_active": {
"type": "integer",
"example": 1
},
"sort_order": {
"type": "integer",
"example": 10
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2025-07-23T09:00:00Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2025-07-23T09:00:00Z"
}
},
"type": "object"
}
}
},
"type": "object"
}
}
}
},
"401": {
"description": "인증 실패"
},
"500": {
"description": "서버 에러"
}
},
"security": [
{
"ApiKeyAuth": []
},
{
"BearerAuth": []
}
]
}
}
},
"components": {
"securitySchemes": {
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-API-KEY",
"description": "API Key 인증: X-API-KEY: {API_KEY}"
},
"BearerAuth": {
"type": "http",
"bearerFormat": "JWT",
"scheme": "bearer"
}
}
},
"tags": [
{
"name": "API Key 인증",
"description": "API Key 인증"
},
{
"name": "Auth",
"description": "Auth"
},
{
"name": "Member",
"description": "Member"
},
{
"name": "Product",
"description": "Product"
}
]
}