package org.egl_cepgl.pm.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Setter
@Getter
@Entity
@ToString
@Table(name="project", schema = "egl_pm_db")
@AllArgsConstructor
@NoArgsConstructor
@DynamicUpdate
public class Project extends AbstractEntity
{
    @Column(name="namep", length = 50)
    private String namep;

    @Column(name="code", length = 5)
    private String code;

    @Column(name="description", length = 200)
    private String description;

    @OneToMany(mappedBy = "project", targetEntity = ProcurementCategory.class, cascade = CascadeType.ALL)
    private Set<ProcurementCategory> categories;

    @OneToMany(mappedBy = "project", targetEntity = Procurement.class, cascade = CascadeType.ALL)
    private Set<Procurement> procurements;

    public void add(ProcurementCategory category)
    {
        if(category != null){
            if(categories == null){
                categories = new HashSet<>();
            }
            categories.add(category);
            category.setProject(this);
        }
    }
}
