package templ import ( "strings" "git.ymnuktech.ru/ymnuk/yt-gen-app/structs" uuid "github.com/satori/go.uuid" ) // Найти таблицу по имени func FindSourceDataInDBByName(project *structs.Project, name string) *structs.Table /*uuid.UUID*/ { if len(project.DB.Tables) == 0 { //return uuid.Nil return nil } for i := range project.DB.Tables { if project.DB.Tables[i].Name == name { //return project.DB.Tables[i].ID return &project.DB.Tables[i] } } //return uuid.Nil return nil } // Найти ID поля по имени func FindFieldIdInDBByName(project *structs.Project, tblID uuid.UUID, fldName string) uuid.UUID { if len(project.DB.Tables) == 0 { return uuid.Nil } for i := range project.DB.Tables { if project.DB.Tables[i].ID == tblID { for j := range project.DB.Tables[i].Fields { if project.DB.Tables[i].Fields[j].Name == strings.ToLower(fldName) { return project.DB.Tables[i].Fields[j].ID } } } } return uuid.Nil } // Найти таблицу по ID func FindSourceDataInDBByID(project *structs.Project, id uuid.UUID) *structs.Table { if len(project.DB.Tables) == 0 { return nil } for i := range project.DB.Tables { if project.DB.Tables[i].ID == id { //return project.DB.Tables[i].Name return &project.DB.Tables[i] } } return nil } // Найти имя поля в таблице по ID func FindFieldNameInDBById(project *structs.Project, tblID uuid.UUID, fldId uuid.UUID) string { if len(project.DB.Tables) == 0 { return "" } for i := range project.DB.Tables { if project.DB.Tables[i].ID == tblID { for j := range project.DB.Tables[i].Fields { if project.DB.Tables[i].Fields[j].ID == fldId { return project.DB.Tables[i].Fields[j].Name } } } } return "" } func FindSourceDataInInterfaceByName(project *structs.Project, name string) *structs.Interface { if len(project.Interfaces) == 0 { return nil } for i := range project.Interfaces { if project.Interfaces[i].Name == FieldNamePrepare(name) { return &project.Interfaces[i] } } return nil } func FindSourceDataInInterfaceByID(project *structs.Project, id uuid.UUID) *structs.Interface { if len(project.Interfaces) == 0 { return nil } for i := range project.Interfaces { if project.Interfaces[i].ID == id { return &project.Interfaces[i] } } return nil } // Найти ID поля по имени func FindFieldIdInInterfaceByName(project *structs.Project, interfaceID uuid.UUID, fldName string) uuid.UUID { if len(project.Interfaces) == 0 { return uuid.Nil } for i := range project.Interfaces { if project.Interfaces[i].ID == interfaceID { for j := range project.Interfaces[i].Fields { if project.Interfaces[i].Fields[j].Name == strings.ToLower(fldName) { return project.Interfaces[i].Fields[j].ID } } } } return uuid.Nil } // Найти имя поля в интерфейсе по ID func FindFieldNameInTableById(project *structs.Project, tblID uuid.UUID, fldId uuid.UUID) string { if len(project.DB.Tables) == 0 { return "" } for i := range project.DB.Tables { if project.DB.Tables[i].ID == tblID { for j := range project.DB.Tables[i].Fields { if project.DB.Tables[i].Fields[j].ID == fldId { return project.DB.Tables[i].Fields[j].Name } } } } return "" } // Найти имя поля в интерфейсе по ID func FindFieldNameInInterfaceById(project *structs.Project, interfaceID uuid.UUID, fldId uuid.UUID) string { if len(project.DB.Tables) == 0 { return "" } for i := range project.Interfaces { if project.Interfaces[i].ID == interfaceID { for j := range project.Interfaces[i].Fields { if project.Interfaces[i].Fields[j].ID == fldId { return project.Interfaces[i].Fields[j].Name } } } } return "" }