LICENSE
README.md
pyproject.toml
src/pycrmkit/__about__.py
src/pycrmkit/__init__.py
src/pycrmkit/_privacy.py
src/pycrmkit/config.py
src/pycrmkit/crm.py
src/pycrmkit/exceptions.py
src/pycrmkit/py.typed
src/pycrmkit.egg-info/PKG-INFO
src/pycrmkit.egg-info/SOURCES.txt
src/pycrmkit.egg-info/dependency_links.txt
src/pycrmkit.egg-info/entry_points.txt
src/pycrmkit.egg-info/requires.txt
src/pycrmkit.egg-info/top_level.txt
src/pycrmkit/activities/__init__.py
src/pycrmkit/activities/dto.py
src/pycrmkit/activities/entities.py
src/pycrmkit/activities/participants.py
src/pycrmkit/activities/queries.py
src/pycrmkit/activities/repository.py
src/pycrmkit/activities/services.py
src/pycrmkit/audit/__init__.py
src/pycrmkit/audit/entries.py
src/pycrmkit/audit/repository.py
src/pycrmkit/audit/services.py
src/pycrmkit/calendars/__init__.py
src/pycrmkit/calendars/entities.py
src/pycrmkit/calendars/registry.py
src/pycrmkit/calendars/services.py
src/pycrmkit/campaigns/__init__.py
src/pycrmkit/campaigns/audience.py
src/pycrmkit/campaigns/audience_repository.py
src/pycrmkit/campaigns/audience_services.py
src/pycrmkit/campaigns/audience_unit_of_work.py
src/pycrmkit/campaigns/data_operations.py
src/pycrmkit/campaigns/dto.py
src/pycrmkit/campaigns/entities.py
src/pycrmkit/campaigns/enums.py
src/pycrmkit/campaigns/linkage.py
src/pycrmkit/campaigns/linkage_repository.py
src/pycrmkit/campaigns/linkage_services.py
src/pycrmkit/campaigns/linkage_unit_of_work.py
src/pycrmkit/campaigns/queries.py
src/pycrmkit/campaigns/repository.py
src/pycrmkit/campaigns/services.py
src/pycrmkit/campaigns/unit_of_work.py
src/pycrmkit/communication/__init__.py
src/pycrmkit/communication/delivery.py
src/pycrmkit/communication/entities.py
src/pycrmkit/communication/repository.py
src/pycrmkit/communication/value_objects.py
src/pycrmkit/communication/email/__init__.py
src/pycrmkit/communication/email/messages.py
src/pycrmkit/communication/email/provider.py
src/pycrmkit/communication/email/services.py
src/pycrmkit/communication/email/templates.py
src/pycrmkit/contacts/__init__.py
src/pycrmkit/contacts/dto.py
src/pycrmkit/contacts/entities.py
src/pycrmkit/contacts/policies.py
src/pycrmkit/contacts/queries.py
src/pycrmkit/contacts/repository.py
src/pycrmkit/contacts/services.py
src/pycrmkit/contacts/value_objects.py
src/pycrmkit/core/__init__.py
src/pycrmkit/core/entities.py
src/pycrmkit/core/events.py
src/pycrmkit/core/ids.py
src/pycrmkit/core/json.py
src/pycrmkit/core/money.py
src/pycrmkit/core/pagination.py
src/pycrmkit/core/references.py
src/pycrmkit/core/time.py
src/pycrmkit/core/unit_of_work.py
src/pycrmkit/core/value_objects.py
src/pycrmkit/custom_fields/__init__.py
src/pycrmkit/custom_fields/dto.py
src/pycrmkit/custom_fields/entities.py
src/pycrmkit/custom_fields/policies.py
src/pycrmkit/custom_fields/queries.py
src/pycrmkit/custom_fields/repository.py
src/pycrmkit/custom_fields/services.py
src/pycrmkit/custom_fields/value_objects.py
src/pycrmkit/dedup/__init__.py
src/pycrmkit/dedup/candidates.py
src/pycrmkit/dedup/conflicts.py
src/pycrmkit/dedup/matchers.py
src/pycrmkit/dedup/merge.py
src/pycrmkit/dedup/provenance.py
src/pycrmkit/dedup/scoring.py
src/pycrmkit/dedup/services.py
src/pycrmkit/events/__init__.py
src/pycrmkit/events/bus.py
src/pycrmkit/events/envelope.py
src/pycrmkit/events/publisher.py
src/pycrmkit/events/registry.py
src/pycrmkit/events/serializer.py
src/pycrmkit/events/subscriber.py
src/pycrmkit/exporters/__init__.py
src/pycrmkit/exporters/csv.py
src/pycrmkit/exporters/json.py
src/pycrmkit/exporters/jsonl.py
src/pycrmkit/external_identities/__init__.py
src/pycrmkit/external_identities/entities.py
src/pycrmkit/external_identities/repository.py
src/pycrmkit/external_identities/services.py
src/pycrmkit/facade/__init__.py
src/pycrmkit/facade/_runtime.py
src/pycrmkit/facade/activities.py
src/pycrmkit/facade/audit.py
src/pycrmkit/facade/calendars.py
src/pycrmkit/facade/campaigns.py
src/pycrmkit/facade/contacts.py
src/pycrmkit/facade/custom_fields.py
src/pycrmkit/facade/email.py
src/pycrmkit/facade/events.py
src/pycrmkit/facade/external_identities.py
src/pycrmkit/facade/leads.py
src/pycrmkit/facade/opportunities.py
src/pycrmkit/facade/organizations.py
src/pycrmkit/facade/pipelines.py
src/pycrmkit/facade/relationships.py
src/pycrmkit/facade/saved_queries.py
src/pycrmkit/facade/segments.py
src/pycrmkit/facade/tags.py
src/pycrmkit/facade/tasks.py
src/pycrmkit/facade/timeline.py
src/pycrmkit/facade/webhooks.py
src/pycrmkit/importers/__init__.py
src/pycrmkit/importers/base.py
src/pycrmkit/importers/csv.py
src/pycrmkit/importers/json.py
src/pycrmkit/importers/jsonl.py
src/pycrmkit/importers/mapping.py
src/pycrmkit/importers/normalization.py
src/pycrmkit/importers/pipeline.py
src/pycrmkit/importers/reports.py
src/pycrmkit/importers/validation.py
src/pycrmkit/integrations/__init__.py
src/pycrmkit/integrations/campaign_payload_validation.py
src/pycrmkit/integrations/campaign_security.py
src/pycrmkit/integrations/django/__init__.py
src/pycrmkit/integrations/django/admin.py
src/pycrmkit/integrations/django/apps.py
src/pycrmkit/integrations/django/campaign_audience.py
src/pycrmkit/integrations/django/campaign_codec.py
src/pycrmkit/integrations/django/campaign_linkage.py
src/pycrmkit/integrations/django/campaign_repositories.py
src/pycrmkit/integrations/django/communication_records.py
src/pycrmkit/integrations/django/models.py
src/pycrmkit/integrations/django/repositories.py
src/pycrmkit/integrations/django/segmentation.py
src/pycrmkit/integrations/django/transactions.py
src/pycrmkit/integrations/django/typecheck_settings.py
src/pycrmkit/integrations/django/drf/__init__.py
src/pycrmkit/integrations/django/drf/campaign_audience_views.py
src/pycrmkit/integrations/django/drf/campaign_linkage_views.py
src/pycrmkit/integrations/django/drf/campaign_security.py
src/pycrmkit/integrations/django/drf/campaign_serializers.py
src/pycrmkit/integrations/django/drf/campaign_views.py
src/pycrmkit/integrations/django/drf/errors.py
src/pycrmkit/integrations/django/drf/pagination.py
src/pycrmkit/integrations/django/drf/routers.py
src/pycrmkit/integrations/django/drf/segmentation_serializers.py
src/pycrmkit/integrations/django/drf/segmentation_views.py
src/pycrmkit/integrations/django/drf/serializers.py
src/pycrmkit/integrations/django/drf/settings.py
src/pycrmkit/integrations/django/drf/views.py
src/pycrmkit/integrations/django/migrations/0001_initial.py
src/pycrmkit/integrations/django/migrations/0002_external_identity.py
src/pycrmkit/integrations/django/migrations/0003_segmentation.py
src/pycrmkit/integrations/django/migrations/0004_campaign_persistence.py
src/pycrmkit/integrations/django/migrations/0005_communication_record_store.py
src/pycrmkit/integrations/django/migrations/__init__.py
src/pycrmkit/integrations/fastapi/__init__.py
src/pycrmkit/integrations/fastapi/campaign_schemas.py
src/pycrmkit/integrations/fastapi/campaign_security.py
src/pycrmkit/integrations/fastapi/dependencies.py
src/pycrmkit/integrations/fastapi/errors.py
src/pycrmkit/integrations/fastapi/pagination.py
src/pycrmkit/integrations/fastapi/router.py
src/pycrmkit/integrations/fastapi/schemas.py
src/pycrmkit/integrations/fastapi/segmentation_schemas.py
src/pycrmkit/integrations/fastapi/routers/__init__.py
src/pycrmkit/integrations/fastapi/routers/activities.py
src/pycrmkit/integrations/fastapi/routers/campaign_audience.py
src/pycrmkit/integrations/fastapi/routers/campaign_linkage.py
src/pycrmkit/integrations/fastapi/routers/campaigns.py
src/pycrmkit/integrations/fastapi/routers/contacts.py
src/pycrmkit/integrations/fastapi/routers/leads.py
src/pycrmkit/integrations/fastapi/routers/opportunities.py
src/pycrmkit/integrations/fastapi/routers/organizations.py
src/pycrmkit/integrations/fastapi/routers/relationships.py
src/pycrmkit/integrations/fastapi/routers/saved_queries.py
src/pycrmkit/integrations/fastapi/routers/segments.py
src/pycrmkit/integrations/fastapi/routers/tasks.py
src/pycrmkit/integrations/fastapi/routers/timeline.py
src/pycrmkit/leads/__init__.py
src/pycrmkit/leads/conversion.py
src/pycrmkit/leads/entities.py
src/pycrmkit/leads/queries.py
src/pycrmkit/leads/repository.py
src/pycrmkit/leads/services.py
src/pycrmkit/opportunities/__init__.py
src/pycrmkit/opportunities/entities.py
src/pycrmkit/opportunities/queries.py
src/pycrmkit/opportunities/repository.py
src/pycrmkit/opportunities/services.py
src/pycrmkit/organizations/__init__.py
src/pycrmkit/organizations/dto.py
src/pycrmkit/organizations/entities.py
src/pycrmkit/organizations/policies.py
src/pycrmkit/organizations/queries.py
src/pycrmkit/organizations/repository.py
src/pycrmkit/organizations/services.py
src/pycrmkit/organizations/value_objects.py
src/pycrmkit/pipelines/__init__.py
src/pycrmkit/pipelines/entities.py
src/pycrmkit/pipelines/policies.py
src/pycrmkit/pipelines/repository.py
src/pycrmkit/pipelines/services.py
src/pycrmkit/pipelines/stages.py
src/pycrmkit/pipelines/transitions.py
src/pycrmkit/providers/__init__.py
src/pycrmkit/providers/email/__init__.py
src/pycrmkit/providers/email/jinja2.py
src/pycrmkit/providers/email/resend.py
src/pycrmkit/providers/email/smtp.py
src/pycrmkit/relationships/__init__.py
src/pycrmkit/relationships/dto.py
src/pycrmkit/relationships/entities.py
src/pycrmkit/relationships/policies.py
src/pycrmkit/relationships/queries.py
src/pycrmkit/relationships/repository.py
src/pycrmkit/relationships/services.py
src/pycrmkit/relationships/value_objects.py
src/pycrmkit/saved_queries/__init__.py
src/pycrmkit/saved_queries/dto.py
src/pycrmkit/saved_queries/entities.py
src/pycrmkit/saved_queries/enums.py
src/pycrmkit/saved_queries/queries.py
src/pycrmkit/saved_queries/repository.py
src/pycrmkit/saved_queries/services.py
src/pycrmkit/saved_queries/unit_of_work.py
src/pycrmkit/segments/__init__.py
src/pycrmkit/segments/data_operations.py
src/pycrmkit/segments/entities.py
src/pycrmkit/segments/enums.py
src/pycrmkit/segments/expressions.py
src/pycrmkit/segments/ordering.py
src/pycrmkit/segments/queries.py
src/pycrmkit/segments/repository.py
src/pycrmkit/segments/schema.py
src/pycrmkit/segments/services.py
src/pycrmkit/segments/unit_of_work.py
src/pycrmkit/storage/__init__.py
src/pycrmkit/storage/memory/__init__.py
src/pycrmkit/storage/memory/_state.py
src/pycrmkit/storage/memory/activities.py
src/pycrmkit/storage/memory/audit.py
src/pycrmkit/storage/memory/campaign_audience.py
src/pycrmkit/storage/memory/campaign_linkage.py
src/pycrmkit/storage/memory/campaigns.py
src/pycrmkit/storage/memory/communication.py
src/pycrmkit/storage/memory/contacts.py
src/pycrmkit/storage/memory/custom_fields.py
src/pycrmkit/storage/memory/external_identities.py
src/pycrmkit/storage/memory/leads.py
src/pycrmkit/storage/memory/opportunities.py
src/pycrmkit/storage/memory/organizations.py
src/pycrmkit/storage/memory/pipelines.py
src/pycrmkit/storage/memory/relationships.py
src/pycrmkit/storage/memory/saved_queries.py
src/pycrmkit/storage/memory/segments.py
src/pycrmkit/storage/memory/tags.py
src/pycrmkit/storage/memory/tasks.py
src/pycrmkit/storage/memory/timeline.py
src/pycrmkit/storage/memory/unit_of_work.py
src/pycrmkit/storage/memory/webhook_deliveries.py
src/pycrmkit/storage/memory/webhooks.py
src/pycrmkit/storage/sqlalchemy/__init__.py
src/pycrmkit/storage/sqlalchemy/base.py
src/pycrmkit/storage/sqlalchemy/campaign_codec.py
src/pycrmkit/storage/sqlalchemy/errors.py
src/pycrmkit/storage/sqlalchemy/mappers.py
src/pycrmkit/storage/sqlalchemy/mapping.py
src/pycrmkit/storage/sqlalchemy/segmentation_codec.py
src/pycrmkit/storage/sqlalchemy/unit_of_work.py
src/pycrmkit/storage/sqlalchemy/migrations/README.md
src/pycrmkit/storage/sqlalchemy/migrations/__init__.py
src/pycrmkit/storage/sqlalchemy/migrations/__main__.py
src/pycrmkit/storage/sqlalchemy/migrations/cli.py
src/pycrmkit/storage/sqlalchemy/migrations/env.py
src/pycrmkit/storage/sqlalchemy/migrations/script.py.mako
src/pycrmkit/storage/sqlalchemy/migrations/versions/0001_persistence_baseline.py
src/pycrmkit/storage/sqlalchemy/migrations/versions/0002_align_repository_reference_semantics.py
src/pycrmkit/storage/sqlalchemy/migrations/versions/0003_external_identities.py
src/pycrmkit/storage/sqlalchemy/migrations/versions/0004_task_type.py
src/pycrmkit/storage/sqlalchemy/migrations/versions/0005_segmentation_persistence.py
src/pycrmkit/storage/sqlalchemy/migrations/versions/0006_campaign_persistence.py
src/pycrmkit/storage/sqlalchemy/migrations/versions/__init__.py
src/pycrmkit/storage/sqlalchemy/models/__init__.py
src/pycrmkit/storage/sqlalchemy/models/activity.py
src/pycrmkit/storage/sqlalchemy/models/audit.py
src/pycrmkit/storage/sqlalchemy/models/campaign.py
src/pycrmkit/storage/sqlalchemy/models/communication.py
src/pycrmkit/storage/sqlalchemy/models/contact.py
src/pycrmkit/storage/sqlalchemy/models/custom_field.py
src/pycrmkit/storage/sqlalchemy/models/external_identity.py
src/pycrmkit/storage/sqlalchemy/models/lead.py
src/pycrmkit/storage/sqlalchemy/models/opportunity.py
src/pycrmkit/storage/sqlalchemy/models/organization.py
src/pycrmkit/storage/sqlalchemy/models/pipeline.py
src/pycrmkit/storage/sqlalchemy/models/relationship.py
src/pycrmkit/storage/sqlalchemy/models/segmentation.py
src/pycrmkit/storage/sqlalchemy/models/tag.py
src/pycrmkit/storage/sqlalchemy/models/task.py
src/pycrmkit/storage/sqlalchemy/models/timeline.py
src/pycrmkit/storage/sqlalchemy/models/webhook.py
src/pycrmkit/storage/sqlalchemy/repositories/__init__.py
src/pycrmkit/storage/sqlalchemy/repositories/_helpers.py
src/pycrmkit/storage/sqlalchemy/repositories/activities.py
src/pycrmkit/storage/sqlalchemy/repositories/audit.py
src/pycrmkit/storage/sqlalchemy/repositories/campaign_audience.py
src/pycrmkit/storage/sqlalchemy/repositories/campaign_linkage.py
src/pycrmkit/storage/sqlalchemy/repositories/campaigns.py
src/pycrmkit/storage/sqlalchemy/repositories/communication.py
src/pycrmkit/storage/sqlalchemy/repositories/contacts.py
src/pycrmkit/storage/sqlalchemy/repositories/custom_fields.py
src/pycrmkit/storage/sqlalchemy/repositories/external_identities.py
src/pycrmkit/storage/sqlalchemy/repositories/leads.py
src/pycrmkit/storage/sqlalchemy/repositories/opportunities.py
src/pycrmkit/storage/sqlalchemy/repositories/organizations.py
src/pycrmkit/storage/sqlalchemy/repositories/pipelines.py
src/pycrmkit/storage/sqlalchemy/repositories/relationships.py
src/pycrmkit/storage/sqlalchemy/repositories/saved_queries.py
src/pycrmkit/storage/sqlalchemy/repositories/segment_queries.py
src/pycrmkit/storage/sqlalchemy/repositories/segments.py
src/pycrmkit/storage/sqlalchemy/repositories/tags.py
src/pycrmkit/storage/sqlalchemy/repositories/tasks.py
src/pycrmkit/storage/sqlalchemy/repositories/timeline.py
src/pycrmkit/storage/sqlalchemy/repositories/webhooks.py
src/pycrmkit/tags/__init__.py
src/pycrmkit/tags/entities.py
src/pycrmkit/tags/queries.py
src/pycrmkit/tags/repository.py
src/pycrmkit/tags/services.py
src/pycrmkit/tags/value_objects.py
src/pycrmkit/tasks/__init__.py
src/pycrmkit/tasks/dto.py
src/pycrmkit/tasks/entities.py
src/pycrmkit/tasks/queries.py
src/pycrmkit/tasks/repository.py
src/pycrmkit/tasks/scheduling.py
src/pycrmkit/tasks/services.py
src/pycrmkit/timeline/__init__.py
src/pycrmkit/timeline/entries.py
src/pycrmkit/timeline/projections.py
src/pycrmkit/timeline/projectors.py
src/pycrmkit/timeline/repository.py
src/pycrmkit/webhooks/__init__.py
src/pycrmkit/webhooks/delivery.py
src/pycrmkit/webhooks/entities.py
src/pycrmkit/webhooks/integration.py
src/pycrmkit/webhooks/repository.py
src/pycrmkit/webhooks/retry.py
src/pycrmkit/webhooks/signing.py
src/pycrmkit/webhooks/subscriptions.py
src/pycrmkit/webhooks/transport.py
tests/test_version.py