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:
parent
d3e8b7d1c6
commit
4b900aa930
1 changed files with 20 additions and 28 deletions
|
|
@ -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));
|
||||
}
|
||||
Loading…
Reference in a new issue