@seayoo-web/gamer-api 1.1.18 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/index.js +1418 -1072
  2. package/package.json +5 -5
  3. package/types/src/club.d.ts +11 -8
  4. package/types/src/club.define.d.ts +157 -55
  5. package/types/src/club.enums.d.ts +84 -33
  6. package/types/src/club.guards.d.ts +13 -23
  7. package/types/src/community.d.ts +20 -20
  8. package/types/src/community.define.d.ts +155 -62
  9. package/types/src/community.enums.d.ts +74 -33
  10. package/types/src/community.guards.d.ts +20 -28
  11. package/types/src/event.config/feature.base.d.ts +23 -0
  12. package/types/src/event.config/feature.cashback.d.ts +18 -0
  13. package/types/src/event.config/feature.checkIn.d.ts +7 -0
  14. package/types/src/event.config/feature.claimRewards.d.ts +7 -0
  15. package/types/src/event.config/feature.comment.d.ts +14 -0
  16. package/types/src/event.config/feature.d.ts +38 -0
  17. package/types/src/event.config/feature.follow.d.ts +24 -0
  18. package/types/src/event.config/feature.giftcode.d.ts +24 -0
  19. package/types/src/event.config/feature.invite.d.ts +12 -0
  20. package/types/src/event.config/feature.invitedRegister.d.ts +7 -0
  21. package/types/src/event.config/feature.lottery.d.ts +40 -0
  22. package/types/src/event.config/feature.lotteryDraw.d.ts +14 -0
  23. package/types/src/event.config/feature.preregister.d.ts +7 -0
  24. package/types/src/event.config/feature.quest.d.ts +22 -0
  25. package/types/src/event.config/feature.register.d.ts +7 -0
  26. package/types/src/event.config/feature.share.d.ts +16 -0
  27. package/types/src/event.config/feature.subscribe.d.ts +12 -0
  28. package/types/src/event.config/feature.survey.d.ts +14 -0
  29. package/types/src/event.config/feature.team.d.ts +14 -0
  30. package/types/src/event.config/feature.vote.d.ts +44 -0
  31. package/types/src/event.config/index.d.ts +23 -0
  32. package/types/src/event.config/reward.d.ts +55 -0
  33. package/types/src/event.d.ts +47 -38
  34. package/types/src/event.define.d.ts +19 -309
  35. package/types/src/event.engage/engage.cashback.d.ts +9 -0
  36. package/types/src/event.engage/engage.comment.d.ts +22 -0
  37. package/types/src/event.engage/engage.d.ts +46 -0
  38. package/types/src/event.engage/engage.giftcode.d.ts +5 -0
  39. package/types/src/event.engage/engage.invite.d.ts +9 -0
  40. package/types/src/event.engage/engage.lottery.d.ts +9 -0
  41. package/types/src/event.engage/engage.lotteryDraw.d.ts +40 -0
  42. package/types/src/event.engage/engage.preregister.d.ts +11 -0
  43. package/types/src/event.engage/engage.quest.d.ts +28 -0
  44. package/types/src/event.engage/engage.share.d.ts +9 -0
  45. package/types/src/event.engage/engage.subscribe.d.ts +14 -0
  46. package/types/src/event.engage/engage.survey.d.ts +7 -0
  47. package/types/src/event.engage/engage.team.d.ts +53 -0
  48. package/types/src/event.engage/engage.vote.d.ts +9 -0
  49. package/types/src/event.engage/index.d.ts +47 -0
  50. package/types/src/event.engage/reward.d.ts +89 -0
  51. package/types/src/event.enums.d.ts +298 -109
  52. package/types/src/event.guards.d.ts +22 -26
  53. package/types/src/token.d.ts +2 -2
  54. package/types/src/weixin.d.ts +4 -4
  55. package/types/src/weixin.define.d.ts +1 -1
