EnrichedGlassesCSV.java

package com.sintia.ffl.admin.optique.catalogue.models;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDate;

/**
 * DTO created from the data read from the csv file
 *
 * @author jumazet
 */
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class EnrichedGlassesCSV {

	private String		maker;

	private String		provider;

	private String		glassOptoCode;

	private String		classCode;

	private String		classCodeRepo;

	private String		glassName;

	private String		glassNameRepo;

	private String		geometry;

	private String		geometryRepo;

	private String		material;

	private String		materialRepo;

	private boolean		surfaceType;

	private boolean		surfaceTypeRepo;

	private boolean		hardened;

	private boolean		hardenedRepo;

	private boolean		antiReflection;

	private boolean		antiReflectionRepo;

	private boolean		photochromic;

	private boolean		photochromicRepo;

	private Integer		refractiveIndex;

	private Integer		refractiveIndexRepo;

	private boolean		tinted;

	private boolean		tintedRepo;

	private String		action;

	@JsonSerialize(using = LocalDateSerializer.class)
	private LocalDate	expiryDate;

	@JsonSerialize(using = LocalDateSerializer.class)
	private LocalDate startDate;

	private String		actionCodeDelta;

	private String		correctedData;

	private String		comment;

	public EnrichedGlassesCSV(GlassesCSV glasses) {
		super();
		this.maker = glasses.getMaker();
		this.provider = glasses.getProvider();
		this.glassOptoCode = glasses.getGlassOptoCode();
		this.classCode = glasses.getClassCode();
		this.glassName = glasses.getGlassName();
		this.geometry = glasses.getGeometry();
		this.material = glasses.getMaterial();
		this.surfaceType = glasses.isSurfaceType();
		this.hardened = glasses.isHardened();
		this.antiReflection = glasses.isAntiReflection();
		this.photochromic = glasses.isPhotochromic();
		this.refractiveIndex = glasses.getRefractiveIndex();
		this.tinted = glasses.isTinted();
		this.action = glasses.getAction();
		this.expiryDate = glasses.getExpiryDate();
		this.startDate = glasses.getStartDate();
	}

	public EnrichedGlassesCSV copy() {
		return new EnrichedGlassesCSV(maker, provider, glassOptoCode, classCode, classCodeRepo, glassName, glassNameRepo, geometry, geometryRepo,
				material, materialRepo, surfaceType, surfaceTypeRepo, hardened, hardenedRepo, antiReflection, antiReflectionRepo,
				photochromic, photochromicRepo, refractiveIndex, refractiveIndexRepo, tinted, tintedRepo, action, expiryDate, startDate,
				actionCodeDelta, correctedData, comment);
	}

}