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 |