package com.brilliance.isc.transfer.model;

import com.brilliance.isc.bo.Ncd;
import com.brilliance.isc.bo.Nct;
import com.brilliance.isc.bo.model.Ncdgrp;
import com.brilliance.isc.bo.model.Nctp;
import com.brilliance.isc.vo.model.NcdVo;
import com.brilliance.isc.vo.model.NctVo;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;

//import com.brilliance.isc.bo.model.Ncacbs;

/**
 * 国内索赔模型拷贝、转换函数声明
 */
@Mapper(componentModel = "spring",uses = {ICbbMapper.class})
public interface INctMapper {
    NcdVo convertNcdToVo(Ncd ncd);
    Ncd convertNcdVoToVo(NcdVo ncdVo);

    void updateNcdFromVo(NcdVo ncdVo, @MappingTarget Ncd Ncd);
    void updateNcdVoFromBo(Ncd Ncd, @MappingTarget NcdVo ncdVo);

    NctVo convertNctToVo(Nct nct);
    Nct convertNctVoToVo(NctVo nctVo);

    void updateNctFromVo(NctVo nctVo, @MappingTarget Nct nct);
    void updateNctVoFromBo(Nct nct, @MappingTarget NctVo nctVo);

    com.brilliance.isc.vo.model.Ncdgrp convertNcdgrpToVo(Ncdgrp nctgrp);
    Ncdgrp convertNcdgrpVoToVo(com.brilliance.isc.vo.model.Ncdgrp nctgrpVo);

    void updateNcdgrpFromVo(com.brilliance.isc.vo.model.Ncdgrp nctgrpVo, @MappingTarget Ncdgrp nctgrp);
    void updateNcdgrpVoFromBo(Ncdgrp nctgrp, @MappingTarget com.brilliance.isc.vo.model.Ncdgrp nctgrpVo);

//    com.brilliance.isc.vo.model.Ncacbs convertNcdgrpToVo(Ncacbs ncacbs);
//    Ncacbs convertNcdgrpVoToVo(com.brilliance.isc.vo.model.Ncacbs ncacbsVo);
//
//    void updateNcacbsFromVo(com.brilliance.isc.vo.model.Ncacbs ncacbsVo, @MappingTarget Ncacbs ncacbs);
//    void updateNcacbsVoFromBo(Ncacbs ncacbs, @MappingTarget com.brilliance.isc.vo.model.Ncdgrp ncacbsVo);


    com.brilliance.isc.vo.model.Nctp convertNcdgrpToVo(Nctp nctp);
    Nctp convertNcdgrpVoToVo(com.brilliance.isc.vo.model.Nctp nctpVo);

    void updateNctpFromVo(com.brilliance.isc.vo.model.Nctp nctpVo, @MappingTarget Nctp nctp);
    void updateNctpVoFromBo(Nctp nctp, @MappingTarget com.brilliance.isc.vo.model.Nctp nctpVo);

}
