MessageSettings.java
package com.deveagles.be15_deveagles_be.features.messages.command.domain.aggregate;
import jakarta.persistence.*;
import lombok.*;
@Entity
@Table(name = "message_settings")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
public class MessageSettings {
@Id
@Column(name = "shop_id", nullable = false)
private Long shopId;
@Column(name = "sender_number", length = 11)
private String senderNumber;
@Column(name = "can_alimtalk", nullable = false)
private boolean canAlimtalk;
@Column(name = "point", nullable = false)
private Long point;
public void update(String senderNumber, Boolean canAlimtalk) {
if (senderNumber != null) this.senderNumber = senderNumber;
if (canAlimtalk != null) this.canAlimtalk = canAlimtalk;
}
public void addPoint(long added) {
if (added <= 0) throw new IllegalArgumentException("포인트는 0보다 커야 합니다.");
this.point += added;
}
public void usePoint(long used) {
if (this.point < used) throw new IllegalStateException("포인트 부족");
this.point -= used;
}
}