addressBook.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package model
  2. import "github.com/lejianwen/rustdesk-api/v2/model/custom_types"
  3. // final String id;
  4. // String hash; // personal ab hash password
  5. // String password; // shared ab password
  6. // String username; // pc username
  7. // String hostname;
  8. // String platform;
  9. // String alias;
  10. // List<dynamic> tags;
  11. // bool forceAlwaysRelay = false;
  12. // String rdpPort;
  13. // String rdpUsername;
  14. // bool online = false;
  15. // String loginName; //login username
  16. // bool? sameServer;
  17. // AddressBook 有些字段是Personal才会上传的
  18. type AddressBook struct {
  19. RowId uint `gorm:"primaryKey" json:"row_id"`
  20. Id string `json:"id" gorm:"default:0;not null;index"`
  21. Username string `json:"username" gorm:"default:'';not null;"`
  22. Password string `json:"password" gorm:"default:'';not null;"`
  23. Hostname string `json:"hostname" gorm:"default:'';not null;"`
  24. Alias string `json:"alias" gorm:"default:'';not null;"`
  25. Platform string `json:"platform" gorm:"default:'';not null;"`
  26. Tags custom_types.AutoJson `json:"tags" gorm:"not null;" swaggertype:"array,string"`
  27. Hash string `json:"hash" gorm:"default:'';not null;"`
  28. UserId uint `json:"user_id" gorm:"default:0;not null;index"`
  29. ForceAlwaysRelay bool `json:"forceAlwaysRelay" gorm:"default:0;not null;"`
  30. RdpPort string `json:"rdpPort" gorm:"default:'';not null;"`
  31. RdpUsername string `json:"rdpUsername" gorm:"default:'';not null;"`
  32. Online bool `json:"online" gorm:"default:0;not null;"`
  33. LoginName string `json:"loginName" gorm:"default:'';not null;"`
  34. SameServer bool `json:"sameServer" gorm:"default:0;not null;"`
  35. CollectionId uint `json:"collection_id" gorm:"default:0;not null;index"`
  36. Collection *AddressBookCollection `json:"collection,omitempty"`
  37. TimeModel
  38. }
  39. type AddressBookList struct {
  40. AddressBooks []*AddressBook `json:"list"`
  41. Pagination
  42. }
  43. type AddressBookCollection struct {
  44. IdModel
  45. UserId uint `json:"user_id" gorm:"default:0;not null;index"`
  46. Name string `json:"name" gorm:"default:'';not null;" validate:"required"`
  47. TimeModel
  48. }
  49. type AddressBookCollectionList struct {
  50. AddressBookCollection []*AddressBookCollection `json:"list"`
  51. Pagination
  52. }
  53. type AddressBookCollectionRule struct {
  54. IdModel
  55. UserId uint `json:"user_id" gorm:"default:0;not null;"`
  56. CollectionId uint `json:"collection_id" gorm:"default:0;not null;index" validate:"required"`
  57. Rule int `json:"rule" gorm:"default:0;not null;" validate:"required,gte=1,lte=3"` // 0: 无 1: 读 2: 读写 3: 完全控制
  58. Type int `json:"type" gorm:"default:1;not null;" validate:"required,gte=1,lte=2"` // 1: 个人 2: 群组
  59. ToId uint `json:"to_id" gorm:"default:0;not null;" validate:"required,gt=0"`
  60. TimeModel
  61. }
  62. type AddressBookCollectionRuleList struct {
  63. AddressBookCollectionRule []*AddressBookCollectionRule `json:"list"`
  64. Pagination
  65. }
  66. const (
  67. ShareAddressBookRuleTypePersonal = 1
  68. ShareAddressBookRuleTypeGroup = 2
  69. )
  70. const (
  71. ShareAddressBookRuleRuleRead = 1
  72. ShareAddressBookRuleRuleReadWrite = 2
  73. ShareAddressBookRuleRuleFullControl = 3
  74. )