package model

import "time"

// CDREventSMSC CDR会话对象SMSC cdr_event_smsc
type CDREventSMSC struct {
	ID         string    `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
	NeType     string    `json:"neType" gorm:"column:ne_type"`
	NeName     string    `json:"neName" gorm:"column:ne_name"`
	RmUID      string    `json:"rmUID" gorm:"column:rm_uid"` // 可能没有
	Timestamp  int64     `json:"timestamp" gorm:"column:timestamp"`
	CDRJSONStr string    `json:"cdrJSON" gorm:"column:cdr_json"`
	CreatedAt  time.Time `json:"createdAt" gorm:"column:created_at;default:CURRENT_TIMESTAMP"`
}

// TableName 表名称
func (*CDREventSMSC) TableName() string {
	return "cdr_event_smsc"
}

// CDREventSMSCQuery CDR会话对象SMSC查询参数结构体
type CDREventSMSCQuery struct {
	NeType      string `json:"neType" form:"neType" binding:"required,oneof=SMSC"` // 网元类型, 暂时支持SMSC
	NeID        string `json:"neId" form:"neId" binding:"required"`
	RmUID       string `json:"rmUID" form:"rmUID"`
	RecordType  string `json:"recordType" form:"recordType"`   // 记录行为 MOSM MTSM
	CallerParty string `json:"callerParty" form:"callerParty"` // 主叫号码
	CalledParty string `json:"calledParty" form:"calledParty"` // 被叫号码
	StartTime   int64  `json:"startTime" form:"startTime"`
	EndTime     int64  `json:"endTime" form:"endTime"`
	SortField   string `json:"sortField" form:"sortField" binding:"omitempty,oneof=timestamp"` // 排序字段，填写结果字段
	SortOrder   string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"`  // 排序升降序，asc desc
	PageNum     int64  `json:"pageNum" form:"pageNum" binding:"required"`
	PageSize    int64  `json:"pageSize" form:"pageSize" binding:"required"`
}
