package com.xunhong.erp.turbo.rbac.infrastructure.convert;


import com.xunhong.erp.turbo.api.rbac.dto.cmd.MenuCreateCmd;
import com.xunhong.erp.turbo.api.rbac.dto.cmd.MenuUpdateCmd;
import com.xunhong.erp.turbo.rbac.domain.entity.Menu;
import com.xunhong.erp.turbo.rbac.domain.entity.Permission;
import com.xunhong.erp.turbo.rbac.infrastructure.entity.MenuDO;
import com.xunhong.erp.turbo.rbac.infrastructure.entity.PermissionDO;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.NullValueCheckStrategy;

/**
 * @author shenyifei
 */
@Mapper(componentModel = "spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface MenuConvert {

	MenuDO toMenuDO(MenuCreateCmd menuCreateCmd);

	void toMenuDO(@MappingTarget MenuDO menuDO, MenuUpdateCmd menuUpdateCmd);

	@SuppressWarnings("unused")
	Permission toPermission(PermissionDO permissionDO);

	Menu toMenu(MenuDO menuDO);
}
