package com.sn.sowsysrestapi.domain.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.*;
import java.time.LocalDate;
import java.time.OffsetDateTime;

@Data
@Entity
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
@Table(name = "next_period_task")
public class NextPeriodTask {

    @EqualsAndHashCode.Include
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name = "description")
    private String description;

    @Column(name = "note")
    private String note;

    @Column(name = "date")
    private LocalDate expectedDeliveryDate;

    @CreationTimestamp
    @Column(name = "created_on")
    private OffsetDateTime createdOn;

    @UpdateTimestamp
    @Column(name = "updated_on")
    private OffsetDateTime updatedOn;

    @ManyToOne
    @JoinColumn(name = "report_id", foreignKey = @ForeignKey(name = "FK_REPORT_ID_NEXT_PERIOD_TASK"))
    private Report report;

}
