라이브 티커 · 갤럭시 검색 색인 · 주간 랭킹 스냅샷 · 연속 ZAP 상한 · 가입 행성 Zap · 성운 목표 · 랭킹 갱신 안내 · 행성 터치 반응

This commit is contained in:
Sn-Kinos
2026-10-05 22:38:42 +09:00
parent 000c058097
commit 4bb92c2ee7
44 changed files with 727 additions and 78 deletions
+26 -1
View File
@@ -123,10 +123,29 @@ String countryName(String code) {
/// 랭킹 한 판.
class FpiRanking {
const FpiRanking({required this.rows, this.mine, this.mockNote});
const FpiRanking({
required this.rows,
this.mine,
this.mockNote,
this.updatedAt,
this.refreshMinutes,
});
final List<FpiRankRow> rows;
/// 마지막 갱신 시각 · 갱신 주기(분) — 별첨 1 ② 예외처리 「갱신 주기·마지막 갱신 시각 화면 안내」.
/// 행성 랭킹은 1분 집계(`fpiUpdatedAt`), 사용자 · 국가 랭킹은 5분 집계다.
final DateTime? updatedAt;
final int? refreshMinutes;
FpiRanking withUpdate(DateTime? at, int minutes) => FpiRanking(
rows: rows,
mine: mine,
mockNote: mockNote,
updatedAt: at,
refreshMinutes: minutes,
);
/// 내 줄(행성 랭킹이면 내 행성, 사용자 랭킹이면 나). 목록 밖에 따로 띄운다 —
/// Figma `546:14628` 「소속 행성 지표 랭킹 영역」 · `546:14668` 「나의 랭킹 영역」.
final FpiRankRow? mine;
@@ -251,8 +270,14 @@ class PlanetDetail {
this.fpiUpdatedAt,
this.joined = true,
this.growthPop = 0,
this.nebulaTargetPop = 1000,
this.nebulaTargetMembers = 10,
});
/// 성운 → 정식 행성 전환 조건 — 서버와 같은 `config/policy`(원장 B-10 · `nebulaMinPop` · `nebulaMinMembers`).
final int nebulaTargetPop;
final int nebulaTargetMembers;
/// 성운 누적 POP(`fandoms.growthPop`) — 성운 FPI 탭 「성운 성장률」의 분자.
final int growthPop;