# fusion_accounting_core — Cursor / Claude Context ## Purpose Foundation for the Fusion Accounting sub-module suite. Owns: - Three security groups (User / Manager / Admin) shared across all sub-modules - Shared-field-ownership declarations on `account.move` and `account.reconcile.model` - Runtime Enterprise-detection helper: `env['ir.module.module']._fusion_is_enterprise_accounting_installed()` ## What lives here - `models/account_move.py` — declares Enterprise-extension fields with identical schemas / relation tables. Pure schema-preservation; no business logic. - `models/account_reconcile_model.py` — same pattern for `created_automatically` - `models/ir_module_module.py` — Enterprise-detection helpers - `security/fusion_accounting_security.xml` — privilege + 3 groups + auto-assignment ## Critical rules - NEVER add business logic to the shared-field models (account_move.py here). Logic belongs in the feature sub-module that owns it (e.g. fusion_accounting_bank_rec). - NEVER rename the relation tables for shared M2Ms. They must match Enterprise verbatim for the dual-ownership pattern to work. - Shared fields here have NO defaults beyond what Enterprise sets. The point is preservation. ## Cross-references - Parent design: `fusion_accounting/docs/superpowers/specs/2026-04-18-fusion-accounting-enterprise-takeover-roadmap-design.md` (Section 3) - Workspace conventions: `/Users/gurpreet/Github/Odoo-Modules/CLAUDE.md`