// Package gormcol provides type-safe GORM column descriptors. // // This package enables defining struct-like variables that map Go field names // to database table.column pairs, allowing type-safe queries in GORM. // // Example usage: // // var PsAccess = struct { // IDProfile gormcol.Field // IDAuthorizationRole gormcol.Field // }{ // IDProfile: gormcol.Field{Table: "ps_access", Column: "id_profile"}, // IDAuthorizationRole: gormcol.Field{Table: "ps_access", Column: "id_authorization_role"}, // } package gormcol // Field represents a GORM column descriptor with table context. // It holds the table name and column name for type-safe column references. type Field struct { Table string // Database table name Column string // Database column name } // Column returns the column name from a Field descriptor. // // Example: // // gormcol.Column(dbmodel.PsAccess.IDAuthorizationRole) // "id_authorization_role" func Column(f Field) string { return f.Column } // ColumnOnTable returns a qualified "table.column" string from a Field descriptor. // // Example: // // gormcol.ColumnOnTable(dbmodel.PsAccess.IDAuthorizationRole) // "ps_access.id_authorization_role" func ColumnOnTable(f Field) string { return f.Table + "." + f.Column } // TableField returns the table name from a Field descriptor. // // Example: // // gormcol.TableField(dbmodel.PsAccess.IDAuthorizationRole) // "ps_access" func TableField(f Field) string { return f.Table } // Table is an alias for TableField, returning the table name from a Field descriptor. // // Example: // // gormcol.Table(dbmodel.PsAccess.IDAuthorizationRole) // "ps_access" func Table(f Field) string { return f.Table }