SalesTarget.java

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

import jakarta.persistence.*;
import lombok.*;

@Getter
@Entity
@Table(name = "sales_target")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class SalesTarget {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "target_id", nullable = false)
  private Long targetId;

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

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

  @Column(name = "membership", nullable = false)
  private boolean membership = false;

  @Column(name = "items", nullable = false)
  private boolean items = false;

  @Column(name = "sales", nullable = false)
  private int sales;

  @Column(name = "target_year", nullable = false)
  private int targetYear;

  @Column(name = "target_month", nullable = false)
  private int targetMonth;

  @Column(name = "apply_status", nullable = false)
  private boolean applyStatus = false;

  @Builder
  public SalesTarget(
      Long staffId,
      Long shopId,
      boolean membership,
      boolean items,
      int sales,
      int targetYear,
      int targetMonth,
      boolean applyStatus) {
    this.staffId = staffId;
    this.shopId = shopId;
    this.membership = membership;
    this.items = items;
    this.sales = sales;
    this.targetYear = targetYear;
    this.targetMonth = targetMonth;
    this.applyStatus = applyStatus;
  }

  public void setStatus(boolean status) {
    this.applyStatus = status;
  }

  public void setSalesAmount(int sales) {
    this.sales = sales;
  }
}