docs(adr): shared spaces, their screens in step 4

ADR 0044, D29 to D32: Share opens one sheet, people first, then the
community; a Viewer's studyset screen is read-only; a shared studyset
is marked with people; safety codes are compared from a member's row,
members matched to their keys by handle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-11 14:39:12 +01:00
commit 4b900aa930
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1,27 +0,0 @@
import 'package:halkyon_base_client/halkyon_base_client.dart' as base;
/// The shared spaces the instance keeps (halkyon_base's `sharedSpace`
/// endpoint, Halkyon's ADR 0044, D1).
abstract interface class SharedSpaceGateway() {
/// Makes a shared space holding a studyset, with the person its Owner;
/// returns its id, the sync engine's space.
Future<String> create();
/// Deletes [space] with everything in it; its Owner's.
Future<void> delete(String space);
}
/// [SharedSpaceGateway] on halkyon_base's `sharedSpace` endpoint.
class ServerpodSharedSpaceGateway(final base.Caller _base)
implements SharedSpaceGateway {
/// What a Learn space holds, in the module's words for it.
static const kind = 'studyset';
@override
Future<String> create() async =>
(await _base.sharedSpace.create(kind)).id.uuid;
@override
Future<void> delete(String space) =>
_base.sharedSpace.delete(base.UuidValue.withValidation(space));
}