@@ -0,0 +1,40 @@
1
+ import { type InferType } from "@seayoo-web/utils";
2
+ import { LotteryTicketStatus, type LotteryDrawAction } from "../event.enums";
3
+ import { type UserReward } from "./reward";
4
+ declare const noRewardStatus: import("@seayoo-web/utils").StringValidator<"unknown" | "pending", false, false>;
5
+ export type LotteryDrawTicket = {
6
+ /** 抽奖券 */
7
+ ticket: string;
8
+ /** 抽奖券状态 */
9
+ status: InferType<typeof noRewardStatus>;
10
+ } | {
11
+ /** 抽奖券 */
12
+ ticket: string;
13
+ /** 抽奖券状态 */
14
+ status: Exclude<LotteryTicketStatus, InferType<typeof noRewardStatus>>;
15
+ /** 抽奖券奖励物品,status = drawn 时 reward_id = 0 */
16
+ reward: UserReward;
17
+ };
18
+ export interface LotteryDrawEngagementData {
19
+ tickets: LotteryDrawTicket[];
20
+ }
21
+ export declare const LotteryDrawEngagementDataValidator: import("@seayoo-web/utils").ObjectValidator<{
22
+ tickets: ({
23
+ ticket: /*elided*/ any;
24
+ status: /*elided*/ any;
25
+ } | {
26
+ ticket: /*elided*/ any;
27
+ status: /*elided*/ any;
28
+ reward: /*elided*/ any;
29
+ })[];
30
+ }, false, false>;
31
+ export type LotteryDrawEngagementParam = {
32
+ /** 参与抽奖券的动作类型 */
33
+ action: Exclude<LotteryDrawAction, typeof LotteryDrawAction.Claim>;
34
+ } | {
35
+ /** 参与抽奖券的动作类型 */
36
+ action: typeof LotteryDrawAction.Claim;
37
+ /** 抽奖券 */
38
+ ticket: string;
39
+ };
40
+ export {};
@@ -0,0 +1,11 @@
1
+ export interface PreregisterEngagementData {
2
+ /** 用户预约平台 */
3
+ platforms: string[];
4
+ }
5
+ export declare const PreregisterEngagementDataValidator: import("@seayoo-web/utils").ObjectValidator<{
6
+ platforms: string[];
7
+ }, false, false>;
8
+ export interface PreregisterEngagementParam {
9
+ /** 用户预约平台 */
10
+ platforms: string[];
11
+ }
@@ -0,0 +1,28 @@
1
+ import { type QuestObjective } from "../event.enums";
2
+ export interface QuestEngagementData {
3
+ /** 任务目标 */
4
+ objective: QuestObjective;
5
+ /** 个人任务进度值 */
6
+ progress: number;
7
+ /** 个人任务目标值 */
8
+ completion_value?: number;
9
+ /** 组队任务进度信息 */
10
+ team?: {
11
+ /** 进度值 */
12
+ progress: number;
13
+ /** 目标值 */
14
+ completion_value?: number;
15
+ /** 队伍信息 */
16
+ players: {
17
+ /** 用户 id,含当前用户 */
18
+ user_id: number;
19
+ /** 角色名 */
20
+ role_name: string;
21
+ /** 是否为队长 */
22
+ is_leader: boolean;
23
+ /** 进度值 */
24
+ progress?: number;
25
+ }[];
26
+ };
27
+ }
28
+ export declare const QuestEngagementDataValidator: import("@seayoo-web/utils").ObjectValidator<QuestEngagementData, false, false>;
@@ -0,0 +1,9 @@
1
+ export interface ShareEngagementData {
2
+ /** 用户分享到对应的平台 */
3
+ platform: string;
4
+ }
5
+ export declare const ShareEngagementDataValidator: import("@seayoo-web/utils").ObjectValidator<ShareEngagementData, false, false>;
6
+ export interface ShareEngagementParam {
7
+ /** 用户分享到对应的平台 */
8
+ platform: string;
9
+ }
@@ -0,0 +1,14 @@
1
+ export interface WeixinSubscribeEngagementData {
2
+ weixin_openid: string;
3
+ }
4
+ export declare const WeixinSubscribeEngagementDataValidator: import("@seayoo-web/utils").ObjectValidator<WeixinSubscribeEngagementData, false, false>;
5
+ export interface SubscribeEngagementParam {
6
+ /**
7
+ * 小程序调用 wx.requestSubscribeMessage 并收到 success 回调后,得到的订阅结果。
8
+ *
9
+ * - key 为模版 ID
10
+ *
11
+ * - value 为订阅结果。示例 `accept` `reject` `ban` `filter`
12
+ */
13
+ subscribe_results: Record<string, string>;
14
+ }
@@ -0,0 +1,7 @@
1
+ export interface SurveyEngagementData {
2
+ /** 用户填写问卷流水号 */
3
+ serial_number: number;
4
+ }
5
+ export declare const SurveyEngagementDataValidator: import("@seayoo-web/utils").ObjectValidator<{
6
+ serial_number: number;
7
+ }, false, false>;
@@ -0,0 +1,53 @@
1
+ import { type TeamAction, type TeamVisibility } from "../event.enums";
2
+ /** 组队玩法的参与记录 */
3
+ export interface TeamEngagement {
4
+ /** 组队码 */
5
+ team_code: string;
6
+ /** 队长角色名称 */
7
+ leader_name: string;
8
+ /** 队员数量 */
9
+ total_members: number;
10
+ }
11
+ export declare const TeamEngagementValidator: import("@seayoo-web/utils").ObjectValidator<TeamEngagement, false, false>;
12
+ export interface TeamMember {
13
+ /** 是否为队长 */
14
+ is_leader: boolean;
15
+ /** 是否为当前登录用户 */
16
+ is_myself?: boolean;
17
+ /** 角色名 */
18
+ role_name: string;
19
+ /** 服务器名 */
20
+ server_name: string;
21
+ }
22
+ export declare const TeamMemberValidator: import("@seayoo-web/utils").ObjectValidator<TeamMember, false, false>;
23
+ export interface TeamEngagementData {
24
+ /** 组队码 */
25
+ team_code: string;
26
+ /** 队伍可见性 */
27
+ visibility: TeamVisibility;
28
+ /** 队员信息 */
29
+ members: TeamMember[];
30
+ }
31
+ export declare const TeamEngagementDataValidator: import("@seayoo-web/utils").ObjectValidator<TeamEngagementData, false, false>;
32
+ export type TeamEngagementParam = {
33
+ /** 操作类型 */
34
+ action: typeof TeamAction.ChangeVisibility;
35
+ /** 组队码 */
36
+ team_code: string;
37
+ /** 设置队伍的可见性 */
38
+ visibility: TeamVisibility;
39
+ } | {
40
+ /** 操作类型 */
41
+ action: typeof TeamAction.Assemble;
42
+ /** 设置队伍的可见性 */
43
+ visibility?: TeamVisibility;
44
+ } | {
45
+ action: typeof TeamAction.Join | typeof TeamAction.Disband;
46
+ /** 组队码 */
47
+ team_code: string;
48
+ } | {
49
+ /** 操作类型 */
50
+ action: typeof TeamAction.Query;
51
+ /** 组队码 */
52
+ team_code?: string;
53
+ };
@@ -0,0 +1,9 @@
1
+ export interface VoteEngagementData {
2
+ /** 用户投票选项 */
3
+ option_sn: string;
4
+ }
5
+ export declare const VoteEngagementDataValidator: import("@seayoo-web/utils").ObjectValidator<VoteEngagementData, false, false>;
6
+ export interface VoteEngagementParam {
7
+ /** 选项的 sn */
8
+ option_sn: string;
9
+ }
@@ -0,0 +1,47 @@
1
+ import { type UserEngagementData } from "./engage";
2
+ import { type LotteryEngagementParam } from "./engage.lottery";
3
+ import { type LotteryDrawEngagementParam } from "./engage.lotteryDraw";
4
+ import { type ShareEngagementParam } from "./engage.share";
5
+ import { type SubscribeEngagementParam } from "./engage.subscribe";
6
+ import { type TeamEngagementParam } from "./engage.team";
7
+ import { type VoteEngagementParam } from "./engage.vote";
8
+ import { type Reward } from "./reward";
9
+ import type { CommentEngagementParam } from "./engage.comment";
10
+ import type { PreregisterEngagementParam } from "./engage.preregister";
11
+ import type { FeatureType } from "../event.enums";
12
+ export * from "./engage";
13
+ export * from "./reward";
14
+ export type UserEngagement = {
15
+ /** 参与记录 ID */
16
+ engagement_id: number;
17
+ /** 用户 ID */
18
+ user_id: string;
19
+ /** 活动 ID */
20
+ event_id: number;
21
+ /** 玩法 ID */
22
+ feature_id: number;
23
+ /** 玩法参与次数 */
24
+ sequence: number;
25
+ /** 附带的数据,由 feature_id 的类型决定 */
26
+ data?: UserEngagementData;
27
+ server_id?: string;
28
+ role_id?: string;
29
+ created_at: number;
30
+ /** 参与奖励列表 */
31
+ rewards?: Reward[];
32
+ };
33
+ export declare const UserEngagementValidator: import("@seayoo-web/utils").ObjectValidator<UserEngagement, false, false> & {
34
+ plain: never;
35
+ optional: never;
36
+ maybeNull: never;
37
+ lock: never;
38
+ };
39
+ /**
40
+ * 用户参与时需要提供的参数信息
41
+ */
42
+ export type EngagementParam = PreregisterEngagementParam | LotteryEngagementParam | CommentEngagementParam | ShareEngagementParam | VoteEngagementParam | SubscribeEngagementParam | TeamEngagementParam | LotteryDrawEngagementParam;
43
+ export type EngagementFeatureType = FeatureType | unknown;
44
+ /**
45
+ * 根据玩法类型推导需要提交的参数数据类型
46
+ */
47
+ export type InferEngagementParam<T extends EngagementFeatureType> = [unknown] extends [T] ? EngagementParam : [T] extends ["preregister"] ? PreregisterEngagementParam : [T] extends ["lottery"] ? LotteryEngagementParam : [T] extends ["comment"] ? CommentEngagementParam : [T] extends ["share"] ? ShareEngagementParam : [T] extends ["vote"] ? VoteEngagementParam : [T] extends ["weixin_subscribe"] ? SubscribeEngagementParam : null;
@@ -0,0 +1,89 @@
1
+ import { ClaimRewardStatus, GamerItemType, RewardItemType, type FeatureType, type RewardSource, type RewardStatusSuffix } from "../event.enums";
2
+ import { type UserEngagementData } from "./engage";
3
+ export interface Reward {
4
+ /** 用户奖励记录 id */
5
+ reward_id: number;
6
+ /** 奖励道具 id */
7
+ reward_item_id: number;
8
+ /** 奖励道具类型 */
9
+ reward_item_type: RewardItemType;
10
+ /** 奖励道具数量 */
11
+ reward_count: number;
12
+ /** 奖励状态 */
13
+ reward_status: RewardStatusSuffix;
14
+ /** 奖励来源 */
15
+ reward_source: RewardSource;
16
+ /** 奖励道具名称 */
17
+ reward_item_name: string;
18
+ /** 奖励道具图片地址 */
19
+ reward_item_icon_url: string;
20
+ /** 奖励道具描述 */
21
+ reward_item_desc?: string;
22
+ /** 奖励道具评级,用于前端展示 */
23
+ reward_item_rating: number;
24
+ /** 领奖时间 */
25
+ receive_time: number;
26
+ /** 提供额外扩展信息 */
27
+ extra_data?: UserEngagementData | Record<string, unknown>;
28
+ }
29
+ export declare const RewardValidator: import("@seayoo-web/utils").ObjectValidator<Reward, false, false>;
30
+ export interface UserReward {
31
+ /** 用户奖励记录 id */
32
+ reward_id: number;
33
+ /** 奖励道具 id */
34
+ reward_item_id: number;
35
+ /** 产生奖励的来源 */
36
+ reward_source: RewardSource;
37
+ /** 奖励道具名称 */
38
+ reward_item_name: string;
39
+ /** 奖励道具类型 */
40
+ reward_item_type: GamerItemType;
41
+ /** 奖励道具图片地址 */
42
+ reward_item_icon_url: string;
43
+ /** 奖励道具描述 */
44
+ reward_item_desc?: string;
45
+ /** 奖励道具评级,用于前端展示 */
46
+ reward_item_rating: number;
47
+ /** 奖励道具数量 */
48
+ reward_amount: number;
49
+ /** 奖励状态 */
50
+ reward_status: ClaimRewardStatus;
51
+ /** 活动 ID */
52
+ event_id: number;
53
+ /** 活动名称 */
54
+ event_name: string;
55
+ /** 活动玩法 ID */
56
+ feature_id: number;
57
+ /** 参与记录 ID */
58
+ engagement_id: number;
59
+ /** 玩法类型 */
60
+ feature_type: FeatureType;
61
+ /** 领奖时间 */
62
+ receive_time: number;
63
+ /** 提供额外扩展信息,比如收获地址等 */
64
+ extra_data?: Record<string, unknown>;
65
+ }
66
+ export declare const UserRewardValidator: import("@seayoo-web/utils").ObjectValidator<UserReward, false, false>;
67
+ export interface EngageReward {
68
+ /** 用户奖励记录 id(微信红包类型奖励需要前端请求一次领奖 api) */
69
+ reward_id: number;
70
+ /** 奖励道具 id */
71
+ reward_item_id: number;
72
+ /** 奖励道具名称 */
73
+ reward_item_name: string;
74
+ /** 奖励道具类型 */
75
+ reward_item_type: RewardItemType;
76
+ /** 奖励道具图片地址 */
77
+ reward_item_icon_url: string;
78
+ /** 奖励道具描述 */
79
+ reward_item_desc?: string;
80
+ /** 奖励道具数量 */
81
+ reward_amount: number;
82
+ /** 奖励状态 */
83
+ reward_status: RewardStatusSuffix;
84
+ /** 产生奖励的来源 */
85
+ reward_source: RewardSource;
86
+ /** 提供额外扩展信息,例如:礼包码的值等 */
87
+ extra_data?: Record<string, unknown>;
88
+ }
89
+ export declare const EngageRewardValidator: import("@seayoo-web/utils").ObjectValidator<EngageReward, false, false>;