model.go 985 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package model
  2. import (
  3. "encoding/json"
  4. "time"
  5. )
  6. // Stat all data statistics
  7. type Stat struct {
  8. Counts int `json:"counts"`
  9. }
  10. // Message canal binlog message.
  11. type Message struct {
  12. Action string `json:"action"`
  13. Table string `json:"table"`
  14. New json.RawMessage `json:"new"`
  15. Old json.RawMessage `json:"old"`
  16. }
  17. // DatabusPool poll from db.
  18. var DatabusPool = []string{"dm", "dmreport_new"}
  19. // JSONTime .
  20. type JSONTime time.Time
  21. // UnmarshalJSON .
  22. func (p *JSONTime) UnmarshalJSON(data []byte) error {
  23. local, err := time.ParseInLocation(`"2006-01-02 15:04:05"`, string(data), time.Local)
  24. *p = JSONTime(local)
  25. return err
  26. }
  27. // MarshalJSON .
  28. func (p JSONTime) MarshalJSON() ([]byte, error) {
  29. data := make([]byte, 0)
  30. data = append(data, '"')
  31. data = time.Time(p).AppendFormat(data, "2006-01-02 15:04:05")
  32. data = append(data, '"')
  33. return data, nil
  34. }
  35. // String .
  36. func (p JSONTime) String() string {
  37. return time.Time(p).Format("2006-01-02 15:04:05")
  38. }