tags.go 940 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package models
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. type TagID string
  7. func (id TagID) String() string {
  8. return string(id)
  9. }
  10. func (t Tag) GetIDFromName() string {
  11. return fmt.Sprintf("%s.%s", t.Network, t.TagName)
  12. }
  13. type Tag struct {
  14. ID TagID `json:"id"`
  15. TagName string `json:"tag_name"`
  16. Network NetworkID `json:"network"`
  17. CreatedBy string `json:"created_by"`
  18. CreatedAt time.Time `json:"created_at"`
  19. }
  20. type CreateTagReq struct {
  21. TagName string `json:"tag_name"`
  22. Network NetworkID `json:"network"`
  23. TaggedNodes []string `json:"tagged_nodes"`
  24. }
  25. type TagListResp struct {
  26. Tag
  27. UsedByCnt int `json:"used_by_count"`
  28. TaggedNodes []Node `json:"tagged_nodes"`
  29. }
  30. type TagListRespNodes struct {
  31. Tag
  32. UsedByCnt int `json:"used_by_count"`
  33. TaggedNodes []Node `json:"tagged_nodes"`
  34. }
  35. type UpdateTagReq struct {
  36. Tag
  37. NewName string `json:"new_name"`
  38. TaggedNodes []string `json:"tagged_nodes"`
  39. }