// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.

package model

import (
	"time"

	"gorm.io/gorm"
	"common/utils"
)

const TableNameUser = "users"

// User mapped from table <users>
type User struct {
	ID        uint64         `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"`
	Sn        int64          `gorm:"column:sn;not null;comment:业务唯一编号" json:"sn"` // 业务唯一编号
	Name      string         `gorm:"column:name;not null" json:"name"`
	Phone     string         `gorm:"column:phone;not null" json:"phone"`
	CreatedAt time.Time      `gorm:"column:created_at;not null" json:"created_at"`
	UpdatedAt time.Time      `gorm:"column:updated_at;not null" json:"updated_at"`
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at" json:"deleted_at"`
}

// TableName User's table name
func (*User) TableName() string {
	return TableNameUser
}

// auto sn
func (m *User) BeforeCreate(_ *gorm.DB) error {
	if m.Sn == 0 {
		m.Sn = utils.SnowflakeInstance().Generate().Int64()
	}
	return nil
}
