Files
metabuilder/packages/schema_editor/seed/scripts/tables.lua
T
git 9d27207fbc Refactor package validation and quick guide modules
- Simplified structure validation by re-exporting functions from structure_config and validate_structure modules for better maintainability.
- Consolidated validation logic in validate.lua, delegating to validate_package module for clearer orchestration.
- Introduced new quick guide functionalities including step management (add, remove, update, reset ordering) and media handling (thumbnail and video URL validation).
- Added utility functions for URL validation and step creation, enhancing the quick guide's usability.
- Established type definitions for steps and media states to improve code clarity and type safety.
- Enhanced schema editor with new field and relation definitions, providing a more robust structure for database schema management.
2025-12-30 11:17:40 +00:00

83 lines
1.9 KiB
Lua

-- Table management
---@class CreateTableAction
---@field action "create_table"
---@field name string Table name
---@field fields FieldDefinition[] Array of field definitions
---@class AddFieldAction
---@field action "add_field"
---@field table string Table name
---@field field FieldDefinition Field to add
---@class RemoveFieldAction
---@field action "remove_field"
---@field table string Table name
---@field field string Field name to remove
---@class TableEditorProps
---@field name string Table name
---@field fields FieldDefinition[] Array of field definitions
---@class TableEditorComponent
---@field type "table_editor"
---@field props TableEditorProps
---@class TableDefinition
---@field name string Table name
---@field fields FieldDefinition[] Array of field definitions
---@class TablesModule
local M = {}
---Create a new table definition
---@param name string Table name
---@param fields? FieldDefinition[] Array of field definitions
---@return CreateTableAction
function M.create(name, fields)
return {
action = "create_table",
name = name,
fields = fields or {}
}
end
---Render a table editor component
---@param table_def TableDefinition Table definition
---@return TableEditorComponent
function M.render(table_def)
return {
type = "table_editor",
props = {
name = table_def.name,
fields = table_def.fields
}
}
end
---Create an add field action
---@param table_name string Table name
---@param field FieldDefinition Field to add
---@return AddFieldAction
function M.add_field(table_name, field)
return {
action = "add_field",
table = table_name,
field = field
}
end
---Create a remove field action
---@param table_name string Table name
---@param field_name string Field name to remove
---@return RemoveFieldAction
function M.remove_field(table_name, field_name)
return {
action = "remove_field",
table = table_name,
field = field_name
}
end
return M