amsdal_crm 0.2.1__tar.gz → 0.2.2__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 (73) hide show
  1. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/PKG-INFO +1 -1
  2. amsdal_crm-0.2.2/amsdal_crm/__about__.py +1 -0
  3. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/migrations/0000_initial.py +4 -0
  4. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/entity.py +12 -0
  5. amsdal_crm-0.2.1/amsdal_crm/__about__.py +0 -1
  6. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/.amsdal/.environment +0 -0
  7. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/.amsdal-cli +0 -0
  8. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/.github/workflows/ci.yml +0 -0
  9. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/.github/workflows/release.yml +0 -0
  10. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/.github/workflows/tag_check.yml +0 -0
  11. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/.gitignore +0 -0
  12. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/CLAUDE.md +0 -0
  13. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/README.md +0 -0
  14. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/RELEASE.md +0 -0
  15. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/Third-Party Materials - AMSDAL Dependencies - License Notices.md +0 -0
  16. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/__init__.py +0 -0
  17. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/app.py +0 -0
  18. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/constants.py +0 -0
  19. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/errors.py +0 -0
  20. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/fixtures/__init__.py +0 -0
  21. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/fixtures/permissions.py +0 -0
  22. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/fixtures/pipelines.py +0 -0
  23. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/lifecycle/__init__.py +0 -0
  24. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/lifecycle/consumer.py +0 -0
  25. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/__init__.py +0 -0
  26. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/activity.py +0 -0
  27. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/attachment.py +0 -0
  28. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/custom_field_definition.py +0 -0
  29. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/deal.py +0 -0
  30. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/pipeline.py +0 -0
  31. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/stage.py +0 -0
  32. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/models/workflow_rule.py +0 -0
  33. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/services/__init__.py +0 -0
  34. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/services/activity_service.py +0 -0
  35. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/services/custom_field_service.py +0 -0
  36. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/services/deal_service.py +0 -0
  37. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/services/email_service.py +0 -0
  38. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/services/workflow_service.py +0 -0
  39. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/amsdal_crm/settings.py +0 -0
  40. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/config.yml +0 -0
  41. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/license_check.py +0 -0
  42. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/pyproject.toml +0 -0
  43. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/scripts/release.sh +0 -0
  44. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/scripts/tag_check.sh +0 -0
  45. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/conftest.py +0 -0
  46. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/integration/__init__.py +0 -0
  47. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/integration/conftest.py +0 -0
  48. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/integration/services/__init__.py +0 -0
  49. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/integration/services/test_deal_service.py +0 -0
  50. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/integration/services/test_email_service.py +0 -0
  51. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/integration/services/test_workflow_service.py +0 -0
  52. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/__init__.py +0 -0
  53. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/conftest.py +0 -0
  54. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/lifecycle/__init__.py +0 -0
  55. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/lifecycle/test_consumer.py +0 -0
  56. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/models/__init__.py +0 -0
  57. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/models/test_activity.py +0 -0
  58. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/models/test_deal.py +0 -0
  59. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/models/test_entity.py +0 -0
  60. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/models/test_pipeline.py +0 -0
  61. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/models/test_remaining.py +0 -0
  62. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/models/test_stage.py +0 -0
  63. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/services/__init__.py +0 -0
  64. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/services/test_activity_service.py +0 -0
  65. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/services/test_custom_field_service.py +0 -0
  66. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/services/test_deal_service.py +0 -0
  67. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/services/test_email_service.py +0 -0
  68. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/services/test_workflow_service.py +0 -0
  69. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/test_app.py +0 -0
  70. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/test_constants.py +0 -0
  71. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/test_errors.py +0 -0
  72. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/tests/unit/test_settings.py +0 -0
  73. {amsdal_crm-0.2.1 → amsdal_crm-0.2.2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amsdal_crm
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: amsdal-crm plugin for AMSDAL Framework
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: aiohttp==3.12.15
@@ -0,0 +1 @@
1
+ __version__ = '0.2.2'
@@ -107,6 +107,7 @@ class Migration(migrations.Migration):
107
107
  "postal_code": {"type": "string", "title": "Postal Code"},
108
108
  "country": {"type": "string", "title": "Country"},
109
109
  "is_primary": {"type": "boolean", "default": False, "title": "Is Primary"},
110
+ "custom_fields": {"type": "anything", "title": "Custom Fields"},
110
111
  },
