# ADR 002 — Introduce Domain Core before backend persistence

## Context

DigiDala has a working visual Telegram baseline but the UI still contains most of the application state.

## Decision

Introduce framework-independent `User`, `Cell` and `Mandala` classes and their lifecycle rules before adding database persistence.

## Alternatives

1. Add SQLite directly to the current UI code.
2. Build an API first and move rules later.
3. Introduce the domain model first.

## Decision rationale

Option 3 keeps business rules independent of UI, Telegram and storage. It also makes the system testable before persistence is introduced.

## Consequences

Positive:
- rules can be unit-tested;
- future Telegram/Web clients can share the same domain model;
- database migration is separated from product rules.

Trade-off:
- some temporary duplication remains between UI state and domain state during the transition.
