라이브 티커 · 갤럭시 검색 색인 · 주간 랭킹 스냅샷 · 연속 ZAP 상한 · 가입 행성 Zap · 성운 목표 · 랭킹 갱신 안내 · 행성 터치 반응
This commit is contained in:
@@ -85,10 +85,21 @@ class GalaxySnapshot {
|
||||
this.event,
|
||||
this.joined = true,
|
||||
this.memberships = const [],
|
||||
this.joinedIds = const {},
|
||||
});
|
||||
|
||||
final List<PlanetNode> planets;
|
||||
|
||||
/// 내가 가입한 모든 팬덤 ID(`users.fandomIds` + 대표). 10/3 통합회신 #10 「다른 가입 팬덤에서도 Zap」 —
|
||||
/// 갤럭시에서 고른 행성이 여기에 있으면 그 행성에 Zap 한다.
|
||||
final Set<String> joinedIds;
|
||||
|
||||
/// Zap 이 향할 행성 — 고른 행성이 가입 팬덤이면 그 행성, 아니면 대표 행성(상세정의 5장 「B팬덤 Zap 은 B행성에 귀속」).
|
||||
PlanetNode? zapTargetFor(PlanetNode? selected) =>
|
||||
selected != null && (selected.isMine || joinedIds.contains(selected.id))
|
||||
? selected
|
||||
: mine;
|
||||
|
||||
/// 가입하거나 만든 행성/성운 — 최신 가입순(명세 §2.58 「행성/성운 모아보기」).
|
||||
/// [PlanetNode.isMine] 이 대표 팬덤(C-15)이다.
|
||||
final List<PlanetNode> memberships;
|
||||
@@ -138,6 +149,7 @@ class GalaxySnapshot {
|
||||
event: event,
|
||||
joined: joined,
|
||||
memberships: memberships,
|
||||
joinedIds: joinedIds,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -181,6 +193,9 @@ abstract interface class GalaxyRepository {
|
||||
/// 대표 팬덤 변경 — `fn-primary-fandom-set`(원장 C-15). 30일 대기 중이면
|
||||
/// E-FDM-04 로 거부된다.
|
||||
Future<void> setPrimary(String fandomId);
|
||||
|
||||
/// 행성 이름 검색 — Figma 「Galaxy_검색」(`353:217832`). 맵에 올라온 행성만이 아니라 **전체** 행성에서 찾는다.
|
||||
Future<List<PlanetNode>> search(String query);
|
||||
}
|
||||
|
||||
/// 서버가 붙기 전까지 쓰는 표본. **정책값이 아니다.**
|
||||
@@ -192,6 +207,15 @@ class SampleGalaxyRepository implements GalaxyRepository {
|
||||
@override
|
||||
Future<void> setPrimary(String fandomId) async {}
|
||||
|
||||
@override
|
||||
Future<List<PlanetNode>> search(String query) async {
|
||||
final q = query.trim().toLowerCase();
|
||||
return [
|
||||
for (final p in (await load()).planets)
|
||||
if (q.isNotEmpty && p.name.toLowerCase().contains(q)) p,
|
||||
];
|
||||
}
|
||||
|
||||
/// 표본은 원장이 없으므로 잔액을 돌려주지 않는다. 화면은 -1 을 「모름」으로 읽는다.
|
||||
@override
|
||||
Future<ZapResult> zap({
|
||||
|
||||
Reference in New Issue
Block a user