#!/usr/bin/php
<?php

$db = new PDO('sqlite:/var/www/db/endpoint.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$recordset = $db->query('SELECT name, COUNT(*) AS n FROM model GROUP BY name HAVING n > 1');
$dupes = array();
foreach ($recordset as $tupla) { $dupes[] = $tupla['name']; }
$rec_dupeids = $db->prepare('SELECT id FROM model WHERE name = ? ORDER BY id');
$sth_movedupes = $db->prepare('UPDATE endpoint SET id_model = ? WHERE id_model = ?');
$sth_deldupe = $db->prepare('DELETE FROM model WHERE id = ?');
foreach ($dupes as $dupe) {
    print "Found duplicate model $dupe, fixing...\n";
    $rec_dupeids->execute(array($dupe));
    $dupeids = array();
    foreach ($rec_dupeids as $t) {
        $dupeids[] = $t['id'];
    }
    $masterid = array_shift($dupeids);
    foreach ($dupeids as $dupeid) {
        $sth_movedupes->execute(array($masterid, $dupeid));
        $sth_deldupe->execute(array($dupeid));
    }
}
$db = NULL;
?>
