github.com/systematiccaos/gorm@v1.22.6/schema/model_test.go (about)

     1  package schema_test
     2  
     3  import (
     4  	"database/sql"
     5  	"time"
     6  
     7  	"github.com/systematiccaos/gorm"
     8  	"github.com/systematiccaos/gorm/utils/tests"
     9  )
    10  
    11  type User struct {
    12  	*gorm.Model
    13  	Name      *string
    14  	Age       *uint
    15  	Birthday  *time.Time
    16  	Account   *tests.Account
    17  	Pets      []*tests.Pet
    18  	Toys      []*tests.Toy `gorm:"polymorphic:Owner"`
    19  	CompanyID *int
    20  	Company   *tests.Company
    21  	ManagerID *uint
    22  	Manager   *User
    23  	Team      []*User           `gorm:"foreignkey:ManagerID"`
    24  	Languages []*tests.Language `gorm:"many2many:UserSpeak"`
    25  	Friends   []*User           `gorm:"many2many:user_friends"`
    26  	Active    *bool
    27  }
    28  
    29  type mytime time.Time
    30  type myint int
    31  type mybool = bool
    32  
    33  type AdvancedDataTypeUser struct {
    34  	ID           sql.NullInt64
    35  	Name         *sql.NullString
    36  	Birthday     sql.NullTime
    37  	RegisteredAt mytime
    38  	DeletedAt    *mytime
    39  	Active       mybool
    40  	Admin        *mybool
    41  }
    42  
    43  type BaseModel struct {
    44  	ID        uint
    45  	CreatedAt time.Time
    46  	CreatedBy *int
    47  	Created   *VersionUser `gorm:"foreignKey:CreatedBy"`
    48  	UpdatedAt time.Time
    49  	DeletedAt gorm.DeletedAt `gorm:"index"`
    50  }
    51  
    52  type VersionModel struct {
    53  	BaseModel
    54  	Version int
    55  }
    56  
    57  type VersionUser struct {
    58  	VersionModel
    59  	Name     string
    60  	Age      uint
    61  	Birthday *time.Time
    62  }