package com.lgcns.esg.entity;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.lgcns.esg.core.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import java.time.LocalDateTime;
import java.util.List;

@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "D_SYSTEM_TYPE")
public class SystemType extends BaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "SYS_TYPE_ID")
    private Long id;
    @Column(name = "CODE",unique = true)
    private String code;
    @Column(name = "NAME")
    private String name;

    @Column(name = "DELETED_AT")
    private LocalDateTime deletedAt;

    @Column(name = "DELETED_BY")
    private String deletedBy;
    @Column(name = "IS_DELETED")
    private boolean deleted;
    @OneToMany(mappedBy = "systemType", cascade = CascadeType.ALL)
    @JsonBackReference
    private List<SystemParams> systemParams;
}