# SetBaseCurrency

## Permission Scope

currency

## Overview

**Deprecated.** Base currency assignment is per company and owned by the organization module's company lifecycle. The primitives module owns the currency catalog but does not manage base currency designation. New implementations should use the organization module's company-level base currency assignment instead of this command.

Previously, SetBaseCurrency changed a single organization-wide base currency. This model has been replaced by per-company base currency assignment in the organization module, which correctly supports multi-company deployments where each legal entity may have a different functional currency.

## Business Rules

- This command is deprecated and must not be used in new implementations
- Base currency assignment is per company, owned by the organization module
- The primitives module provides the currency catalog; it does not designate a global base currency
- Deactivation of a currency is blocked if any company references it as base currency (cross-module invariant with organization)

## Process Flow

```mermaid
flowchart TD
    A[SetBaseCurrency called] --> B[Return deprecation error]
    B --> C[Caller should use organization module company-level base currency assignment]
```

## External Dependencies

- [organization](../../../organization/README.md) — Owns per-company base currency assignment

## Error Scenarios

- **SET_BASE_CURRENCY_DEPRECATED**: This command is deprecated; use the organization module's company-level base currency assignment

## Test Cases

- Calling SetBaseCurrency returns a deprecation error directing the caller to the organization module
- No currency is modified when SetBaseCurrency is invoked
