refactor: replace custom CRM with Monica fork
Some checks failed
Build & Push Monica Image to Gitea Registry / build-and-push (push) Failing after 9s
Some checks failed
Build & Push Monica Image to Gitea Registry / build-and-push (push) Failing after 9s
This commit is contained in:
123
database/migrations/2017_12_04_165421_move_ages_data.php
Normal file
123
database/migrations/2017_12_04_165421_move_ages_data.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class MoveAgesData extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
$contacts = DB::table('contacts')->select('account_id', 'id', 'first_name', 'is_birthdate_approximate', 'birthdate', 'birthday_reminder_id', 'first_met', 'deceased_date')->get();
|
||||
|
||||
foreach ($contacts as $contact) {
|
||||
$specialDateDeceasedDateId = null;
|
||||
$specialDateBirthdateId = null;
|
||||
$specialDateFirstMetDateId = null;
|
||||
|
||||
if ($contact->deceased_date) {
|
||||
$specialDateDeceasedDateId = DB::table('special_dates')->insertGetId([
|
||||
'account_id' => $contact->account_id,
|
||||
'contact_id' => $contact->id,
|
||||
'is_age_based' => false,
|
||||
'date' => $contact->deceased_date,
|
||||
'reminder_id' => null,
|
||||
'created_at' => now(),
|
||||
]);
|
||||
}
|
||||
|
||||
$isBirthdayApproximate = $contact->is_birthdate_approximate;
|
||||
|
||||
if ($contact->birthdate) {
|
||||
switch ($isBirthdayApproximate) {
|
||||
case 'unknown':
|
||||
break;
|
||||
case 'approximate':
|
||||
$specialDateBirthdateId = DB::table('special_dates')->insertGetId([
|
||||
'account_id' => $contact->account_id,
|
||||
'contact_id' => $contact->id,
|
||||
'is_age_based' => true,
|
||||
'date' => $contact->birthdate,
|
||||
'reminder_id' => $contact->birthday_reminder_id,
|
||||
'created_at' => now(),
|
||||
]);
|
||||
|
||||
break;
|
||||
case 'exact':
|
||||
$specialDateBirthdateId = DB::table('special_dates')->insertGetId([
|
||||
'account_id' => $contact->account_id,
|
||||
'contact_id' => $contact->id,
|
||||
'is_age_based' => false,
|
||||
'date' => $contact->birthdate,
|
||||
'reminder_id' => $contact->birthday_reminder_id,
|
||||
'created_at' => now(),
|
||||
]);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($contact->first_met) {
|
||||
$specialDateFirstMetDateId = DB::table('special_dates')->insertGetId([
|
||||
'account_id' => $contact->account_id,
|
||||
'contact_id' => $contact->id,
|
||||
'is_age_based' => false,
|
||||
'date' => $contact->first_met,
|
||||
'reminder_id' => null,
|
||||
'created_at' => now(),
|
||||
]);
|
||||
}
|
||||
|
||||
if ($contact->birthdate && $specialDateBirthdateId) {
|
||||
// is title field null? If so, that means it's a birthdate and we need to populate the title field with a title
|
||||
$reminder = DB::table('reminders')->where('id', $contact->birthday_reminder_id)
|
||||
->select('title')
|
||||
->get();
|
||||
|
||||
if ($reminder->isEmpty()) {
|
||||
DB::table('reminders')
|
||||
->where('id', $contact->birthday_reminder_id)
|
||||
->update([
|
||||
'special_date_id' => $specialDateBirthdateId,
|
||||
]);
|
||||
} else {
|
||||
DB::table('reminders')
|
||||
->where('id', $contact->birthday_reminder_id)
|
||||
->update([
|
||||
'special_date_id' => $specialDateBirthdateId,
|
||||
'title' => 'Wish happy birthday to '.$contact->first_name,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
DB::table('contacts')
|
||||
->where('id', $contact->id)
|
||||
->update([
|
||||
'deceased_special_date_id' => $specialDateDeceasedDateId,
|
||||
'birthday_special_date_id' => $specialDateBirthdateId,
|
||||
'first_met_special_date_id' => $specialDateFirstMetDateId,
|
||||
]);
|
||||
}
|
||||
|
||||
Schema::table('contacts', function ($table) {
|
||||
$table->dropColumn([
|
||||
'deceased_date',
|
||||
'first_met',
|
||||
'birthdate',
|
||||
'is_birthdate_approximate',
|
||||
'birthday_reminder_id',
|
||||
]);
|
||||
});
|
||||
|
||||
Schema::table('reminders', function ($table) {
|
||||
$table->dropColumn([
|
||||
'is_birthday',
|
||||
]);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user