|  |  |  | package data
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import (
 | 
					
						
							|  |  |  |   "reflect"
 | 
					
						
							|  |  |  |   "github.com/guregu/null/v6"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type Login struct {
 | 
					
						
							|  |  |  |   Username string `db:"username" validate:"required,max=30"`
 | 
					
						
							|  |  |  |   Password string `db:"password" validate:"required,max=128"`
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type User struct {
 | 
					
						
							|  |  |  |   Id int `db:"id" validate:"numeric"`
 | 
					
						
							|  |  |  |   Username string `db:"username" validate:"required,max=30"`
 | 
					
						
							|  |  |  |   Email string `db:"email" validate:"required,email,max=128"`
 | 
					
						
							|  |  |  |   Password string `db:"password" validate:"required,min=8,max=64"`
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * Example of using the null library to do optional fields.
 | 
					
						
							|  |  |  |  */
 | 
					
						
							|  |  |  | type NullExample struct {
 | 
					
						
							|  |  |  |   Id int `db:"id" validate:"numeric"`
 | 
					
						
							|  |  |  |   HasMaybe null.Int `db:"replying_to" validate:"omitempty,numeric"`
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func Models() map[string]reflect.Type {
 | 
					
						
							|  |  |  |   return map[string]reflect.Type{
 | 
					
						
							|  |  |  |     "user": reflect.TypeFor[User](),
 | 
					
						
							|  |  |  |     "null_example": reflect.TypeFor[NullExample](),
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | }
 |