Skip to content

Commit

Permalink
Feat: 디바이스 토큰 저장을 위한 엔티티 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
yxhwxn committed Aug 19, 2024
1 parent 8cfdaad commit 93878a1
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
47 changes: 47 additions & 0 deletions src/main/java/com/cmc/suppin/fcm/domain/DeviceToken.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.cmc.suppin.fcm.domain;

import com.cmc.suppin.member.domain.Member;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;

import java.time.LocalDateTime;

@Entity
@Getter
@Builder
@DynamicInsert
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class DeviceToken {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@ManyToOne
@JoinColumn(name = "member_id", nullable = false)
private Member member;

@Column(nullable = false, unique = true)
private String deviceToken;

@Enumerated(EnumType.STRING)
private DeviceType deviceType; // ANDROID, IOS, OTHER

@Column(nullable = false)
private LocalDateTime createdAt;


public void setMember(Member member) {
this.member = member;
}

public void setToken(String token) {
this.deviceToken = token;
}

public void setCreatedAt(LocalDateTime now) {
this.createdAt = now;
}
}
15 changes: 15 additions & 0 deletions src/main/java/com/cmc/suppin/member/domain/Member.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.cmc.suppin.member.domain;

import com.cmc.suppin.event.events.domain.Event;
import com.cmc.suppin.fcm.domain.DeviceToken;
import com.cmc.suppin.global.domain.BaseDateTimeEntity;
import com.cmc.suppin.global.enums.UserRole;
import com.cmc.suppin.global.enums.UserStatus;
Expand Down Expand Up @@ -28,6 +29,10 @@ public class Member extends BaseDateTimeEntity {
@Builder.Default
private List<Event> eventList = new ArrayList<>();

@OneToMany(mappedBy = "member", cascade = CascadeType.ALL)
@Builder.Default
private List<DeviceToken> deviceTokenList = new ArrayList<>();

@Column(columnDefinition = "VARCHAR(30)", nullable = false)
private String userId;

Expand Down Expand Up @@ -71,5 +76,15 @@ public void delete() {
public void updatePassword(String encode) {
this.password = encode;
}

public void addDeviceToken(DeviceToken deviceToken) {
deviceToken.setMember(this);
this.deviceTokenList.add(deviceToken);
}

public void removeDeviceToken(DeviceToken deviceToken) {
this.deviceTokenList.remove(deviceToken);
deviceToken.setMember(null);
}
}

0 comments on commit 93878a1

Please sign in to comment.