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
« 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#
13from __future__ import annotations
15from typing import Literal, TypeGuard, get_args
16from flipdare.generated.shared.backend.app_job_type import AppJobType
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]
32def is_scheduled_job(job: AppJobType) -> TypeGuard[ScheduledJobs]:
33 return job in get_args(ScheduledJobs)
36def is_trigger_job(job: AppJobType) -> TypeGuard[TriggerJobType]:
37 return job in get_args(TriggerJobType)
40def is_cron_job(job: AppJobType) -> TypeGuard[CronJobType]:
41 return job in get_args(CronJobType)
44def is_command_job(job: AppJobType) -> TypeGuard[CommandJobType]:
45 return job in get_args(CommandJobType)
48def is_report_job(job: AppJobType) -> TypeGuard[ReportJobType]:
49 return job in get_args(ReportJobType)
52CronWithResultType = Literal[AppJobType.CR_RESTRICT_INACTIVE]
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]
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]
93CommandJobType = Literal[
94 AppJobType.COMMAND_TYPESENSE_REINDEX,
95 AppJobType.COMMAND_TYPESENSE_COMPACT,
96 AppJobType.COMMAND_UPDATE_EXCHANGE_RATE,
97 AppJobType.COMMAND_FIREBASE_CLEANUP,
98]
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]
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]
136TaskJobType = ReportJobType | CommandJobType | CronJobType