Point Management Service
사용자들이 장소에 리뷰를 작성할 때 포인트를 부여하고, 전체/개인에 대한 포인트 부여 히스토리와 개인별 누적 포인트를 관리하는 서비스
DDL
- User
CREATE TABLE user ( id varchar(255) not null, email varchar(255) not null, name varchar(255) not null, password varchar(255) not null, point integer not null, PRIMARY KEY (id) );
- Place
CREATE TABLE place ( id varchar(255) not null, name varchar(255) not null, PRIMARY KEY (id) );
- Review
CREATE TABLE review ( id varchar(255) not null, content varchar(255) not null, deleted bit default false not null, register_datetime datetime not null, update_datetime datetime not null, place_id varchar(255), writer_id varchar(255), PRIMARY KEY (id), FOREIGN KEY (place_id) REFERENCES place (id), FOREIGN KEY (writer_id) REFERENCES user (id), UNIQUE INDEX place_review_index (place_id) );
- ReviewPhoto
CREATE TABLE review_photo ( id varchar(255) not null, photo_url varchar(255) not null, review_id varchar(255), PRIMARY KEY (id), FOREIGN KEY (review_id) REFERENCES review (id) );
- Point
CREATE TABLE point ( id bigint not null auto_increment, type integer not null, value integer not null, review_id varchar(255), user_id varchar(255), PRIMARY KEY (id), FOREIGN KEY (review_id) REFERENCES review (id), FOREIGN KEY (user_id) REFERENCES user (id), UNIQUE INDEX review_point_index (review_id), UNIQUE INDEX user_point_index (user_id) );
REST API
- 개인 누적 포인트 조회
GET /user/point
- 리뷰에 따른 포인트 적립
POST /points
- 개인 포인트 부여 히스토리 조회
GET /points
- 전체 포인트 부여 히스토리 조회
GET /points/all