CoffeeLetterRoom.java

package com.newbit.coffeeletter.domain.chat;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "coffeeletterrooms")
public class CoffeeLetterRoom {
    
    @Id
    private String id;
    
    private Long coffeeChatId;
    
    private Long mentorId;
    private String mentorName;
    
    private Long menteeId;
    private String menteeName;
    
    @Builder.Default
    private LocalDateTime createdAt = LocalDateTime.now();
    
    private LocalDateTime endTime;
    
    @Builder.Default
    private RoomStatus status = RoomStatus.ACTIVE;
    
    @Builder.Default
    private List<String> participants = new ArrayList<>();
    
    @Builder.Default
    private int unreadCountMentor = 0;
    
    @Builder.Default
    private int unreadCountMentee = 0;
    
    private String lastMessageContent;
    private LocalDateTime lastMessageTime;
    private MessageType lastMessageType;
    private Long lastMessageSenderId;

    public enum RoomStatus {
        ACTIVE,
        INACTIVE,
        CANCELED
    }
}