crm-summit/app/Database/Migrations/2026-04-27-000003_RemoveFileUrlAndThumbnailFromFigmaTables.php
mahdahar 329e4e6725 feat(figma): add local sync dashboard, API, and CLI tooling
Add Figma persistence and sync flow for one file source.

- create figma_files, figma_file_versions, and figma_comments tables with supporting migrations
- add FigmaSyncService for full and incremental sync, API fetch, pagination, dedupe, and upserts
- add CLI commands and shell wrappers for full and incremental sync runs
- expose Figma dashboard plus API endpoints for summary, snapshots, comments, and admin sync trigger
- wire route and sidebar entry for dashboard access
- trim legacy file_url and thumbnail_url fields, add version label/description support
2026-04-27 16:55:43 +07:00

69 lines
1.6 KiB
PHP

<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class RemoveFileUrlAndThumbnailFromFigmaTables extends Migration
{
public function up()
{
if ($this->db->fieldExists('file_url', 'figma_files')) {
$this->forge->dropColumn('figma_files', 'file_url');
}
if ($this->db->fieldExists('thumbnail_url', 'figma_files')) {
$this->forge->dropColumn('figma_files', 'thumbnail_url');
}
if ($this->db->fieldExists('file_url', 'figma_file_versions')) {
$this->forge->dropColumn('figma_file_versions', 'file_url');
}
if ($this->db->fieldExists('thumbnail_url', 'figma_file_versions')) {
$this->forge->dropColumn('figma_file_versions', 'thumbnail_url');
}
}
public function down()
{
$fieldsFiles = [];
if (!$this->db->fieldExists('file_url', 'figma_files')) {
$fieldsFiles['file_url'] = [
'type' => 'TEXT',
'null' => true,
];
}
if (!$this->db->fieldExists('thumbnail_url', 'figma_files')) {
$fieldsFiles['thumbnail_url'] = [
'type' => 'TEXT',
'null' => true,
];
}
if (!empty($fieldsFiles)) {
$this->forge->addColumn('figma_files', $fieldsFiles);
}
$fieldsVersions = [];
if (!$this->db->fieldExists('file_url', 'figma_file_versions')) {
$fieldsVersions['file_url'] = [
'type' => 'TEXT',
'null' => true,
];
}
if (!$this->db->fieldExists('thumbnail_url', 'figma_file_versions')) {
$fieldsVersions['thumbnail_url'] = [
'type' => 'TEXT',
'null' => true,
];
}
if (!empty($fieldsVersions)) {
$this->forge->addColumn('figma_file_versions', $fieldsVersions);
}
}
}