package model

import (
	"fmt"
)

// 类型迁移
func migration() {

	err := DB.AutoMigrate(
		&ChatMedia{},
		&ChatRecord{},
		&ChatUser{},
		&ChatAutoReplyRuler{},
	)

	if err != nil {
		fmt.Println("register table fail")
		panic(1)
	}

	//自动迁移模式
	AddTable(&LoginLog{})
	AddTable(&RealName{})
	AddTable(&User{})
	AddTable(&RefreshToken{})
	AddTable(&SubmitInfo{})

	AddColumn(&User{}, "nickname")
	AddColumn(&User{}, "language")
	AddColumn(&User{}, "subscriber_number")
	AddColumn(&User{}, "abroad_tel")
	AddColumn(&User{}, "abroad_tel_area_code")
	AddColumn(&RealName{}, "id_number")
	AddColumn(&RealName{}, "date_of_birth")
}

// 数据迁移
func AddColumn(dst interface{}, column string) {
	if DB.Migrator().HasColumn(dst, column) == false {
		if err := DB.Migrator().AddColumn(dst, column); err != nil {
			fmt.Println(err)
		}
	}
}

func AddTable(dst interface{}) {
	if DB.Migrator().HasTable(dst) == false {
		if err := DB.Migrator().CreateTable(dst); err != nil {
			fmt.Println(err)
			return
		}
	}
	return
}
