package org.openlmis.vaccine.repository.mapper.inventory; import org.apache.ibatis.annotations.*; import org.openlmis.core.domain.Product; import org.openlmis.vaccine.domain.inventory.*; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface VaccineInventoryConfigurationMapper { @Select("SELECT *" + " FROM vaccine_inventory_product_configurations ") @Results({ @Result(property = "product", column = "productId", javaType = Product.class, one = @One(select = "org.openlmis.core.repository.mapper.ProductMapper.getById")) }) List<VaccineInventoryProductConfiguration> getAll(); @Select("SELECT *" + " FROM vaccine_inventory_product_configurations " + " WHERE id=#{id}") VaccineInventoryProductConfiguration getById(Long id); @Select("SELECT *" + " FROM vaccine_inventory_product_configurations " + " WHERE productid=#{productId}") VaccineInventoryProductConfiguration getByProductId(Long productId); @Update("update vaccine_inventory_product_configurations " + " set " + " batchtracked = #{batchTracked}," + " vvmtracked= #{vvmTracked}, " + " survivingInfants = #{survivingInfants}," + " denominatorEstimateCategoryId = #{denominatorEstimateCategoryId}, " + " schedule = #{schedule}, " + " coverage = #{coverage}, " + " presentation = #{presentation}, " + " packedVolumePerDose = #{packedVolumePerDose}, " + " administrationMode = #{administrationMode}, " + " dilutionSyringe = #{dilutionSyringe}, " + " diluentPackedVolumePerDose = #{diluentPackedVolumePerDose}, " + " ordering = #{ordering}, " + " dropout = #{dropOut} " + "WHERE id=#{id} " ) Integer update(VaccineInventoryProductConfiguration configuration); @Insert("insert into vaccine_inventory_product_configurations " + " (type, productid, batchtracked, vvmtracked,survivingInfants,denominatorEstimateCategoryId,schedule,coverage,presentation,packedVolumePerDose,administrationMode,dilutionSyringe,diluentPackedVolumePerDose,ordering,dropout) " + " values " + " (#{type}, #{productId}, #{batchTracked}, #{vvmTracked},#{survivingInfants},#{denominatorEstimateCategoryId},#{schedule},#{coverage},#{presentation},#{packedVolumePerDose},#{administrationMode},#{dilutionSyringe},#{diluentPackedVolumePerDose},#{ordering},#{dropOut}) ") @Options(useGeneratedKeys = true) Integer insert(VaccineInventoryProductConfiguration configuration); }