Files
dockerfluxodecaixapro/modules/notes/database/migrations/004_create_notes_subjects_table.php
T
2026-09-01 10:46:29 -03:00

83 lines
2.4 KiB
PHP
Executable File

<?php
/**
* SysCMS - Content Management System
*
* Copyright (c) 2026 Marco Costa
* All rights reserved.
*
* Author: Marco Costa
* Email: contato@syspanel.com.br
* Project: SysCMS
*
* This software is licensed, not sold.
* Permission is granted to use this software
* subject to the terms of the SysCMS Commercial License.
*
* Redistribution, sublicensing, resale, or
* disclosure of this software, in whole or in part,
* is strictly prohibited without prior written permission.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
*/
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Database\Schema\Blueprint;
/**
* Migration: Create Notes Subjects Table and Update Notes Table
*/
class CreateNotesSubjectsTable
{
/**
* Run the migrations.
*
* @return void
*/
public function up(): void
{
// Create subjects table
if (!Capsule::schema()->hasTable('notes_subjects')) {
Capsule::schema()->create('notes_subjects', function (Blueprint $table) {
$table->id('subjects_id');
$table->unsignedBigInteger('subjects_idbus')->nullable();
$table->unsignedBigInteger('subjects_iduser')->nullable();
$table->string('subjects_name');
$table->string('subjects_color')->default('#6c757d');
$table->timestamps();
$table->index('subjects_idbus');
$table->index('subjects_iduser');
});
}
// Update notes table to use subject_id
if (Capsule::schema()->hasTable('notes')) {
Capsule::schema()->table('notes', function (Blueprint $table) {
if (!Capsule::schema()->hasColumn('notes', 'notes_subject_id')) {
$table->unsignedBigInteger('notes_subject_id')->nullable()->after('notes_type');
$table->index('notes_subject_id');
}
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down(): void
{
if (Capsule::schema()->hasTable('notes')) {
Capsule::schema()->table('notes', function (Blueprint $table) {
if (Capsule::schema()->hasColumn('notes', 'notes_subject_id')) {
$table->dropColumn('notes_subject_id');
}
});
}
Capsule::schema()->dropIfExists('notes_subjects');
}
}