'integer', 'is_nullable' => 'boolean', 'is_primary_key' => 'boolean', 'is_foreign_key' => 'boolean', 'is_indexed' => 'boolean', 'exclude_from_migration' => 'boolean', 'character_maximum_length' => 'integer', 'numeric_precision' => 'integer', 'numeric_scale' => 'integer', ]; public function table(): BelongsTo { return $this->belongsTo(Table::class); } public function getFullTypeAttribute(): string { $type = $this->data_type; if ($this->character_maximum_length) { $type .= "({$this->character_maximum_length})"; } elseif ($this->numeric_precision && $this->numeric_scale) { $type .= "({$this->numeric_precision},{$this->numeric_scale})"; } elseif ($this->numeric_precision) { $type .= "({$this->numeric_precision})"; } return $type; } public function getEffectiveColumnNameAttribute(): string { return $this->target_column_name ?? $this->column_name; } public function getEffectiveDataTypeAttribute(): string { return $this->target_data_type ?? $this->data_type; } }