|
|
|
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" json:"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" json:"id" validate:"numeric"`
|
|
|
|
HasMaybe null.Int `db:"replying_to" json:"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](),
|
|
|
|
}
|
|
|
|
}
|