github.com/wanlay/gorm-dm8@v1.0.5/namer.go (about)

     1  package dm
     2  
     3  import (
     4  	"gorm.io/gorm/schema"
     5  	"strings"
     6  )
     7  
     8  type Namer struct {
     9  	schema.NamingStrategy
    10  }
    11  
    12  func ConvertNameToFormat(x string) string {
    13  	return strings.ToUpper(x)
    14  }
    15  
    16  func (n Namer) TableName(table string) (name string) {
    17  	return ConvertNameToFormat(n.NamingStrategy.TableName(table))
    18  }
    19  
    20  func (n Namer) ColumnName(table, column string) (name string) {
    21  	return ConvertNameToFormat(n.NamingStrategy.ColumnName(table, column))
    22  }
    23  
    24  func (n Namer) JoinTableName(table string) (name string) {
    25  	return ConvertNameToFormat(n.NamingStrategy.JoinTableName(table))
    26  }
    27  
    28  func (n Namer) RelationshipFKName(relationship schema.Relationship) (name string) {
    29  	return ConvertNameToFormat(n.NamingStrategy.RelationshipFKName(relationship))
    30  }
    31  
    32  func (n Namer) CheckerName(table, column string) (name string) {
    33  	return ConvertNameToFormat(n.NamingStrategy.CheckerName(table, column))
    34  }
    35  
    36  func (n Namer) IndexName(table, column string) (name string) {
    37  	tlc := strings.ToLower(column)
    38  
    39  	cl := n.NamingStrategy.IndexName(table, column)
    40  	if strings.Contains(tlc, "idx_"+strings.ToLower(table)) && strings.Contains(tlc, strings.ToLower(column)) {
    41  		cl = column
    42  	}
    43  
    44  	return ConvertNameToFormat(cl)
    45  }