package gen var ( commonMysqlDataTypeMap = map[string]string{ "tinyint": "int64", "smallint": "int64", "mediumint": "int64", "int": "int64", "integer": "int64", "bigint": "int64", "float": "float64", "double": "float64", "decimal": "float64", "date": "time.Time", "time": "string", "year": "int64", "datetime": "time.Time", "timestamp": "time.Time", "char": "string", "varchar": "string", "tinyblob": "string", "tinytext": "string", "blob": "string", "text": "string", "mediumblob": "string", "mediumtext": "string", "longblob": "string", "longtext": "string", } ) const ( QueryNone QueryType = 0 QueryOne QueryType = 1 // 仅支持单个字段为查询条件 QueryAll QueryType = 2 // 可支持多个字段为查询条件,且关系均为and QueryLimit QueryType = 3 // 可支持多个字段为查询条件,且关系均为and ) type ( QueryType int Case struct { SnakeCase string LowerCamelCase string UpperCamelCase string } InnerWithField struct { Case DataType string } InnerTable struct { Case ContainsCache bool CreateNotFound bool PrimaryField *InnerField Fields []*InnerField CacheKey map[string]Key // key-数据库字段 } InnerField struct { IsPrimaryKey bool InnerWithField DataBaseType string // 数据库中字段类型 Tag string // 标签,格式:`db:"xxx"` Comment string // 注释,以"// 开头" Cache bool // 是否缓存模式 QueryType QueryType WithFields []InnerWithField Sort []InnerSort } InnerSort struct { Field Case Asc bool } OuterTable struct { Table string `json:"table"` CreateNotFound bool `json:"createNotFound,optional"` Fields []*OuterFiled `json:"fields"` } OuterWithField struct { Name string `json:"name"` DataBaseType string `json:"dataBaseType"` } OuterSort struct { Field string `json:"fields"` Asc bool `json:"asc,optional"` } OuterFiled struct { IsPrimaryKey bool `json:"isPrimaryKey,optional"` Name string `json:"name"` DataBaseType string `json:"dataBaseType"` Comment string `json:"comment"` Cache bool `json:"cache,optional"` // if IsPrimaryKey==false下面字段有效 QueryType QueryType `json:"queryType"` // 查找类型 WithFields []OuterWithField `json:"withFields,optional"` // 其他字段联合组成条件的字段列表 OuterSort []OuterSort `json:"sort,optional"` } )