package org.egl_cepgl.pm.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.egl_cepgl.pm.model.File;
import org.egl_cepgl.pm.model.FileCategory;
import org.egl_cepgl.pm.model.Procurement;
import org.egl_cepgl.pm.model.ProcurementCategory;

import javax.persistence.Column;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Data
@Builder
public class FileDto
{
    private Long id;

    private String namep;

    private String description;

    private String path;

    private String mime_type;

    private String format;

    private Long size;

    private FileCategoryDto category;

    private Boolean to_notify;

    private Boolean notified;

    public static FileDto fromEntity(File obj)
    {
        if(obj == null){
            return null;
        }
        return FileDto.builder()
                .id(obj.getId())
                .namep(obj.getNamep())
                .path(obj.getPath())
                .mime_type(obj.getMime_type())
                .format(obj.getFormat())
                .size(obj.getSize())
                .description(obj.getDescription())
                .category(FileCategoryDto.fromEntity(obj.getCategory()))
                .to_notify(obj.getTo_notify())
                .notified(obj.getNotified())
                .build();
    }

    public static File toEntity(FileDto dto){
        if(dto == null){
            return null;
        }
        File obj= new File();
        obj.setNamep(dto.getNamep());
        obj.setDescription(dto.getDescription());
        obj.setPath(dto.getPath());
        obj.setMime_type(dto.getMime_type());
        obj.setFormat(dto.getFormat());
        obj.setSize(dto.getSize());
        obj.setCategory(FileCategoryDto.toEntity(dto.getCategory()));
        obj.setTo_notify(dto.getTo_notify());
        obj.setNotified(dto.getNotified());
        return obj;
    }

}
