You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

user.go 3.5 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. // Copyright © 2023 OpenIM open source community. All rights reserved.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package requestparams
  15. // CreateUserParams register params for user.
  16. type CreateUserParams struct {
  17. Email string `json:"email" binding:"required"`
  18. Nickname string `json:"nickname" binding:"required"`
  19. Avatar *string `json:"avatar" binding:"required"` // Avatar is optional.
  20. Password string `json:"password" binding:"required"`
  21. }
  22. // RegisterAdminParams register params for admin.
  23. type RegisterAdminParams struct {
  24. UserInfo CreateUserParams `json:"user_info" binding:"required"`
  25. CommunityInfo CommunityParams `json:"community_info" binding:"required"`
  26. Code string `json:"code" binding:"required"`
  27. }
  28. // RegisterStaffParams register params for staff.
  29. type RegisterStaffParams struct {
  30. UserInfo CreateUserParams `json:"user_info" binding:"required"`
  31. // CommunityId uint `json:"community_id" binding:"required"` // Get community id from token.
  32. }
  33. // LoginParamsWithAccount login params.
  34. type LoginParamsWithAccount struct {
  35. Email string `json:"email" binding:"required"`
  36. Password string `json:"password" binding:"required"`
  37. }
  38. // GetUserInfoParams user info params.
  39. type GetUserInfoParams struct {
  40. UUID string `json:"uuid" binding:"required"`
  41. }
  42. // UpdateUserInfoParams update user info params.
  43. type UpdateUserInfoParams struct {
  44. // uuid is used for admin to update user info.
  45. UUID *string `json:"uuid"`
  46. // Email can not be updated is this period.
  47. Email *string `json:"email"` // Email is optional.
  48. Nickname *string `json:"nickname"` // Nickname is optional.
  49. Description *string `json:"description"` // Description is optional.
  50. Avatar *string `json:"avatar"` // Avatar is optional.
  51. // Need to check if the user is admin.
  52. IsEnable *bool `json:"is_enable"` // IsEnable is optional.
  53. IsAdmin *bool `json:"is_admin"` // IsAdmin is optional.
  54. }
  55. // UpdateUserPasswordParams update user password params.
  56. type UpdateUserPasswordParams struct {
  57. Password string `json:"password" binding:"required"`
  58. RepeatPassword string `json:"repeat_password" binding:"required"`
  59. }
  60. // DeleteUserParams delete user params.
  61. type DeleteUserParams struct {
  62. UUID string `json:"uuid" binding:"required"`
  63. }
  64. // UsersStatisticsType user statistics type.
  65. type UsersStatisticsType string
  66. // Used for UsersStatisticsType.
  67. const (
  68. USER_STATISTICS_ONLINE_TIME UsersStatisticsType = "online_time"
  69. USER_STATISTICS_MESSAGE_COUNT UsersStatisticsType = "message_count"
  70. USER_STATISTICS_MESSAGE_LENGTH UsersStatisticsType = "message_length"
  71. )
  72. // GetUsersStatisticsParams get users statistics params.
  73. type GetUsersStatisticsParams struct {
  74. // online_time, message_count, message_length
  75. Type string `json:"type" binding:"required"`
  76. StartTimestamp int64 `json:"start_timestamp" binding:"required"`
  77. EndTimestamp int64 `json:"end_timestamp" binding:"required"`
  78. }