Documentation
¶
Index ¶
- Constants
- type AddColumnRequest
- type AggregateFunction
- type AlterTableRequest
- type BatchRelationshipRequest
- type CascadeOperation
- type CascadeResult
- type Column
- type ColumnDefinition
- type ComplexFilter
- type CreateJoinTableRequest
- type CreateRelationshipRequest
- type CreateTableRequest
- type DropColumnRequest
- type ForeignKey
- type ForeignKeyDef
- type FullTextSearch
- type IncludeDefinition
- type IndexDefinition
- type JoinClause
- type JoinTableInfo
- type ModifyColumnRequest
- type NestedQueryParams
- type QueryFilter
- type QueryParams
- type RangeQuery
- type RelationshipAnalysis
- type RelationshipConfig
- type RelationshipDataRequest
- type RelationshipDataResponse
- type RelationshipDefinition
- type RelationshipOperation
- type RelationshipSummary
- type RelationshipValidationError
- type RelationshipValidationResponse
- type RenameColumnRequest
- type Table
- type UpdateRelationshipRequest
Constants ¶
View Source
const ( RelationshipOneToOne = "one_to_one" RelationshipOneToMany = "one_to_many" RelationshipManyToMany = "many_to_many" )
Relationship types
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddColumnRequest ¶
type AddColumnRequest struct {
Column ColumnDefinition `json:"column" binding:"required"`
}
type AggregateFunction ¶
type AlterTableRequest ¶
type AlterTableRequest struct {
Action string `json:"action" binding:"required"` // "drop_column", "modify_column", "rename_column"
Data interface{} `json:"data" binding:"required"`
}
type BatchRelationshipRequest ¶
type BatchRelationshipRequest struct {
Operations []RelationshipOperation `json:"operations" binding:"required"`
}
Batch relationship operations
type CascadeOperation ¶
type CascadeOperation struct {
Table string `json:"table"`
Operation string `json:"operation"` // "DELETE", "UPDATE", "SET_NULL"
RecordID interface{} `json:"record_id"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
}
Cascade operation tracking
type CascadeResult ¶
type CascadeResult struct {
Success bool `json:"success"`
Operations []CascadeOperation `json:"operations"`
Message string `json:"message"`
}
type Column ¶
type Column struct {
Name string `db:"column_name"`
DataType string `db:"data_type"`
IsNullable string `db:"is_nullable"`
DefaultValue *string `db:"column_default"`
MaxLength *int `db:"character_maximum_length"`
Position int `db:"ordinal_position"`
IsPrimaryKey bool `json:"is_primary_key"`
NotNull bool `json:"not_null"`
Ordinal int `json:"ordinal"`
}
type ColumnDefinition ¶
type ComplexFilter ¶
type ComplexFilter struct {
Filters []QueryFilter `json:"filters"`
Groups []ComplexFilter `json:"groups,omitempty"`
Logic string `json:"logic"` // "AND" or "OR"
}
type CreateJoinTableRequest ¶
type CreateJoinTableRequest struct {
Name string `json:"name,omitempty"`
SourceJoinColumn string `json:"source_join_column,omitempty"`
TargetJoinColumn string `json:"target_join_column,omitempty"`
AdditionalColumns []ColumnDefinition `json:"additional_columns,omitempty"`
Indexes []IndexDefinition `json:"indexes,omitempty"`
}
type CreateRelationshipRequest ¶
type CreateRelationshipRequest struct {
Name string `json:"name" binding:"required"`
Type string `json:"type" binding:"required"`
SourceTable string `json:"source_table" binding:"required"`
TargetTable string `json:"target_table" binding:"required"`
Config RelationshipConfig `json:"config"`
JoinTable *CreateJoinTableRequest `json:"join_table,omitempty"`
}
Relationship request models
type CreateTableRequest ¶
type CreateTableRequest struct {
Name string `json:"name" binding:"required"`
Columns []ColumnDefinition `json:"columns" binding:"required"`
PrimaryKey []string `json:"primary_key,omitempty"`
ForeignKeys []ForeignKeyDef `json:"foreign_keys,omitempty"`
Indexes []IndexDefinition `json:"indexes,omitempty"`
}
DDL Models
type DropColumnRequest ¶
type ForeignKey ¶
type ForeignKey struct {
ColumnName string `db:"column_name"`
ReferencedTableName string `db:"referenced_table_name"`
ReferencedColumnName string `db:"referenced_column_name"`
ConstraintName string `db:"constraint_name"`
Columns []string `json:"columns"`
ReferencedTable string `json:"referenced_table"`
ReferencedColumns []string `json:"referenced_columns"`
OnDelete string `json:"on_delete,omitempty"`
OnUpdate string `json:"on_update,omitempty"`
}
type ForeignKeyDef ¶
type ForeignKeyDef struct {
Name string `json:"name,omitempty"`
Columns []string `json:"columns" binding:"required"`
ReferencedTable string `json:"referenced_table" binding:"required"`
ReferencedColumns []string `json:"referenced_columns" binding:"required"`
OnDelete string `json:"on_delete,omitempty"` // CASCADE, SET NULL, RESTRICT
OnUpdate string `json:"on_update,omitempty"`
}
type FullTextSearch ¶
type IncludeDefinition ¶
type IncludeDefinition struct {
Relationship string `json:"relationship" binding:"required"`
Alias string `json:"alias,omitempty"`
Select []string `json:"select,omitempty"`
Filters []QueryFilter `json:"filters,omitempty"`
OrderBy []string `json:"order_by,omitempty"`
Limit *int `json:"limit,omitempty"`
Include []IncludeDefinition `json:"include,omitempty"` // Nested includes
}
type IndexDefinition ¶
type JoinClause ¶
type JoinTableInfo ¶
type JoinTableInfo struct {
Name string `json:"name"`
SourceTable string `json:"source_table"`
TargetTable string `json:"target_table"`
SourceColumn string `json:"source_column"`
TargetColumn string `json:"target_column"`
AdditionalColumns []Column `json:"additional_columns,omitempty"`
RelationshipName string `json:"relationship_name"`
}
Join table metadata
type ModifyColumnRequest ¶
type NestedQueryParams ¶
type NestedQueryParams struct {
Include []IncludeDefinition `json:"include,omitempty"`
QueryParams
}
Nested query structures
type QueryFilter ¶
type QueryFilter struct {
Column string `json:"column"`
Operator string `json:"operator"`
Value interface{} `json:"value"`
Logic string `json:"logic,omitempty"` // "AND" or "OR"
}
Enhanced query models
type QueryParams ¶
type QueryParams struct {
Select []string `json:"select,omitempty"`
Filters []QueryFilter `json:"filters,omitempty"`
Complex *ComplexFilter `json:"complex_filter,omitempty"`
Joins []JoinClause `json:"joins,omitempty"`
Aggregates []AggregateFunction `json:"aggregates,omitempty"`
GroupBy []string `json:"group_by,omitempty"`
Having []QueryFilter `json:"having,omitempty"`
OrderBy []string `json:"order_by,omitempty"`
Limit *int `json:"limit,omitempty"`
Offset *int `json:"offset,omitempty"`
Range *RangeQuery `json:"range,omitempty"`
FullText *FullTextSearch `json:"full_text,omitempty"`
}
type RangeQuery ¶
type RangeQuery struct {
Column string `json:"column"`
From interface{} `json:"from"`
To interface{} `json:"to"`
}
type RelationshipAnalysis ¶
type RelationshipAnalysis struct {
TableName string `json:"table_name"`
Relationships []RelationshipSummary `json:"relationships"`
DependsOn []string `json:"depends_on"`
DependedBy []string `json:"depended_by"`
}
Relationship analysis models
type RelationshipConfig ¶
type RelationshipConfig struct {
JunctionTable string `json:"junction_table,omitempty"`
SourceColumn string `json:"source_column,omitempty"`
TargetColumn string `json:"target_column,omitempty"`
OnDelete string `json:"on_delete,omitempty"`
OnUpdate string `json:"on_update,omitempty"`
CreateForeignKey bool `json:"create_foreign_key"`
}
type RelationshipDataRequest ¶
type RelationshipDataRequest struct {
SourceID interface{} `json:"source_id" binding:"required"`
TargetIDs []interface{} `json:"target_ids,omitempty"`
TargetID interface{} `json:"target_id,omitempty"`
Data map[string]interface{} `json:"data,omitempty"` // For additional columns in join table
}
Relationship data operations
type RelationshipDefinition ¶
type RelationshipDefinition struct {
Name string `json:"name" db:"name"`
Type string `json:"type" db:"type"`
SourceTable string `json:"source_table" db:"source_table"`
SourceColumn string `json:"source_column" db:"source_column"`
TargetTable string `json:"target_table" db:"target_table"`
TargetColumn string `json:"target_column" db:"target_column"`
JoinTable *string `json:"join_table,omitempty" db:"join_table"`
SourceJoinColumn *string `json:"source_join_column,omitempty" db:"source_join_column"`
TargetJoinColumn *string `json:"target_join_column,omitempty" db:"target_join_column"`
OnDelete string `json:"on_delete" db:"on_delete"`
OnUpdate string `json:"on_update" db:"on_update"`
}
RelationshipDefinition defines the structure of a relationship
type RelationshipOperation ¶
type RelationshipOperation struct {
Operation string `json:"operation" binding:"required"` // "create", "update", "delete"
Relationship string `json:"relationship,omitempty"`
Data RelationshipDataRequest `json:"data,omitempty"`
}
type RelationshipSummary ¶
type RelationshipValidationError ¶
type RelationshipValidationError struct {
Field string `json:"field"`
Message string `json:"message"`
}
Relationship validation errors
type RelationshipValidationResponse ¶
type RelationshipValidationResponse struct {
Valid bool `json:"valid"`
Errors []RelationshipValidationError `json:"errors,omitempty"`
}
type RenameColumnRequest ¶
type UpdateRelationshipRequest ¶
type UpdateRelationshipRequest struct {
Name *string `json:"name,omitempty"`
OnDelete *string `json:"on_delete,omitempty"`
OnUpdate *string `json:"on_update,omitempty"`
Config *RelationshipConfig `json:"config,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.