Add check-in feature and update travel planner UI
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { getCheckInTask } from '@/data/check-in'
|
||||
import { getPoiRepository } from '@/data/poi'
|
||||
import {
|
||||
applyCheckIn,
|
||||
type CheckInLocationSnapshot,
|
||||
type CheckInProfile,
|
||||
type CheckInResult,
|
||||
} from '@/domain/check-in'
|
||||
import { loadCheckInProfile, saveCheckInProfile } from './storage'
|
||||
|
||||
export function checkInAtPoi(
|
||||
poiId: string,
|
||||
location: CheckInLocationSnapshot,
|
||||
now = Date.now(),
|
||||
): CheckInResult {
|
||||
const poi = getPoiRepository().getPoiById(poiId)
|
||||
const task = poi ? getCheckInTask(poi.id) : null
|
||||
if (!poi || !task)
|
||||
throw new Error('该点位不存在或已下线,暂时无法打卡')
|
||||
const result = applyCheckIn(loadCheckInProfile(), poi, location, now, task.radiusMeters)
|
||||
saveCheckInProfile(result.profile)
|
||||
return result
|
||||
}
|
||||
|
||||
export function getCheckInProfile(): CheckInProfile {
|
||||
return loadCheckInProfile()
|
||||
}
|
||||
Reference in New Issue
Block a user