collection_type.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package api
  2. // Collection represents a collection
  3. type Collection struct {
  4. ID int64 `json:"id"`
  5. Owner CollectionUser `json:"owner"`
  6. EncryptedKey string `json:"encryptedKey" binding:"required"`
  7. KeyDecryptionNonce string `json:"keyDecryptionNonce,omitempty" binding:"required"`
  8. Name string `json:"name"`
  9. EncryptedName string `json:"encryptedName"`
  10. NameDecryptionNonce string `json:"nameDecryptionNonce"`
  11. Type string `json:"type" binding:"required"`
  12. Sharees []CollectionUser `json:"sharees"`
  13. UpdationTime int64 `json:"updationTime"`
  14. IsDeleted bool `json:"isDeleted,omitempty"`
  15. MagicMetadata *MagicMetadata `json:"magicMetadata,omitempty"`
  16. PublicMagicMetadata *MagicMetadata `json:"pubMagicMetadata,omitempty"`
  17. SharedMagicMetadata *MagicMetadata `json:"sharedMagicMetadata,omitempty"`
  18. }
  19. // CollectionUser represents the owner of a collection
  20. type CollectionUser struct {
  21. ID int64 `json:"id"`
  22. Email string `json:"email"`
  23. // Deprecated
  24. Name string `json:"name"`
  25. Role string `json:"role"`
  26. }
  27. type MagicMetadata struct {
  28. Version int `json:"version,omitempty" binding:"required"`
  29. Count int `json:"count,omitempty" binding:"required"`
  30. Data string `json:"data,omitempty" binding:"required"`
  31. Header string `json:"header,omitempty" binding:"required"`
  32. }
  33. // CollectionFileItem represents a file in an AddFilesRequest and MoveFilesRequest
  34. type CollectionFileItem struct {
  35. ID int64 `json:"id" binding:"required"`
  36. EncryptedKey string `json:"encryptedKey" binding:"required"`
  37. KeyDecryptionNonce string `json:"keyDecryptionNonce" binding:"required"`
  38. }