111
112
  "custom_code": 'async def apre_create(self) -> None:\n """Async hook called before creating account."""\n if self.custom_fields:\n from amsdal_crm.services.custom_field_service import CustomFieldService\n self.custom_fields = await CustomFieldService.avalidate_custom_fields(\'EntityAddress\', self.custom_fields)\n await super().apre_create()\n\nasync def apre_update(self) -> None:\n """Async hook called before updating account."""\n if self.custom_fields:\n from amsdal_crm.services.custom_field_service import CustomFieldService\n self.custom_fields = await CustomFieldService.avalidate_custom_fields(\'EntityAddress\', self.custom_fields)\n await super().apre_update()\n\ndef pre_create(self) -> None:\n """Hook called before creating account."""\n if self.custom_fields:\n from amsdal_crm.services.custom_field_service import CustomFieldService\n self.custom_fields = CustomFieldService.validate_custom_fields(\'EntityAddress\', self.custom_fields)\n super().pre_create()\n\ndef pre_update(self) -> None:\n """Hook called before updating account."""\n if self.custom_fields:\n from amsdal_crm.services.custom_field_service import CustomFieldService\n self.custom_fields = CustomFieldService.validate_custom_fields(\'EntityAddress\', self.custom_fields)\n super().pre_update()',
112
113
  "storage_metadata": {
@@ -375,6 +376,7 @@ class Migration(migrations.Migration):
375
376
  "value": {"type": "string", "title": "Contact Point Value"},
376
377
  "is_primary": {"type": "boolean", "default": False, "title": "Is Primary"},
377
378
  "can_contact": {"type": "boolean", "default": True, "title": "Can Contact"},
379
+ "custom_fields": {"type": "anything", "title": "Custom Fields"},
378
380
  "entity": {
379
381
  "type": "Entity",
380
382
  "title": "Entity",
@@ -402,6 +404,7 @@ class Migration(migrations.Migration):
402
404
  "value": {"type": "string", "title": "Identifier Value"},
403
405
  "country": {"type": "string", "title": "Country"},
404
406
  "is_primary": {"type": "boolean", "default": False, "title": "Is Primary"},
407
+ "custom_fields": {"type": "anything", "title": "Custom Fields"},
405
408
  "entity": {
406
409
  "type": "Entity",
407
410
  "title": "Entity",
@@ -429,6 +432,7 @@ class Migration(migrations.Migration):
429
432
  "start_date": {"type": "string", "title": "Start Date"},
430
433
  "end_date": {"type": "string", "title": "End Date"},
431
434
  "relationship_group_name": {"type": "string", "title": "Relationship Group Name"},
435
+ "custom_fields": {"type": "anything", "title": "Custom Fields"},
432
436
  "from_entity": {
433
437
  "type": "Entity",
434
438
  "title": "From Entity",
@@ -125,6 +125,9 @@ class EntityRelationship(TimestampMixin, Model):
125
125
  end_date: str | None = Field(default=None, title='End Date')
126
126
  relationship_group_name: str | None = Field(default=None, title='Relationship Group Name')
127
127
 
128
+ # Custom fields (JSON)
129
+ custom_fields: dict[str, Any] | None = Field(default=None, title='Custom Fields')
130
+
128
131
  def pre_create(self) -> None:
129
132
  """Hook called before creating account."""
130
133
  if self.custom_fields:
@@ -178,6 +181,9 @@ class EntityIdentifier(TimestampMixin, Model):
178
181
  # TODO: validate one per entity
179
182
  is_primary: bool = Field(default=False, title='Is Primary')
180
183
 
184
+ # Custom fields (JSON)
185
+ custom_fields: dict[str, Any] | None = Field(default=None, title='Custom Fields')
186
+
181
187
  def pre_create(self) -> None:
182
188
  """Hook called before creating account."""
183
189
  if self.custom_fields:
@@ -231,6 +237,9 @@ class EntityContactPoint(TimestampMixin, Model):
231
237
  is_primary: bool = Field(default=False, title='Is Primary')
232
238
  can_contact: bool = Field(default=True, title='Can Contact')
233
239
 
240
+ # Custom fields (JSON)
241
+ custom_fields: dict[str, Any] | None = Field(default=None, title='Custom Fields')
242
+
234
243
  def pre_create(self) -> None:
235
244
  """Hook called before creating account."""
236
245
  if self.custom_fields:
@@ -287,6 +296,9 @@ class EntityAddress(TimestampMixin, Model):
287
296
  # TODO: validate one per entity
288
297
  is_primary: bool = Field(default=False, title='Is Primary')
289
298
 
299
+ # Custom fields (JSON)
300
+ custom_fields: dict[str, Any] | None = Field(default=None, title='Custom Fields')
301
+
290
302
  def pre_create(self) -> None:
291
303
  """Hook called before creating account."""
292
304
  if self.custom_fields:
@@ -1 +0,0 @@
1
- __version__ = '0.2.1'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes