MaterialsWrapper.java

package com.university.bookstore.repository;

import com.university.bookstore.model.Material;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.ArrayList;

/**
 * Wrapper class to ensure proper JSON serialization of Material polymorphic types.
 * This wrapper ensures that Jackson includes type information for each Material.
 */
public class MaterialsWrapper {
    @JsonProperty("materials")
    private List<Material> materials;
    
    public MaterialsWrapper() {
        this.materials = new ArrayList<>();
    }
    
    public MaterialsWrapper(List<Material> materials) {
        this.materials = materials != null ? new ArrayList<>(materials) : new ArrayList<>();
    }
    
    public List<Material> getMaterials() {
        return materials;
    }
    
    public void setMaterials(List<Material> materials) {
        this.materials = materials;
    }
}