package models import "time" type BaseEntity struct { Id string `gorm:"primary_key" json:"id" example:"XeW0HmoBevddG23Ild5o"` CreateTime string `json:"createTime,omitempty" example:""` UpdateTime string `json:"updateTime,omitempty" example:""` CreateBy string `json:"createBy,omitempty" example:""` IsDelete int `json:"isDelete" example:"0 未删除 1已删除"` Enable int `json:"enable" example:" 1生效 0未生效"` } func (dp *BaseEntity) PriInsert() { dp.CreateTime = time.Now().Format("2006-01-02 15:04:05") dp.CreateBy = "admin" dp.IsDelete = 0 } func (dp *BaseEntity) PriUpdate() { dp.UpdateTime = time.Now().Format("2006-01-02 15:04:05") } type Area struct { Id uint `gorm:"primary_key"` /*auto_increment:false*/ Parentid int Parentids string Name string Createby int `gorm:"default:10000"` Createtime time.Time `gorm:"default:'2010-08-28T13:40:02.200'"` Reserved string `gorm:"default:'galeone'"` } type Camera struct { Id string `gorm:"primary_key;type:varchar(100);unique" json:"id" binding:"required" example:"cid0"` Name string `json:"name" bind:"required" example:"Testname"` Type int `json:"type" ` Areaid uint `json:"areaid" example:"1"` Addr string `json:"addr"` Longitude float64 `json:"longitude"` Latitude float64 `json:"latitude"` Rtsp string `json:"rtsp"` Ip string `json:"ip"` Port int `json:"port"` Username string `json:"username"` Password string `json:"password"` Brand string `json:"brand"` Reserved string `json:"reserved"` CamTask []CameraTask `gorm:"foreignkey:cameraid"` } type CameraTreeNode struct { Id string `json:"id"` Areaid uint `json:"areaid"` Name string `json:"name"` } type CameraArea struct { Cameraid string `json:"cameraId"` Areaid int `json:"areaId"` } type Sdk struct { BaseEntity SdkName string `json:"sdkName" example:"faceDetect"` //算法名称 Args string `json:"args,omitempty" example:"[{name:timeStart,type:date,length:50,must:false}]"` //算法参数 Icon string `json:"icon,omitempty" example:"camera"` //算法图标 Url string `json:"url,omitempty" example:"http://ip:port/govideo/sdk/1"` //算法下载地址 } //算法参数定义 type SdkArg struct { Alias string `json:"alias"` //参数的别名 Name string `json:"name"` //参数名称 Type string `json:"type"` //参数类型(整数,字符串或数组) Must bool `json:"must"` //是否必填 Range string `json:"range"` //值的范围,eg:0,100表示从0到100 Sort int `json:"sort"` //参数顺序 } type Task struct { Taskid string `gorm:"primary_key" json:"taskid"` Taskname string `gorm:"type:varchar(100);" json:"taskname" example:"任务一"` CreateAt time.Time Createby string UpdateAt time.Time Enable bool `gorm:"default:0"` IsAlarm bool `gorm:"default:0"` DelFlag bool `gorm:"default:0"` Isfull bool `gorm:"default:0"` } type CameraTask struct { Cameraid string `gorm:"type:varchar(100) REFERENCES cameras(id) ON DELETE CASCADE" json:"cameraid" binding:"required" example:"cid1"` //摄像机id 来自于摄像机表 Taskid string `gorm:"type:varchar(100) REFERENCES tasks(taskid) ON DELETE CASCADE" json:"taskid" binding:"required" example:"5b0902ae-b1bd-43c0-816d-0a87f1f859d2"` //任务id 来自于任务表 Sdkid string `gorm:"type:varchar(100) REFERENCES sdks(uuid) ON DELETE CASCADE" json:"sdkId"` //算法id 来自与算法表 DelFlag bool `gorm:"default:0"` UpdateFlag bool `gorm:"default:0"` // 算法名称 SdkArgs string `json:"sdkArgs"` // 算法参数 Enable int `gorm:"default:1"` //默认启用 } type TaskSdk struct { Taskid string `gorm:"primary_key"` //uuid 生成 Sdkid string `gorm:"primary_key;type:varchar(100) REFERENCES sdks(uuid) ON DELETE CASCADE"` //来自于算法表 Sort int `json:"sort"` //排序 } //时间参数,从周一到周日某天的开始时间和结束时间,controller用 type TimeCtl struct { MondayStart string `json:"mondayStart"` MondayEnd string `json:"mondayEnd"` TuesdayStart string `json:"tuesdayStart"` TuesdayEnd string `json:"tuesdayEnd"` WednesdayStart string `json:"wednesdayStart"` WednesdayEnd string `json:"wednesdayEnd"` ThursdayStart string `json:"thursdayStart"` ThursdayEnd string `json:"thursdayEnd"` FridayStart string `json:"fridayStart"` FridayEnd string `json:"fridayEnd"` SaturdayStart string `json:"saturdayStart"` SaturdayEnd string `json:"saturdayEnd"` SundayStart string `json:"sundayStart"` SundayEnd string `json:"sundayEnd"` } //画框的结构体 type Frame struct { Area [][]Point `json:"area"` Arrow []Point `json:"arrow"` } //多边形结构体 type Point struct { X string `json:"x"` Y string `json:"y"` }