Skip to content

Clarify package and type boundaries #27

Description

@singular0

The model directory combines domain values, SQLite persistence and Qt presentation models.
CompanionClient imports those model types, and Channel represents both a live secret-bearing
channel and a secret-free cached one.

Target layout:

domain/       DeviceId, ChannelId, ChannelSecret, Message
protocol/     wire DTOs, codecs, client, transports
persistence/  HistoryStore, SettingsStore, migrations
app/          DeviceSession and application workflows
ui/models/    QAbstractListModel adapters
ui/           widgets and delegates

Tasks:

  • Introduce validated DeviceId, ChannelId, ChannelSecret and ChannelSlot value types
    instead of interchangeable QByteArray and int parameters.
  • Split the live channel representation from its cached summary.
  • Move History into persistence and the Qt list models under presentation.
  • Keep wire DTO parsing in the protocol layer and map it into domain types at the application
    boundary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: P2Wanted, not urgenttech-debtStructural work on what already exists

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions