package org.egl_cepgl.pm.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;
import java.util.Set;

@Setter
@Getter
@Entity
@ToString
@Table(name="file", schema = "egl_pm_db")
@AllArgsConstructor
@NoArgsConstructor
@DynamicUpdate
public class File extends AbstractEntity
{
    @Column(name="namep", length = 400)
    private String namep;

    @Column(name="description", length = 300)
    private String description;

    @Column(name="path", length = 400)
    private String path;

    @Column(name="mime_type", length = 200)
    private String mime_type;

    @Column(name="format", length = 10)
    private String format;

    @Column(name="size")
    private Long size;

    @ManyToOne(targetEntity = FileCategory.class)
    @JoinColumn(name="category_id")
    private FileCategory category;

    @Column(name= "to_notify")
    @ColumnDefault("false")
    private Boolean to_notify;

    @Column(name= "notified")
    @ColumnDefault("false")
    private Boolean notified;

//    @ManyToMany(mappedBy = "files", targetEntity = Email.class)
//    private Set<Email> emails;

}
