Coverage for functions \ flipdare \ job_types.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-05-08 12:22 +1000

1#!/usr/bin/env python 

2# Copyright (c) 2026 Flipdare Pty Ltd. All rights reserved. 

3# 

4# This file is part of Flipdare's proprietary software and contains 

5# confidential and copyrighted material. Unauthorised copying, 

6# modification, distribution, or use of this file is strictly 

7# prohibited without prior written permission from Flipdare Pty Ltd. 

8# 

9# This software includes third-party components licensed under MIT, 

10# BSD, and Apache 2.0 licences. See THIRD_PARTY_NOTICES for details. 

11# 

12 

13from __future__ import annotations 

14 

15from typing import Literal, TypeGuard, get_args 

16from flipdare.generated.shared.backend.app_job_type import AppJobType 

17 

18__all__ = [ 

19 "is_trigger_job", 

20 "is_scheduled_job", 

21 "is_cron_job", 

22 "is_command_job", 

23 "is_report_job", 

24 "CronJobType", 

25 "CommandJobType", 

26 "ReportJobType", 

27 "TriggerJobType", 

28 "TaskJobType", 

29] 

30 

31 

32def is_scheduled_job(job: AppJobType) -> TypeGuard[ScheduledJobs]: 

33 return job in get_args(ScheduledJobs) 

34 

35 

36def is_trigger_job(job: AppJobType) -> TypeGuard[TriggerJobType]: 

37 return job in get_args(TriggerJobType) 

38 

39 

40def is_cron_job(job: AppJobType) -> TypeGuard[CronJobType]: 

41 return job in get_args(CronJobType) 

42 

43 

44def is_command_job(job: AppJobType) -> TypeGuard[CommandJobType]: 

45 return job in get_args(CommandJobType) 

46 

47 

48def is_report_job(job: AppJobType) -> TypeGuard[ReportJobType]: 

49 return job in get_args(ReportJobType) 

50 

51 

52CronWithResultType = Literal[AppJobType.CR_RESTRICT_INACTIVE] 

53 

54 

55ScheduledJobs = Literal[ 

56 AppJobType.SCHED_TWO_MINS, 

57 AppJobType.SCHED_FIVE_MINS, 

58 AppJobType.SCHED_FIFTEEN_MINS, 

59 AppJobType.SCHED_ONE_HOUR, 

60 AppJobType.SCHED_TWO_HOURS, 

61 AppJobType.SCHED_FOUR_HOURS, 

62 AppJobType.SCHED_SIX_HOURS, 

63 AppJobType.SCHED_TWELVE_HOURS, 

64 AppJobType.SCHED_ONE_DAY, 

65 AppJobType.SCHED_THREE_DAYS, 

66 AppJobType.SCHED_ONE_WEEK, 

67] 

68 

69CronJobType = Literal[ 

70 AppJobType.CR_USER_UNPROCESSED, 

71 AppJobType.CR_USER_DAILY_SUMMARY, 

72 AppJobType.CR_USER_DECAY_REPUTATION, 

73 AppJobType.CR_GROUP_UNPROCESSED, 

74 AppJobType.CR_GROUP_MEMBER_UNPROCESSED, 

75 AppJobType.CR_GROUP_MEMBER_STATUS_UNPROCESSED, 

76 AppJobType.CR_CONTENT_UNPROCESSED, 

77 AppJobType.CR_INVITE_UNPROCESSED, 

78 AppJobType.CR_INVITE_REMINDER, 

79 AppJobType.CR_FRIEND_UNPROCESSED, 

80 AppJobType.CR_DARE_VOTE, 

81 AppJobType.CR_DARE_UNPROCESSED, 

82 AppJobType.CR_FLAG_UNPROCESSED, 

83 AppJobType.CR_RESTRICT_EXPIRED, 

84 AppJobType.CR_RESTRICT_INACTIVE, 

85 AppJobType.CR_PAYMENT_UNPROCESSED, 

86 AppJobType.CR_REFUND_UNPROCESSED, 

87 AppJobType.CR_PAYMENT_CAPTURE, 

88 AppJobType.CR_PAYMENT_REAUTHORIZE, 

89 AppJobType.CR_PAYMENT_TRANSFER, 

90 AppJobType.CR_PAYMENT_REFUND, 

91] 

92 

93CommandJobType = Literal[ 

94 AppJobType.COMMAND_TYPESENSE_REINDEX, 

95 AppJobType.COMMAND_TYPESENSE_COMPACT, 

96 AppJobType.COMMAND_UPDATE_EXCHANGE_RATE, 

97 AppJobType.COMMAND_FIREBASE_CLEANUP, 

98] 

99 

100ReportJobType = Literal[ 

101 AppJobType.REPORT_DARE_REVIEW_REQUIRED, 

102 AppJobType.REPORT_DARE_AUTO_RESTRICTED, 

103 AppJobType.REPORT_ISSUE_WAITING_ADMIN, 

104 AppJobType.REPORT_PAYMENT_ISSUE_WAITING_ADMIN, 

105 AppJobType.REPORT_FLAG_UNACKNOWLEDGED, 

106 AppJobType.REPORT_FLAG_DISPUTED_WAITING_ADMIN, 

107 AppJobType.REPORT_RESTRICT_AUTO_PERMANENT, 

108 AppJobType.REPORT_RESTRICT_AUTO_NOT_PERMANENT, 

109 AppJobType.REPORT_RESTRICT_INACTIVE, 

110 AppJobType.REPORT_PAYMENT_CRITICAL_ISSUES, 

111 AppJobType.REPORT_JOB_TYPE_STATS, 

112 AppJobType.REPORT_LOG_STATS, 

113 AppJobType.REPORT_ERROR_STATS, 

114 AppJobType.REPORT_PAYMENT_STATS, 

115] 

116 

117TriggerJobType = Literal[ 

118 AppJobType.TR_USER, 

119 AppJobType.TR_USER_ANONYMIZE, 

120 AppJobType.TR_CONTENT, 

121 AppJobType.TR_CONTENT_DELETE, 

122 AppJobType.TR_INVITE, 

123 AppJobType.TR_FRIEND, 

124 AppJobType.TR_CHAT, 

125 AppJobType.TR_CHAT_DELETE, 

126 AppJobType.TR_DARE, 

127 AppJobType.TR_DARE_DELETE, 

128 AppJobType.TR_GROUP, 

129 AppJobType.TR_GROUP_MEMBER, 

130 AppJobType.TR_FLAG, 

131 AppJobType.TR_PLEDGE, 

132 AppJobType.TR_PLEDGE_DELETE, 

133] 

134 

135 

136TaskJobType = ReportJobType | CommandJobType | CronJobType