Files
web-temp/layers/stores/useCouponStore.ts
2025-11-10 06:22:43 +00:00

112 lines
2.7 KiB
TypeScript

import type { WorldInfo, CharacterInfo } from '#layers/types/api/gameLinkedData'
export const useCouponStore = defineStore('couponStore', () => {
// Refs
const couponNo = ref('')
const worldList = ref<Array<WorldInfo>>([] as Array<WorldInfo>)
const memberNo = ref<number>(0)
const guid = ref<number>(0)
const selectCharacter = ref(null as CharacterInfo | null)
const nickName = ref('')
const selectWorld = ref({} as WorldInfo)
// Computed
const isSelectCharacter = computed(() => {
return (
selectCharacter.value !== null &&
selectCharacter.value.character_id !== null &&
selectCharacter.value.character_id !== ''
)
})
/**
* 월드 목록 업데이트 함수입니다.
* @param {Array<WorldInfo>} newWorldList - 월드 목록
*/
const updateWorldList = (newWorldList: Array<WorldInfo>) => {
worldList.value = newWorldList
}
/**
* 멤버번호 업데이트 함수입니다.
* @param {number} newMemberNo - 멤버번호
*/
const updateMemberNo = (newMemberNo: number) => {
memberNo.value = newMemberNo
}
/**
* GUID 업데이트 함수입니다.
* @param {number} newGuid - GUID
*/
const updateGuid = (newGuid: number) => {
guid.value = newGuid
}
/**
* 쿠폰 번호 업데이트 함수입니다.
* @param {string} newCouponNo - 쿠폰 번호
*/
const updateCouponNo = (newCouponNo: string) => {
couponNo.value = newCouponNo
}
/**
* 선택한 캐릭터 업데이트 함수입니다.
* @param {CharacterInfo | null} newCharacter - 선택한 캐릭터 (null인 경우 초기화)
*/
const updateSelectCharacter = (newCharacter: CharacterInfo | null) => {
selectCharacter.value = newCharacter
}
/**
* 닉네임 업데이트 함수입니다.
* @param {string} newNickname - 닉네임
*/
const updateNickname = (newNickname: string) => {
nickName.value = newNickname
}
/**
* 선택한 월드 업데이트 함수입니다.
* @param {WorldInfo} newWorld - 선택한 월드
*/
const updateSelectWorld = (newWorld: WorldInfo) => {
selectWorld.value = newWorld
}
/**
* 쿠폰 번호 빈값 여부 검증 함수입니다.
* 빈값인 경우 true, 빈값이 아닌 경우 false를 반환합니다.
* @param {string} value - 쿠폰 번호
* @returns
*/
const isEmptyCouponNo = (value: string) => {
if (value === '') {
return true
} else {
return false
}
}
return {
couponNo,
worldList,
memberNo,
guid,
selectCharacter,
nickName,
selectWorld,
isSelectCharacter,
updateWorldList,
updateMemberNo,
updateGuid,
updateSelectCharacter,
updateNickname,
updateSelectWorld,
updateCouponNo,
isEmptyCouponNo,
}
})