class-database.php
79 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WP_Rplg_Google_Reviews\Includes\Core; |
| 4 | |
| 5 | class Database { |
| 6 | |
| 7 | const BUSINESS_TABLE = 'grp_google_place'; |
| 8 | |
| 9 | const REVIEW_TABLE = 'grp_google_review'; |
| 10 | |
| 11 | const STATS_TABLE = 'grp_google_stats'; |
| 12 | |
| 13 | public function create() { |
| 14 | global $wpdb; |
| 15 | |
| 16 | $charset_collate = $wpdb->get_charset_collate(); |
| 17 | |
| 18 | if (!function_exists('dbDelta')) { |
| 19 | require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); |
| 20 | } |
| 21 | |
| 22 | $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_place (". |
| 23 | "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,". |
| 24 | "place_id VARCHAR(80) NOT NULL,". |
| 25 | "name VARCHAR(255) NOT NULL,". |
| 26 | "photo VARCHAR(255),". |
| 27 | "icon VARCHAR(255),". |
| 28 | "address VARCHAR(255),". |
| 29 | "rating DOUBLE PRECISION,". |
| 30 | "url VARCHAR(255),". |
| 31 | "website VARCHAR(255),". |
| 32 | "review_count INTEGER,". |
| 33 | "updated BIGINT(20),". |
| 34 | "PRIMARY KEY (`id`),". |
| 35 | "UNIQUE INDEX grp_place_id (`place_id`)". |
| 36 | ") " . $charset_collate . ";"; |
| 37 | |
| 38 | dbDelta($sql); |
| 39 | |
| 40 | $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_review (". |
| 41 | "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,". |
| 42 | "google_place_id BIGINT(20) UNSIGNED NOT NULL,". |
| 43 | "rating INTEGER NOT NULL,". |
| 44 | "text VARCHAR(10000),". |
| 45 | "time INTEGER NOT NULL,". |
| 46 | "language VARCHAR(10),". |
| 47 | "author_name VARCHAR(255),". |
| 48 | "author_url VARCHAR(255),". |
| 49 | "profile_photo_url VARCHAR(255),". |
| 50 | "hide VARCHAR(1) DEFAULT '' NOT NULL,". |
| 51 | "PRIMARY KEY (`id`),". |
| 52 | "INDEX grp_google_place_id (`google_place_id`)". |
| 53 | ") " . $charset_collate . ";"; |
| 54 | |
| 55 | dbDelta($sql); |
| 56 | |
| 57 | $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_stats (". |
| 58 | "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,". |
| 59 | "google_place_id BIGINT(20) UNSIGNED NOT NULL,". |
| 60 | "time INTEGER NOT NULL,". |
| 61 | "rating DOUBLE PRECISION,". |
| 62 | "review_count INTEGER,". |
| 63 | "PRIMARY KEY (`id`),". |
| 64 | "INDEX grp_google_place_id (`google_place_id`)". |
| 65 | ") " . $charset_collate . ";"; |
| 66 | |
| 67 | dbDelta($sql); |
| 68 | } |
| 69 | |
| 70 | public function drop() { |
| 71 | global $wpdb; |
| 72 | |
| 73 | $wpdb->query("DROP TABLE " . $wpdb->prefix . self::BUSINESS_TABLE . ";"); |
| 74 | $wpdb->query("DROP TABLE " . $wpdb->prefix . self::REVIEW_TABLE . ";"); |
| 75 | $wpdb->query("DROP TABLE " . $wpdb->prefix . self::STATS_TABLE . ";"); |
| 76 | } |
| 77 | |
| 78 | } |
| 79 |