User.java

package com.domain;

import com.domain.type.PlatformType;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.util.List;

@Entity
@Data
public class User {

    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "user_id")
    private Long userNo;

    private String userId;

    private String userNickname;

    private String userEmail;

    private Integer userPoint;

    private PlatformType platformType;

    @ManyToMany(fetch = FetchType.LAZY)
    @JoinColumn(name = "ROOM_ID")
    private List<Room> rooms;

    private String platformAccessToken;
}

Room.java

package com.domain;

import com.domain.type.ContentType;
import lombok.Data;

import javax.persistence.*;
import java.util.Date;
import java.util.List;

@Entity
@Data
public class Room {
    @Id
    @GeneratedValue
    private String roomCode;

    private String roomName;

    private ContentType roomType;

    private Integer roomLimitPersonnel;

    private String roomContent;

    // TODO: 2022-07-19 유저 엔티티 연결
    @ManyToMany(mappedBy = "user")
    private List<User> roomUser;

    private Date roomStartDate;

    private Date roomEndDate;

    private Integer roomLimitPoint;

}

PlatformType.java

package com.domain.type;

public enum PlatformType {
    DOMAIN, KAKAO
}

ContentType.java

package com.domain.type;

public enum ContentType {
    MIRACLE, HOMEWORK, EXERCISE
}