const sessionStorageKey = 'talent-card-session'

export type Session = {
	accessToken: string
	refreshToken: string
	expireAt: number
	talentId?: string
}

export const getSession = (): Session | null => {
	const value = uni.getStorageSync(sessionStorageKey)
	if (value == null || value == '') return null
	return value as Session
}

export const setSession = (session: Session) => uni.setStorageSync(sessionStorageKey, session)
export const clearSession = () => uni.removeStorageSync(sessionStorageKey)

export const getAccessToken = (): string => {
	const session = getSession()
	if (session == null || session.expireAt <= Date.now()) return ''
	return session.accessToken
}

export const hasActiveSession = (): boolean => getAccessToken().length > 0
