Plan.java

package com.deveagles.be15_deveagles_be.features.schedules.command.domain.aggregate;

import jakarta.persistence.*;
import java.time.LocalDateTime;
import lombok.*;

@Entity
@Table(name = "plan")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Builder
public class Plan {

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

  @Column(name = "staff_id", nullable = false)
  private Long staffId;

  @Column(name = "shop_id", nullable = false)
  private Long shopId;

  @Column(name = "plan_title", nullable = false, length = 50)
  private String planTitle;

  @Column(name = "plan_memo")
  private String planMemo;

  @Column(name = "plan_start_at", nullable = false)
  private LocalDateTime planStartAt;

  @Column(name = "plan_end_at", nullable = false)
  private LocalDateTime planEndAt;

  public void update(String title, String memo, LocalDateTime start, LocalDateTime end) {
    this.planTitle = title;
    this.planMemo = memo;
    this.planStartAt = start;
    this.planEndAt = end;
  }
}