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

import com.qsoft.rs.sincoar.dto.MdTablesDTO;
import com.qsoft.rs.sincoar.model.MdSchemas;
import com.qsoft.rs.sincoar.model.MdTables;
import java.math.BigDecimal;
import java.math.BigInteger;
import javax.annotation.processing.Generated;

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

    @Override
    public MdTables getEntidad(MdTablesDTO mdTables) {
        if ( mdTables == null ) {
            return null;
        }

        MdTables mdTables1 = new MdTables();

        mdTables1.setSchemaIdFk( mdTablesDTOToMdSchemas( mdTables ) );
        if ( mdTables.getId() != null ) {
            mdTables1.setId( BigDecimal.valueOf( mdTables.getId() ) );
        }
        mdTables1.setTableName( mdTables.getTableName() );
        mdTables1.setNativeSql( mdTables.getNativeSql() );
        mdTables1.setNativeKey( mdTables.getNativeKey() );
        mdTables1.setQualifiedNativeName( mdTables.getQualifiedNativeName() );
        mdTables1.setComments( mdTables.getComments() );
        if ( mdTables.getSecurityGroupId() != null ) {
            mdTables1.setSecurityGroupId( BigInteger.valueOf( mdTables.getSecurityGroupId() ) );
        }
        mdTables1.setCreatedOn( mdTables.getCreatedOn() );
        mdTables1.setCreatedBy( mdTables.getCreatedBy() );
        mdTables1.setLastUpdatedOn( mdTables.getLastUpdatedOn() );
        mdTables1.setLastUpdatedBy( mdTables.getLastUpdatedBy() );

        return mdTables1;
    }

    @Override
    public MdTablesDTO getDto(MdTables mdTables) {
        if ( mdTables == null ) {
            return null;
        }

        MdTablesDTO mdTablesDTO = new MdTablesDTO();

        BigDecimal id = mdTablesSchemaIdFkId( mdTables );
        if ( id != null ) {
            mdTablesDTO.setSchemaIdFk( id.intValue() );
        }
        if ( mdTables.getId() != null ) {
            mdTablesDTO.setId( mdTables.getId().intValue() );
        }
        mdTablesDTO.setTableName( mdTables.getTableName() );
        mdTablesDTO.setNativeSql( mdTables.getNativeSql() );
        mdTablesDTO.setNativeKey( mdTables.getNativeKey() );
        mdTablesDTO.setQualifiedNativeName( mdTables.getQualifiedNativeName() );
        mdTablesDTO.setComments( mdTables.getComments() );
        if ( mdTables.getSecurityGroupId() != null ) {
            mdTablesDTO.setSecurityGroupId( mdTables.getSecurityGroupId().intValue() );
        }
        mdTablesDTO.setCreatedOn( mdTables.getCreatedOn() );
        mdTablesDTO.setCreatedBy( mdTables.getCreatedBy() );
        mdTablesDTO.setLastUpdatedOn( mdTables.getLastUpdatedOn() );
        mdTablesDTO.setLastUpdatedBy( mdTables.getLastUpdatedBy() );

        return mdTablesDTO;
    }

    protected MdSchemas mdTablesDTOToMdSchemas(MdTablesDTO mdTablesDTO) {
        if ( mdTablesDTO == null ) {
            return null;
        }

        MdSchemas mdSchemas = new MdSchemas();

        if ( mdTablesDTO.getSchemaIdFk() != null ) {
            mdSchemas.setId( BigDecimal.valueOf( mdTablesDTO.getSchemaIdFk() ) );
        }

        return mdSchemas;
    }

    private BigDecimal mdTablesSchemaIdFkId(MdTables mdTables) {
        if ( mdTables == null ) {
            return null;
        }
        MdSchemas schemaIdFk = mdTables.getSchemaIdFk();
        if ( schemaIdFk == null ) {
            return null;
        }
        BigDecimal id = schemaIdFk.getId();
        if ( id == null ) {
            return null;
        }
        return id;
    }
}
