code: func CreateMulticastQueueItem(db sqlx.Queryer, qi *MulticastQueueItem) error {
  	if err := qi.Validate(); err != nil {
  		return err
  	}
  
  	qi.CreatedAt = time.Now()
  
  	err := sqlx.Get(db, &qi.ID, `
  		insert into multicast_queue (
  			created_at,
  			schedule_at,
  			emit_at_time_since_gps_epoch,
  			multicast_group_id,
  			gateway_id,
  			f_cnt,
  			f_port,
  			frm_payload
  		) values ($1, $2, $3, $4, $5, $6, $7, $8)
  		returning
  			id
  		`,
  		qi.CreatedAt,
  		qi.ScheduleAt,
  		qi.EmitAtTimeSinceGPSEpoch,
  		qi.MulticastGroupID,
  		qi.GatewayID,
  		qi.FCnt,
  		qi.FPort,
  		qi.FRMPayload,
  	)
  	if err != nil {
  		return handlePSQLError(err, "insert error")
  	}
  
  	log.WithFields(log.Fields{
  		"id":                 qi.ID,
  		"f_cnt":              qi.FCnt,
  		"gateway_id":         qi.GatewayID,
  		"multicast_group_id": qi.MulticastGroupID,
  	}).Info("multicast queue-item created")
  
  	return nil
  }
docs: // CreateMulticastQueueItem adds the given item to the queue.