사용자 테이블(user)

필드 이름 데이터 타입 설명
id Long PK, AI
email VARCHAR(100) 이메일 형식
password VARCHAR(100) 사용자 비밀번호 / 최소 8자 이상 15자 이하의 알파벳 대소문자(a~z, A~Z)와 숫자(0~9), 특수문자로 구성
user_role ENUM ADMIN, CUSTOMER
name VARCHAR(20) 사용자 이름
birth_date DATETIME 생년월일
phone_number VARCHAR(13) 사용자 전화번호
is_deleted boolean 삭제 여부 Column
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (username)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (username)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (username)

유저-쿠폰 테이블(user_coupons)

필드 이름 데이터 타입 설명
id UUID Primary Key
coupon_id UUID 쿠폰 ID
user_id Long 유저 ID
usage_count Integer 사용 횟수 default:0
is_usable Boolean 사용 가능 여부
is_deleted Boolean 삭제 여부
created_at TIMESTAMP 레코드 생성 시간
created_by VARCHAR(100) 레코드 생성자 (user_id)
updated_at TIMESTAMP 레코드 수정 시간
updated_by VARCHAR(100) 레코드 수정자 (user_id)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by VARCHAR(100) 레코드 삭제자 (user_id)

쿠폰 테이블(coupons)

필드 이름 데이터 타입 설명
id UUID Primary Key
name VARCHAR(255) 쿠폰 이름
discount_amount INTEGER 할인율, 할인금액(0보다 큰 값)
discount_policy VARCHAR(30) ENUM: 비율할인, 고정할인
target VARCHAR(30) ENUM: 모든 공연, 특정 공연, 특정 등급, 특정 좌석
start_date TIMESTAMP 쿠폰 사용 가능 시작 날짜
expiration_date TIMESTAMP 쿠폰 사용 가능 만료 날짜
min_spend_amount INTEGER 최소 사용 금액
max_quantity INTEGER 발급 가능한 최대 수량, 무제한: -1
issued_quantity INTEGER 발급된 쿠폰 수 default : 0
is_limited_quantity BOOLEAN 발급 수량 제한 존재 여부. true: 제한 존재, false: 무제한
usage_limit INTEGER 한 사용자가 쿠폰을 사용할 수 있는 최대 횟수, 무제한 : -1
is_limited_usage BOOLEAN 한 사용자가 동일 쿠폰 재사용 가능 여부 true: 제한 존재, false: 무제한
is_deleted BOOLEAN 삭제 여부
created_at TIMESTAMP 레코드 생성 시간
created_by BIGINT 레코드 생성자 (user_id)
updated_at TIMESTAMP 레코드 수정 시간
updated_by BIGINT 레코드 수정자 (user_id)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by BIGINT 레코드 삭제자 (user_id)

쿠폰 공연 테이블(coupon_concerts)

필드 이름 데이터 타입 설명
id UUID Primary Key
coupon_id UUID 쿠폰ID
concert_id UUID 공연ID

공연 테이블(conserts)

필드 이름 데이터 타입 설명
id UUID Primary Key
venue_id UUID 공연의 공연장, FK
concert_name VARCHAR(255) 공연 이름
concert_start_time TIMESTAMP 공연 시작 날짜 및 시간
concert_playtime INTEGER 공연 진행 시간
description TEXT 공연 설명
is_deleted BOOLEAN 삭제 여부
created_at TIMESTAMP 레코드 생성 시간
created_by BIGINT 레코드 생성자 (user_id)
updated_at TIMESTAMP 레코드 수정 시간
updated_by BIGINT 레코드 수정자 (user_id)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by BIGINT 레코드 삭제자 (user_id)

공연장 테이블(venues)

필드 이름 데이터 타입 설명
id Long Primary Key
venue_name VARCHAR(255) 공연장 이름
venue_address VARCHAR(255) 공연장 주소
seat_capacity Integer 총 좌석 수
is_deleted BOOLEAN 삭제 여부
created_at TIMESTAMP 레코드 생성 시간
created_by BIGINT 레코드 생성자 (user_id)
updated_at TIMESTAMP 레코드 수정 시간
updated_by BIGINT 레코드 수정자 (user_id)
deleted_at TIMESTAMP 레코드 삭제 시간
deleted_by BIGINT 레코드 삭제자 (user_id)

좌석 테이블(seats)

| --- | --- | --- |

좌석가격 테이블(seat_prices)

| --- | --- | --- |