Files
gmTouringMiniApp/src/services/check-in/service.ts
T

28 lines
846 B
TypeScript

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()
}