# ActivatePurchasePriceList

## Permission Scope

purchasePricing

## Overview

ActivatePurchasePriceList re-enables a previously retired supplier price list so its active rules can participate in new purchase price resolution.

## Business Rules

- Target price list must exist
- Activating an already active list returns success without changing state
- Reactivated lists do not alter historical order snapshots

## Process Flow

```mermaid
flowchart TD
    A[Receive activate request] --> B{Price list exists?}
    B -->|No| C[Return PRICE_LIST_NOT_FOUND]
    B -->|Yes| D{Already active?}
    D -->|Yes| E[Return success with no-op]
    D -->|No| F[Set status to ACTIVE]
    F --> G[Return activated list]
```

## External Dependencies

- None

## Error Scenarios

- **PRICE_LIST_NOT_FOUND**: Referenced purchase price list does not exist

## Test Cases

- activates an inactive price list
- returns success when the list is already active
- returns error when price list does not exist
