
function wpmmachine_get_ads( $page = 0, $per_page = 50 ) {
    global $wpdb;
    $page = max( 1, intval( $page ) + 1 );
    $offset = ( $page - 1 ) * $per_page;
    return $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}moneymach_ads ORDER BY id DESC LIMIT %d, %d", $offset, $per_page ) );
}

function wpmmachine_get_ad( $ad_id ) {
    global $wpdb;
    return $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}moneymach_ads WHERE id = %d", intval( $ad_id ) ) );
}

function wpmmachine_add_ad( $name, $type, $settings ) {
    global $wpdb;
    $now = current_time( 'mysql' );
    $wpdb->insert(
        $wpdb->prefix . 'moneymach_ads',
        array(
            'name' => $name,
            'type' => intval( $type ),
            'settings' => $settings,
            'created_at' => $now,
            'updated_at' => $now,
        ),
        array( '%s', '%d', '%s', '%s', '%s' )
    );
    return intval( $wpdb->insert_id );
}

function wpmmachine_update_ad( $ad_id, $name, $type, $settings ) {
    global $wpdb;
    return $wpdb->update(
        $wpdb->prefix . 'moneymach_ads',
        array(
            'name' => $name,
            'type' => intval( $type ),
            'settings' => $settings,
            'updated_at' => current_time( 'mysql' ),
        ),
        array( 'id' => intval( $ad_id ) ),
        array( '%s', '%d', '%s', '%s' ),
        array( '%d' )
    );
}

function wpmmachine_delete_ad( $ad_id ) {
    global $wpdb;
    return $wpdb->delete( $wpdb->prefix . 'moneymach_ads', array( 'id' => intval( $ad_id ) ), array( '%d' ) );
}

function wpmmachine_get_total_clicks() {
    global $wpdb;
    return intval( $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->prefix}moneymach_clicks" ) );
}

function wpmmachine_track_click( $monetize_id = 0, $target_url = '', $source_url = '' ) {
    global $wpdb;
    return $wpdb->insert(
        $wpdb->prefix . 'moneymach_clicks',
        array(
            'monetize_id' => intval( $monetize_id ),
            'clicked_at' => current_time( 'mysql' ),
            'target_url' => $target_url,
            'source_url' => $source_url,
        ),
        array( '%d', '%s', '%s', '%s' )
    );
}
{"id":4,"count":0,"description":"Na categoria FAQ \u2013 Beb\u00ea Reborn, voc\u00ea encontra respostas para as d\u00favidas mais frequentes sobre o mundo dos beb\u00eas reborn. Aqui esclarecemos tudo: como escolher um beb\u00ea reborn, quais as diferen\u00e7as entre silicone s\u00f3lido e vinil, como cuidar corretamente, quais s\u00e3o os pre\u00e7os, onde comprar com seguran\u00e7a, e como identificar um produto de qualidade. Esta se\u00e7\u00e3o foi criada especialmente para ajudar colecionadores, apaixonados e futuros compradores a tomar decis\u00f5es seguras e conscientes nesse universo encantador dos beb\u00eas reborn.","link":"https:\/\/barbaragancia.com.br\/bebereborn\/categoria\/faq\/","name":"FAQ","slug":"faq","taxonomy":"category","parent":0,"meta":[],"_links":{"self":[{"href":"https:\/\/barbaragancia.com.br\/bebereborn\/wp-json\/wp\/v2\/categories\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/barbaragancia.com.br\/bebereborn\/wp-json\/wp\/v2\/categories"}],"about":[{"href":"https:\/\/barbaragancia.com.br\/bebereborn\/wp-json\/wp\/v2\/taxonomies\/category"}],"wp:post_type":[{"href":"https:\/\/barbaragancia.com.br\/bebereborn\/wp-json\/wp\/v2\/posts?categories=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}