react-playmakers
Version:
React wrapper providing utilities for PlayMakers integration
57 lines (56 loc) • 1.62 kB
TypeScript
export interface Quest {
id: string;
projectId: string;
questTypeId: string;
name: string;
descriptions: {
short: string;
post: string[];
pre: string[];
} | null;
thumbnail: string | null;
data: string | null;
points: number;
userQuestsLimit: number;
periodic: "hourly" | "daily" | "weekly" | "monthly" | null;
endDate?: string;
state: string;
}
export interface QuestWithQuestType extends Quest {
questType: QuestType;
}
export type CreateQuest = Partial<Omit<Quest, "id">>;
export type UpdateQuest = Partial<Omit<Quest, "questTypeId" | "id" | "projectId">>;
export interface ExtendedQuest extends QuestWithQuestType {
complete: (creatorData: Record<string, unknown>) => Promise<UserQuest>;
push: (updates: UpdateQuest) => Promise<Quest>;
delete: () => Promise<void>;
}
export interface UserQuest extends QuestWithQuestType {
status: string;
createdAt: string;
userId: string;
}
export interface QuestType {
id: string;
name: string;
descriptions: {
short: string;
post: string[];
pre: string[];
} | null;
display: string;
category: string;
title: string;
thumbnail: string;
data: string;
checkOnLogin: boolean;
}
export type QuestTypeFormType = "text[short]" | "text[long]" | "number" | "date" | "boolean" | "select" | "multiSelect";
export interface QuestTypeData {
frontType: QuestTypeFormType;
key: string;
descriptions: string[];
type: string;
required?: boolean;
}