package es.uv.saic.dto;

import java.io.IOException;
import java.util.List;

import org.springframework.web.multipart.MultipartFile;

public class ImportDTO {
    // Campos comunes
    String tipus;
    String principal;
    String enquesta;
    String ambit;
    String estudi;
    String locale;
    String clau;
    List<String> ignoredColumns;

    // Campos específicos para importación desde archivo
    byte[] fileContent;
    String fileName;
    String delim;

    // Campos específicos para importación desde base de datos
    Integer dbOrigen;
    String vista;
    Integer curs;
    Integer dstCurs;

    // Constructor completo para todos los campos
    public ImportDTO(MultipartFile file, String tipus, String principal, String enquesta, String ambit, String estudi,
            String locale, String delim, String clau, List<String> ignoredColumns, Integer dbOrigen, String vista,
            Integer curs, Integer dstCurs) {
        if (file != null) {
            try {
                this.fileContent = file.getBytes();
                this.fileName = file.getOriginalFilename();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        this.tipus = tipus;
        this.principal = principal;
        this.enquesta = enquesta;
        this.ambit = ambit;
        this.estudi = estudi;
        this.locale = locale;
        this.delim = delim;
        this.clau = clau;
        this.ignoredColumns = ignoredColumns;
        this.dbOrigen = dbOrigen;
        this.vista = vista;
        this.curs = curs;
        this.dstCurs = dstCurs;
    }

    public byte[] getFileContent() {
        return fileContent;
    }

    public void setFileContent(byte[] fileContent) {
        this.fileContent = fileContent;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    // Getters y Setters
    public String getTipus() {
        return tipus;
    }

    public void setTipus(String tipus) {
        this.tipus = tipus;
    }

    public String getPrincipal() {
        return principal;
    }

    public void setPrincipal(String principal) {
        this.principal = principal;
    }

    public String getEnquesta() {
        return enquesta;
    }

    public void setEnquesta(String enquesta) {
        this.enquesta = enquesta;
    }

    public String getAmbit() {
        return ambit;
    }

    public void setAmbit(String ambit) {
        this.ambit = ambit;
    }

    public String getEstudi() {
        return estudi;
    }

    public void setEstudi(String estudi) {
        this.estudi = estudi;
    }

    public String getLocale() {
        return locale;
    }

    public void setLocale(String locale) {
        this.locale = locale;
    }

    public String getDelim() {
        return delim;
    }

    public void setDelim(String delim) {
        this.delim = delim;
    }

    public String getClau() {
        return clau;
    }

    public void setClau(String clau) {
        this.clau = clau;
    }

    public List<String> getIgnoredColumns() {
        return ignoredColumns;
    }

    public void setIgnoredColumns(List<String> ignoredColumns) {
        this.ignoredColumns = ignoredColumns;
    }

    public Integer getDbOrigen() {
        return dbOrigen;
    }

    public void setDbOrigen(Integer dbOrigen) {
        this.dbOrigen = dbOrigen;
    }

    public String getVista() {
        return vista;
    }

    public void setVista(String vista) {
        this.vista = vista;
    }

    public Integer getCurs() {
        return curs;
    }

    public void setCurs(Integer curs) {
        this.curs = curs;
    }

    public Integer getDstCurs() {
        return dstCurs;
    }

    public void setDstCurs(Integer dstCurs) {
        this.dstCurs = dstCurs;
    }
}