package org.egl_cepgl.pm.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

@Setter
@Getter
@Entity
@ToString
@Table(name="procurement_category", schema = "egl_pm_db")
@AllArgsConstructor
@NoArgsConstructor
@DynamicUpdate
public class ProcurementCategory extends AbstractEntity
{
    @Column(name="namep", length = 50)
    private String namep;

    @Column(name="description", length = 200)
    private String description;

    @Column(name="code", length = 100)
    private String code;

    @Column(name="parent_code", length = 100)
    private String parent_code;

    @ManyToOne(targetEntity = Project.class, fetch = FetchType.LAZY)
    @JoinColumn(name="project_id")
    private Project project;

    @OneToMany(mappedBy = "category", orphanRemoval = true, targetEntity = Procurement.class, cascade = CascadeType.ALL)
    private Set<Procurement> procurements;

//    @ManyToOne(targetEntity = Category.class)
//    @JoinColumn(name="parent_cat_id")
//    private Category parent_category;

}

