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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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