package model

// UDMSubUser UDM签约用户 udm_sub
type UDMSubUser struct {
	ID         string `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
	CreateTime int64  `json:"createTime" gorm:"column:create_time"`         // 创建时间
	NeId       string `json:"neId" gorm:"column:ne_id"`                     // UDM网元标识
	IMSI       string `json:"imsi" gorm:"column:imsi"`                      // SIM卡/USIM卡ID
	MSISDN     string `json:"msisdn" gorm:"column:msisdn"`                  // 用户电话号码

	AmDat                     string `json:"amDat" gorm:"column:am_dat"`              // AmData
	UeAmbrTpl                 string `json:"ambr" gorm:"column:ambr"`                 // AmData SubUeAMBRTemp
	NssaiTpl                  string `json:"nssai" gorm:"column:nssai"`               // AmData SubSNSSAITemp
	RatRestrictions           string `json:"rat" gorm:"column:rat"`                   // AmData RAT 0x00:VIRTUAL 0x01:WLAN 0x02:EUTRA 0x03:NR
	AreaForbiddenTpl          string `json:"arfb" gorm:"column:arfb"`                 // AmData AreaForbidden
	ServiceAreaRestrictionTpl string `json:"sar" gorm:"column:sar"`                   // AmData serviceAreaRestrictTemp
	CnTypeRestrictions        string `json:"cnType" gorm:"column:cn_type"`            // AmData CNType 0x00:EPC和5GC 0x01:5GC 0x02:EPC 0x03:EPC+5GC
	RfspIndex                 string `json:"rfspIndex" gorm:"column:rfsp_index"`      // AmData RfspIndex
	SubsRegTime               string `json:"regTimer" gorm:"column:reg_timer"`        // AmData RegTimer
	UeUsageType               string `json:"ueUsageType" gorm:"column:ue_usage_type"` // AmData UEUsageType
	ActiveTime                string `json:"activeTime" gorm:"column:active_time"`    // AmData ActiveTime
	MicoAllowed               string `json:"mico" gorm:"column:mico"`                 // AmData MICO
	OdbPs                     string `json:"odbPs" gorm:"column:odb_ps"`              // AmData ODB_PS 0-all,1-hplmn,2-vplmn
	GroupId                   string `json:"groupId" gorm:"column:group_id"`          // AmData GroupId

	EpsDat     string `json:"epsDat" gorm:"column:eps_dat"`         // EpsDat
	EpsFlag    string `json:"epsFlag" gorm:"column:eps_flag"`       // EpsDat epsFlag
	EpsOdb     string `json:"epsOdb" gorm:"column:eps_odb"`         // EpsDat epsOdb
	HplmnOdb   string `json:"hplmnOdb" gorm:"column:hplmn_odb"`     // EpsDat hplmnOdb
	Ard        string `json:"ard" gorm:"column:ard"`                // EpsDat Ard
	Epstpl     string `json:"epstpl" gorm:"column:epstpl"`          // EpsDat Epstpl
	ContextId  string `json:"contextId" gorm:"column:context_id"`   // EpsDat ContextId
	ApnNum     string `json:"apnNum" gorm:"column:apn_mum"`         // EpsDat apnNum
	ApnContext string `json:"apnContext" gorm:"column:apn_context"` // EpsDat apnContext
	StaticIp   string `json:"staticIp" gorm:"column:static_ip"`     // EpsDat staticIp 指给4G UE分配的静态IP，没有可不带此字段名

	SmData string `json:"smData" gorm:"column:sm_data"` // smData
	SmfSel string `json:"smfSel" gorm:"column:smf_sel"` // smfSel
	Cag    string `json:"cag" gorm:"column:cag"`        // CAG

	// ====== 非数据库字段属性 ======

	Remark string `json:"remark,omitempty" gorm:"-"` // 备注
}

// TableName 表名称
func (*UDMSubUser) TableName() string {
	return "udm_sub"
}
