package com.qsoft.rs.sincoar.dominio.mapper;

import com.qsoft.rs.sincoar.dto.MdGroupPrivilegesDTO;
import com.qsoft.rs.sincoar.model.MdGroupPrivileges;
import com.qsoft.rs.sincoar.model.MdGroups;
import com.qsoft.rs.sincoar.model.MdPrivileges;
import java.math.BigDecimal;
import java.math.BigInteger;
import javax.annotation.processing.Generated;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2022-09-02T16:14:50-0500",
    comments = "version: 1.5.2.Final, compiler: javac, environment: Java 17.0.4 (Private Build)"
)
public class MdGroupPrivilegesMapperImpl implements MdGroupPrivilegesMapper {

    @Override
    public MdGroupPrivileges getEntidad(MdGroupPrivilegesDTO mdGroupPrivileges) {
        if ( mdGroupPrivileges == null ) {
            return null;
        }

        MdGroupPrivileges mdGroupPrivileges1 = new MdGroupPrivileges();

        mdGroupPrivileges1.setGroupIdFk( mdGroupPrivilegesDTOToMdGroups( mdGroupPrivileges ) );
        mdGroupPrivileges1.setPrivilegeIdFk( mdGroupPrivilegesDTOToMdPrivileges( mdGroupPrivileges ) );
        if ( mdGroupPrivileges.getId() != null ) {
            mdGroupPrivileges1.setId( BigDecimal.valueOf( mdGroupPrivileges.getId() ) );
        }
        if ( mdGroupPrivileges.getSecurityGroupId() != null ) {
            mdGroupPrivileges1.setSecurityGroupId( BigInteger.valueOf( mdGroupPrivileges.getSecurityGroupId() ) );
        }
        mdGroupPrivileges1.setCreatedOn( mdGroupPrivileges.getCreatedOn() );
        mdGroupPrivileges1.setCreatedBy( mdGroupPrivileges.getCreatedBy() );
        mdGroupPrivileges1.setLastUpdatedOn( mdGroupPrivileges.getLastUpdatedOn() );
        mdGroupPrivileges1.setLastUpdatedBy( mdGroupPrivileges.getLastUpdatedBy() );

        validaNulos( mdGroupPrivileges, mdGroupPrivileges1 );

        return mdGroupPrivileges1;
    }

    @Override
    public MdGroupPrivilegesDTO getDto(MdGroupPrivileges mdGroupPrivileges) {
        if ( mdGroupPrivileges == null ) {
            return null;
        }

        MdGroupPrivilegesDTO mdGroupPrivilegesDTO = new MdGroupPrivilegesDTO();

        BigDecimal id = mdGroupPrivilegesGroupIdFkId( mdGroupPrivileges );
        if ( id != null ) {
            mdGroupPrivilegesDTO.setGroupIdFk( id.intValue() );
        }
        BigDecimal id1 = mdGroupPrivilegesPrivilegeIdFkId( mdGroupPrivileges );
        if ( id1 != null ) {
            mdGroupPrivilegesDTO.setPrivilegeIdFk( id1.intValue() );
        }
        if ( mdGroupPrivileges.getId() != null ) {
            mdGroupPrivilegesDTO.setId( mdGroupPrivileges.getId().intValue() );
        }
        if ( mdGroupPrivileges.getSecurityGroupId() != null ) {
            mdGroupPrivilegesDTO.setSecurityGroupId( mdGroupPrivileges.getSecurityGroupId().intValue() );
        }
        mdGroupPrivilegesDTO.setCreatedOn( mdGroupPrivileges.getCreatedOn() );
        mdGroupPrivilegesDTO.setCreatedBy( mdGroupPrivileges.getCreatedBy() );
        mdGroupPrivilegesDTO.setLastUpdatedOn( mdGroupPrivileges.getLastUpdatedOn() );
        mdGroupPrivilegesDTO.setLastUpdatedBy( mdGroupPrivileges.getLastUpdatedBy() );

        return mdGroupPrivilegesDTO;
    }

    protected MdGroups mdGroupPrivilegesDTOToMdGroups(MdGroupPrivilegesDTO mdGroupPrivilegesDTO) {
        if ( mdGroupPrivilegesDTO == null ) {
            return null;
        }

        MdGroups mdGroups = new MdGroups();

        if ( mdGroupPrivilegesDTO.getGroupIdFk() != null ) {
            mdGroups.setId( BigDecimal.valueOf( mdGroupPrivilegesDTO.getGroupIdFk() ) );
        }

        return mdGroups;
    }

    protected MdPrivileges mdGroupPrivilegesDTOToMdPrivileges(MdGroupPrivilegesDTO mdGroupPrivilegesDTO) {
        if ( mdGroupPrivilegesDTO == null ) {
            return null;
        }

        MdPrivileges mdPrivileges = new MdPrivileges();

        if ( mdGroupPrivilegesDTO.getPrivilegeIdFk() != null ) {
            mdPrivileges.setId( BigDecimal.valueOf( mdGroupPrivilegesDTO.getPrivilegeIdFk() ) );
        }

        return mdPrivileges;
    }

    private BigDecimal mdGroupPrivilegesGroupIdFkId(MdGroupPrivileges mdGroupPrivileges) {
        if ( mdGroupPrivileges == null ) {
            return null;
        }
        MdGroups groupIdFk = mdGroupPrivileges.getGroupIdFk();
        if ( groupIdFk == null ) {
            return null;
        }
        BigDecimal id = groupIdFk.getId();
        if ( id == null ) {
            return null;
        }
        return id;
    }

    private BigDecimal mdGroupPrivilegesPrivilegeIdFkId(MdGroupPrivileges mdGroupPrivileges) {
        if ( mdGroupPrivileges == null ) {
            return null;
        }
        MdPrivileges privilegeIdFk = mdGroupPrivileges.getPrivilegeIdFk();
        if ( privilegeIdFk == null ) {
            return null;
        }
        BigDecimal id = privilegeIdFk.getId();
        if ( id == null ) {
            return null;
        }
        return id;
    }
}
