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 = "completed_task")
public class CompletedTask {

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

    private String description;

    private String note;

    private String status;

    private LocalDate dueDate;

    private LocalDate completedDate;

    private Double hoursSpent;

    @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_COMPLETED_TASK"))
    private Report report;


}
