1
0
mirror of https://github.com/ManyakRus/crud_generator.git synced 2024-12-16 21:52:42 +02:00
crud_generator/internal/create_files/create_files_columns.go

426 lines
9.2 KiB
Go
Raw Normal View History

2023-11-08 16:37:35 +02:00
package create_files
import (
"github.com/ManyakRus/crud_generator/internal/types"
"github.com/ManyakRus/crud_generator/pkg/dbmeta"
"github.com/ManyakRus/starter/log"
"sort"
"strings"
2023-11-08 16:37:35 +02:00
)
2024-07-16 12:57:06 +02:00
// Has_Column_ExtID_ConnectionID_Int64 - возвращает true если есть поля ExtId и ConnectionID, если они int64
func Has_Column_ExtID_ConnectionID_Int64(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:57:06 +02:00
Column1, ok := Table1.MapColumns["ext_id"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
//
2024-07-16 12:57:06 +02:00
if Column1.TypeGo != "int64" {
return Otvet
}
//
Column1, ok = Table1.MapColumns["connection_id"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:57:06 +02:00
//
if Column1.TypeGo != "int64" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:57:06 +02:00
// Has_Column_IsDeleted_Bool - возвращает true если есть поле is_deleted
func Has_Column_IsDeleted_Bool(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:57:06 +02:00
Column1, ok := Table1.MapColumns["is_deleted"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:57:06 +02:00
//
if Column1.TypeGo != "bool" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
// Has_ColumnType_Time - возвращает true если есть колонка с типом время
func Has_ColumnType_Time(Table1 *types.Table) bool {
Otvet := false
//сортировка по названию колонок
keys := make([]string, 0, len(Table1.MapColumns))
for k := range Table1.MapColumns {
keys = append(keys, k)
}
sort.Strings(keys)
for _, key1 := range keys {
Column1, ok := Table1.MapColumns[key1]
if ok == false {
log.Panic("Table1.MapColumns[key1] = false")
}
2023-11-08 16:37:35 +02:00
SQLMapping1, ok := dbmeta.GetMappings()[Column1.Type]
if ok == false {
log.Panic("GetMappings() ", Column1.Type, " error: not found")
}
if SQLMapping1.GoType == "time.Time" {
Otvet = true
break
}
}
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_ID_Int64 - возвращает true если есть поле id типа int64
func Has_Column_ID_Int64(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["id"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "int64" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_ExtID_Int64 - возвращает true если есть поле ext_id типа int64
func Has_Column_ExtID_Int64(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["ext_id"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "int64" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_CreatedAt_Time - возвращает true если есть поле created_at
func Has_Column_CreatedAt_Time(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["created_at"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "time.Time" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_ModifiedAt_Time - возвращает true если есть поле modified_at
func Has_Column_ModifiedAt_Time(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["modified_at"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "time.Time" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_DeletedAt_Time - возвращает true если есть поле deleted_at
func Has_Column_DeletedAt_Time(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["deleted_at"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "time.Time" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_TableNameID_Int64 - возвращает true если есть поле table_name_id
func Has_Column_TableNameID_Int64(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["table_name_id"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "int64" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_TableRowID_Int64 - возвращает true если есть поле table_row_id
func Has_Column_TableRowID_Int64(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["table_row_id"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "int64" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_IsGroup_Bool - возвращает true если есть поле is_group
func Has_Column_IsGroup_Bool(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["is_group"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "bool" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_ParentID_Int64 - возвращает true если есть поле parent_id
func Has_Column_ParentID_Int64(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["parent_id"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "int64" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_Name_String - возвращает true если есть поле name
func Has_Column_Name_String(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["name"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "string" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
2024-07-16 12:16:13 +02:00
// Has_Column_Description_String - возвращает true если есть поле description
func Has_Column_Description_String(Table1 *types.Table) bool {
2023-11-08 16:37:35 +02:00
Otvet := false
//
2024-07-16 12:16:13 +02:00
Column1, ok := Table1.MapColumns["description"]
2023-11-08 16:37:35 +02:00
if ok == false {
return Otvet
}
2024-07-16 12:16:13 +02:00
//
if Column1.TypeGo != "string" {
return Otvet
}
2023-11-08 16:37:35 +02:00
Otvet = true
return Otvet
}
// ----
// Has_Columns_CommonStruct - возвращает true если есть все общие структуры
func Has_Columns_CommonStruct(Table1 *types.Table) bool {
Otvet := false
2024-07-16 12:57:06 +02:00
Otvet = Has_Column_ExtID_Int64(Table1) && Has_Column_CreatedAt_Time(Table1) && Has_Column_ModifiedAt_Time(Table1) && Has_Column_DeletedAt_Time(Table1) && Has_Column_IsDeleted_Bool(Table1) && Has_Column_ID_Int64(Table1)
2023-11-08 16:37:35 +02:00
return Otvet
}
// Has_Columns_NameStruct - возвращает true если есть колонки name + description
func Has_Columns_NameStruct(Table1 *types.Table) bool {
Otvet := false
2024-07-16 12:16:13 +02:00
Otvet = Has_Column_Name_String(Table1) && Has_Column_Description_String(Table1)
2023-11-08 16:37:35 +02:00
return Otvet
}
// Has_Columns_Groups - возвращает true если есть колонки is_group + parent_id
func Has_Columns_Groups(Table1 *types.Table) bool {
Otvet := false
2024-07-16 12:16:13 +02:00
Otvet = Has_Column_IsGroup_Bool(Table1) && Has_Column_ParentID_Int64(Table1)
2023-11-08 16:37:35 +02:00
return Otvet
}
// Has_Columns_ExtLink - возвращает true если есть колонки table_name_id + table_row_id
func Has_Columns_ExtLink(Table1 *types.Table) bool {
Otvet := false
2024-07-16 12:16:13 +02:00
Otvet = Has_Column_TableNameID_Int64(Table1) && Has_Column_TableRowID_Int64(Table1)
2023-11-08 16:37:35 +02:00
return Otvet
}
// ----
// Is_Column_CommonStruct - возвращает true если это колонка ext_id, created_at, modified_at, deleted_at, id
func Is_Column_CommonStruct(Column1 *types.Column) bool {
Otvet := false
ColumnName := Column1.Name
switch ColumnName {
case "ext_id", "created_at", "modified_at", "deleted_at", "is_deleted", "id":
Otvet = true
}
return Otvet
}
// Is_Column_NameStruct - возвращает true если это колонка name или description
func Is_Column_NameStruct(Column1 *types.Column) bool {
Otvet := false
ColumnName := Column1.Name
switch ColumnName {
case "name", "description":
Otvet = true
}
return Otvet
}
// Is_Column_GroupsStruct - возвращает true если это колонка is_group, parent_id
func Is_Column_GroupsStruct(Column1 *types.Column) bool {
Otvet := false
ColumnName := Column1.Name
switch ColumnName {
case "is_group", "parent_id":
Otvet = true
}
return Otvet
}
// Is_Column_ExtLinksStruct - возвращает true если это колонка table_name_id, table_row_id
func Is_Column_ExtLinksStruct(Column1 *types.Column) bool {
Otvet := false
ColumnName := Column1.Name
switch ColumnName {
case "table_name_id", "table_row_id":
Otvet = true
}
return Otvet
}
// Is_Common_Сolumn - возвращает true если это общая колонка: table_name_id, table_row_id, is_group, parent_id, name или description, ext_id, created_at, modified_at, deleted_at, id
func Is_Common_Сolumn(Column1 *types.Column) bool {
Otvet := false
Otvet = Is_Column_CommonStruct(Column1) || Is_Column_NameStruct(Column1) || Is_Column_GroupsStruct(Column1) || Is_Column_ExtLinksStruct(Column1)
return Otvet
}
// Is_NotNeedUpdate_Сolumn - возвращает true если не нужна функция UpdateColumnNAme(), например если это общая колонка: table_name_id, table_row_id, is_group, parent_id, ext_id, created_at, modified_at, deleted_at, id
func Is_NotNeedUpdate_Сolumn(Column1 *types.Column) bool {
Otvet := false
Otvet = Is_Column_CommonStruct(Column1) || Is_Column_GroupsStruct(Column1) || Is_Column_ExtLinksStruct(Column1)
2024-06-27 13:40:15 +02:00
if Is_Need_Сolumn(Column1) == false {
Otvet = true
}
return Otvet
}
2024-06-27 13:40:15 +02:00
// Is_Need_Сolumn - возвращает true если эта колонка не нужна
func Is_Need_Сolumn(Column1 *types.Column) bool {
Otvet := true
if strings.HasPrefix(Column1.Name, "DELETED_") == true {
Otvet = false
}
return Otvet
}