leadguru-jobs 0.474.0__tar.gz → 0.475.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/PKG-INFO +1 -1
  2. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
  3. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_data/enums.py +5 -0
  4. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_data/model.py +22 -2
  5. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_data/mongo_repository.py +16 -1
  6. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/MANIFEST.in +0 -0
  7. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/README.md +0 -0
  8. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/leadguru_jobs.egg-info/SOURCES.txt +0 -0
  9. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
  10. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
  11. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/leadguru_jobs.egg-info/requires.txt +0 -0
  12. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
  13. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/__init__.py +0 -0
  14. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/assets/images/arrow.png +0 -0
  15. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/assets/images/firework.png +0 -0
  16. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/assets/images/lock.png +0 -0
  17. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/assets/images/logo.png +0 -0
  18. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/assets/images/mail.png +0 -0
  19. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/basejobs.py +0 -0
  20. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/env.py +0 -0
  21. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/__init__.py +0 -0
  22. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/analytics.py +0 -0
  23. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/bot_stats_update.py +0 -0
  24. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/chat_history.py +0 -0
  25. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/inbox_leads.py +0 -0
  26. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/mass_message.py +0 -0
  27. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/send_code.py +0 -0
  28. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/send_slack_message.py +0 -0
  29. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
  30. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/user_balance_update.py +0 -0
  31. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/jobs/workspace_connect.py +0 -0
  32. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/__init__.py +0 -0
  33. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/discord_client/__init__.py +0 -0
  34. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/discord_client/discord_client.py +0 -0
  35. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/discord_client/methods.py +0 -0
  36. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/enums/__init__.py +0 -0
  37. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/enums/slack_errors.py +0 -0
  38. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/helpers.py +0 -0
  39. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/lgt_logging.py +0 -0
  40. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/pubsub/__init__.py +0 -0
  41. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/pubsub/command.py +0 -0
  42. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/pubsub/messages.py +0 -0
  43. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/pubsub/pubsubfactory.py +0 -0
  44. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/slack_client/__init__.py +0 -0
  45. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/slack_client/methods.py +0 -0
  46. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/slack_client/slack_client.py +0 -0
  47. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_common/slack_client/web_client.py +0 -0
  48. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_data/__init__.py +0 -0
  49. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_data/analytics.py +0 -0
  50. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_data/engine.py +0 -0
  51. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/lgt_data/helpers.py +0 -0
  52. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/main.py +0 -0
  53. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/runner.py +0 -0
  54. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/services/__init__.py +0 -0
  55. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/services/web_client.py +0 -0
  56. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/simple_job.py +0 -0
  57. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/smtp.py +0 -0
  58. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/lgt_jobs/templates/new_message.html +0 -0
  59. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/setup.cfg +0 -0
  60. {leadguru_jobs-0.474.0 → leadguru_jobs-0.475.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.474.0
3
+ Version: 0.475.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.474.0
3
+ Version: 0.475.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -101,3 +101,8 @@ class FeaturesEnum(str, Enum):
101
101
  SCHEDULED_MESSAGES = 'scheduled_messages'
102
102
  SOURCES = 'sources'
103
103
  ALGORITHMS = 'algorithms'
104
+
105
+
106
+ class FeatureOptions(str, Enum):
107
+ BASIC = 'basic'
108
+ ADVANCED = 'advanced'
@@ -4,7 +4,7 @@ import json
4
4
  from abc import ABC
5
5
  from datetime import datetime, UTC
6
6
  from typing import Optional, List, Dict
7
- from .enums import UserRole, SourceType
7
+ from .enums import UserRole, SourceType, FeaturesEnum, FeatureOptions
8
8
  from .helpers import get_linkedin_search_contact
9
9
  from bson import ObjectId
10
10
 
@@ -287,6 +287,8 @@ class UserModel(BaseModel):
287
287
  self.slack_users: List[SlackUser] = []
288
288
  self.discord_users: List[DiscordUser] = []
289
289
  self.verified: bool = False
290
+ self.subscription_id: ObjectId | None = None
291
+ self.subscription_expired_at: datetime | None = None
290
292
 
291
293
  @classmethod
292
294
  def from_dic(cls, dic: dict):
@@ -990,4 +992,22 @@ class UsersPage:
990
992
  def from_dic(dic: dict):
991
993
  users = [UserModel.from_dic(doc) for doc in dic.get('page', [])]
992
994
  count = dic.get('count', 0)
993
- return UsersPage(users=users, count=count)
995
+ return UsersPage(users=users, count=count)
996
+
997
+
998
+ class Feature(DictionaryModel):
999
+ display_name: str
1000
+ name: FeaturesEnum
1001
+ description: str | None = None
1002
+ limit: int | None = None
1003
+ options: FeatureOptions | None = None
1004
+
1005
+
1006
+ class Subscription(BaseModel):
1007
+ features: list[Feature]
1008
+ duration_days: int
1009
+ name: str
1010
+ price: int
1011
+ limits: int
1012
+ trial: bool
1013
+ updated_at: datetime = None
@@ -9,7 +9,7 @@ from lgt_jobs.lgt_data.enums import SourceType
9
9
  from lgt_jobs.lgt_data.model import (LeadModel, BaseModel, UserModel, UserResetPasswordModel, BoardModel, BoardedStatus,
10
10
  DedicatedBotModel, SlackMemberInformation, UserTemplateModel, LinkedinContact,
11
11
  ExtendedUserLeadModel, UserLeadModel, ExtendedLeadModel, UserContact, ChatMessage,
12
- GroupedMessagesModel, UserVerificationModel, UsersPage)
12
+ GroupedMessagesModel, UserVerificationModel, UsersPage, Subscription)
13
13
  from datetime import datetime, UTC, timedelta
14
14
  from collections import OrderedDict
15
15
 
@@ -1227,3 +1227,18 @@ class UserVerificationMongoRepository(BaseMongoRepository):
1227
1227
  model.email = email
1228
1228
  model.created_at = datetime.now(UTC)
1229
1229
  return self.collection().insert_one(model.to_dic()).inserted_id
1230
+
1231
+
1232
+ class SubscriptionsRepository(BaseMongoRepository):
1233
+ pass
1234
+
1235
+ collection_name = 'subscriptions'
1236
+ model = Subscription
1237
+
1238
+ def find_one(self, **kwargs):
1239
+ pipeline = {}
1240
+ subscription_id = kwargs.get('id')
1241
+ if subscription_id:
1242
+ pipeline['_id'] = to_object_id(subscription_id)
1243
+
1244
+ return Subscription.from_dic(self.collection().find_one(pipeline))