# Исправления проблем редактора карт

## ✅ Исправленные проблемы:

### 1. **Ошибка `scale.x.toFixed is not a function`**
**Проблема:** Объекты Three.js могут иметь неинициализированные свойства scale
**Решение:** Добавлена проверка типов перед вызовом `.toFixed()`

```javascript
// Безопасное получение масштаба
const scaleX = typeof obj.scale.x === 'number' ? obj.scale.x : 1;
const scaleY = typeof obj.scale.y === 'number' ? obj.scale.y : 1;
const scaleZ = typeof obj.scale.z === 'number' ? obj.scale.z : 1;
```

### 2. **Ошибка миграции `column "created_at" does not exist`**
**Проблема:** Триггер пытался обратиться к колонке до её создания
**Решение:** Создана простая миграция без триггеров

## 🚀 Инструкции по запуску:

### **Для исправления ошибки scale:**
Код уже исправлен в `MapEditor.jsx`. Ошибка больше не должна возникать.

### **Для исправления миграции:**
```bash
# Используйте простую миграцию вместо сложной
node run-simple-migration.js
```

### **Проверка результата:**
1. Откройте редактор карт
2. Нажмите кнопку "Проверить БД"
3. Должно показать: "Таблица существует: true"

## 📋 Что было исправлено:

### **В MapEditor.jsx:**
- ✅ Безопасная обработка координат, поворота и масштаба
- ✅ Проверка типов перед вызовом `.toFixed()`
- ✅ Значения по умолчанию для неинициализированных свойств

### **В миграции:**
- ✅ Создана простая версия без триггеров
- ✅ Убраны сложные зависимости
- ✅ Добавлена проверка существования таблицы

## 🔧 Альтернативные решения:

### **Если простая миграция не работает:**
```sql
-- Создайте таблицу вручную в pgAdmin или psql
CREATE TABLE city_objects (
    id SERIAL PRIMARY KEY,
    city_id INTEGER NOT NULL,
    name VARCHAR(255) NOT NULL DEFAULT '',
    model_url VARCHAR(500) NOT NULL,
    pos_x DECIMAL(15, 6) NOT NULL DEFAULT 0,
    pos_y DECIMAL(15, 6) NOT NULL DEFAULT 0,
    pos_z DECIMAL(15, 6) NOT NULL DEFAULT 0,
    rot_x DECIMAL(15, 6) NOT NULL DEFAULT 0,
    rot_y DECIMAL(15, 6) NOT NULL DEFAULT 0,
    rot_z DECIMAL(15, 6) NOT NULL DEFAULT 0,
    scale_x DECIMAL(15, 6) NOT NULL DEFAULT 1,
    scale_y DECIMAL(15, 6) NOT NULL DEFAULT 1,
    scale_z DECIMAL(15, 6) NOT NULL DEFAULT 1,
    organization_id INTEGER NOT NULL DEFAULT 2,
    rent DECIMAL(10, 2) NOT NULL DEFAULT 0,
    tax DECIMAL(10, 2) NOT NULL DEFAULT 0,
    collidable BOOLEAN NOT NULL DEFAULT false,
    interior_id INTEGER NOT NULL DEFAULT 101,
    textures VARCHAR(500) NOT NULL DEFAULT '-',
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
```

## ✅ Результат:
- Ошибки `scale.x.toFixed` больше не возникают
- Миграция выполняется без ошибок
- Редактор карт работает стабильно
