publish_registration.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package biz
  2. import (
  3. "context"
  4. "w303a/server/pkg/zaplog"
  5. )
  6. // 设备系统枚举
  7. type DeviceSystem int32
  8. const (
  9. DeviceSystem_ANDROID DeviceSystem = 0
  10. DeviceSystem_IOS DeviceSystem = 1
  11. )
  12. // 推送人使用的平台枚举
  13. type RegistrantPlatformType int32
  14. const (
  15. // 其他平台(极光推送)
  16. RegistrantPlatformType_OTHER RegistrantPlatformType = 0
  17. // 华为
  18. RegistrantPlatformType_HUAWEI RegistrantPlatformType = 1
  19. // 小米
  20. RegistrantPlatformType_XIAOMI RegistrantPlatformType = 2
  21. // OPPO
  22. RegistrantPlatformType_OPPO RegistrantPlatformType = 3
  23. // VIVO
  24. RegistrantPlatformType_VIVO RegistrantPlatformType = 4
  25. // 苹果 APNS
  26. RegistrantPlatformType_APNS RegistrantPlatformType = 5
  27. )
  28. // PublishRegistration is a publish registration entity.
  29. type PublishRegistration struct {
  30. Entity[int64]
  31. UserID ID[UUID]
  32. RegID string
  33. RegistrantPlatformType RegistrantPlatformType
  34. DeviceSystem DeviceSystem
  35. DeviceSystemVersion string
  36. DeviceManufacturer string
  37. DeviceModel string
  38. }
  39. // PublishRegistration is a publish registration repository.
  40. type PublishRegistrationRepo interface {
  41. // Save saves the registration.
  42. Save(ctx context.Context, publishRegistration *PublishRegistration) error
  43. }
  44. // RegistrationUsecase is a registration usecase.
  45. type PublishRegistrationUsecase struct {
  46. log *zaplog.Logger
  47. publishRegistrationRepo PublishRegistrationRepo
  48. }
  49. // NewPublishRegistrationUsecase returns a new PublishRegistrationUsecase.
  50. func NewPublishRegistrationUsecase(
  51. log *zaplog.Logger,
  52. publishRegistrationRepo PublishRegistrationRepo,
  53. ) *PublishRegistrationUsecase {
  54. return &PublishRegistrationUsecase{
  55. log: log,
  56. publishRegistrationRepo: publishRegistrationRepo,
  57. }
  58. }
  59. // Subscribe subscribes the registration.
  60. func (uc *PublishRegistrationUsecase) Subscribe(ctx context.Context, publishRegistration *PublishRegistration) error {
  61. //
  62. return uc.publishRegistrationRepo.Save(ctx, publishRegistration)
  63. }
  64. // Unsubscribe unsubscribes the registration.
  65. func (uc *PublishRegistrationUsecase) Unsubscribe(ctx context.Context, id ID[int64]) error {
  66. return nil
  67. }