API 명세서

https://pumped-judo-47a.notion.site/API-90a43fd7b3d04c688949f05d22c36f9f

 

 

ERD

https://drive.google.com/file/d/13mN18dVUZOhYPG2_EqOONwqJUSi3_Myu/view?usp=sharing

 

delivery.drawio

 

drive.google.com

 

 

테이블 명세서

사용자 테이블 (p_users)

필드 이름 데이터 타입 설명
id INT ID, Primary Key
username VARCHAR(255) 사용자 이름
password VARCHAR(255) 사용자 비밀번호
role role_type 사용자 역할 (CUSTOMER, OWNER, MANAGER, MASTER)
is_public BOOLEAN 사용자 정보가 공개된 상태인지 여부, 기본값 TRUE
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)

 

 

배송지 테이블 (p_address)

필드 이름 데이터 타입 설명
id UUID 배송지 ID, Primary Key
addressname VARCHAR(100) 배송지 이름
addressLine1 VARCHAR(255) 기본 주소
addressLine1 VARCHAR(255) 건물명, 동/호수 등의 상세주소
user_id INT 유저 식별자 (외래 키)
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)

 

 

주문 테이블 (p_orders)

필드 이름  데이터 타입  설명
id UUID ID, Primary Key
user_id INT 주문자 ID, 외래키
store_id INT 주문 상점 ID, 외래키
total_amount INT 총 주문 가격
type OrderTypeEnum 주문 종류 DELIVERY(배달 주문), PICKUP (포장 주문)
status OrderStatusEnum 주문 상태 PENDING(진행중), CANCELED(취소), COMPLETED(완료)
request VARCHAR(100) 요청사항
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)

 

주문상품 테이블 (p_order_products)

필드 이름  데이터 타입  설명
id UUID 주문 상품 ID, Primary Key
order_id UUID 주문 식별자, 외래키
product_id UUID 상품 식별자, 외래키
user_id role_type 사용자 역할 (CUSTOMER, OWNER, MASTER)
quantity INT 상품 수량
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)

 

p_store

필드명  데이터 타입  설명
shop_id INT 상점의 고유 ID
shop_name VARCHAR(30) 상점 이름
shop_address VARCHAR(100) 상점 주소
shop_type VARCHAR(30) 상점 유형
shop_open_time TIME 상점 오픈 시간
shop_close_time TIME 상점 마감 시간
shop_phone VARCHAR(15) 상점 전화번호

 

 

p_menu

필드명 
데이터 타입  설명
menu_id INT 메뉴의 고유 ID
menu_name VARCHAR(30) 메뉴 이름
menu_description VARCHAR(100) 메뉴 설명
menu_price DECIMAL(10, 2) 메뉴 가격
public_sts CHAR(1) 공개 상태
db_sts CHAR(1) 데이터베이스 상태

 

 

p_store_menu

필드명  데이터 타입  설명
id INT 고유 ID
shop_id INT p_store 테이블의 shop_id 참조
menu_id INT p_menu 테이블의 menu_id 참조

 

p_review

필드명 데이터 타입 설명
review_id INT 리뷰의 고유 ID
review_content VARCHAR(150) 리뷰 내용
review_rating DECIMAL(2, 1) 리뷰 평점
menu_id INT p_menu 테이블의 menu_id 참조
user_id VARCHAR(30) 사용자 ID
public_sts CHAR(1) 공개 상태
db_sts CHAR(1) 데이터베이스 상태

 

 

p_payment

필드명 데이터 타입 설명
payment_id UUID 결제 ID
order_id UUID 주문 ID
is_deleted BOOLEAN 삭제 상태(데이터를 보존해야 하므로BOOLEAN 값 처리)
amount INT 주문 가격 총액
transaction DATETIME 결제 시각
status STRING (예: approved, declined, pending)
pg_response_code STRING PG사에서 반환한 응답 코드
pg_transaction_id STRING PG사에서 반환한 거래 ID

 

 

p_products

필드명 데이터 타입 설명
product_id UUID 상품 ID
product_name VARCHAR(30) 상품 이름
description VARCHAR(30) 상품 설명
price INT 상품 가격
category_id ENUM 상품 카테고리
is_deleted BOOLEAN 삭제 상태(데이터를 보존해야 하므로BOOLEAN 값 처리)
is_public BOOLEAN 가게 사장님이 상품을 숨김처리 했는지 나타냄(ex - 품절 상태 )

 

 

p_ai

필드명 데이터 타입 설명
request_id UUID ai 요청 ID
shop_id UUID 요청한 가게 ID
request_data VARCHAR(150) ai api 요청, 상품 설명 작성 요청
response_data VARCHAR(150) ai로 부터 상품 설명 작성 받음
request_date TIMESTAMP 요청 시각
response_date TIMESTAMP ai 설명 응답 시각
is_deleted BOOLEAN 삭제 상태(데이터를 보존해야 하므로BOOLEAN 값 처리)

 

 

인프라 설계도

 

'스프링 심화 TIL' 카테고리의 다른 글

삭제된 유저 필터링 방법  (0) 2024.08.26
S.A 튜터님 피드백  (0) 2024.08.23
DB 복제 지연  (0) 2024.08.21
Docker 네트워킹 기본 개념  (0) 2024.08.18
Docker 명령어  (0) 2024.08.16

+ Recent posts