Coverage for functions \ flipdare \ wrapper \ invite_wrapper.py: 74%
125 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 flipdare.generated.model.invite_model import InviteKeys, InviteModel
16from flipdare.generated.shared.model.model_obj_type import ModelObjType
17from flipdare.wrapper._persisted_wrapper import PersistedWrapper
19__all__ = ["InviteWrapper"]
21_K = InviteKeys
24class InviteWrapper(PersistedWrapper[InviteModel]):
25 MODEL_CLASS = InviteModel
27 @property
28 def processing_complete(self) -> bool:
29 return (
30 self._model.user_created
31 and self._model.email_sent
32 and self._model.friends_created
33 and self._model.search_indexed
34 )
36 @property
37 def internal_state(self) -> str:
38 state_parts = []
39 if self._model.user_created:
40 state_parts.append("user_created")
41 if self._model.email_sent:
42 state_parts.append("email_sent")
43 if self._model.friends_created:
44 state_parts.append("friends_created")
45 if self._model.search_indexed:
46 state_parts.append("indexed")
47 return ",".join(state_parts)
49 # <AUTO_GENERATED_CONTENT> - do not edit
51 @property
52 def from_uid(self) -> str:
53 return self._model.from_uid
55 @from_uid.setter
56 def from_uid(self, value: str) -> None:
57 self.update_field(_K.FROM_UID, value)
59 @property
60 def from_name(self) -> str:
61 return self._model.from_name
63 @from_name.setter
64 def from_name(self, value: str) -> None:
65 self.update_field(_K.FROM_NAME, value)
67 @property
68 def from_email(self) -> str:
69 return self._model.from_email
71 @from_email.setter
72 def from_email(self, value: str) -> None:
73 self.update_field(_K.FROM_EMAIL, value)
75 @property
76 def to_uid(self) -> str:
77 return self._model.to_uid
79 @to_uid.setter
80 def to_uid(self, value: str) -> None:
81 self.update_field(_K.TO_UID, value)
83 @property
84 def to_name(self) -> str | None:
85 return self._model.to_name
87 @to_name.setter
88 def to_name(self, value: str | None) -> None:
89 self.update_field(_K.TO_NAME, value)
91 @property
92 def to_email(self) -> str:
93 return self._model.to_email
95 @to_email.setter
96 def to_email(self, value: str) -> None:
97 self.update_field(_K.TO_EMAIL, value)
99 @property
100 def obj_id(self) -> str:
101 return self._model.obj_id
103 @obj_id.setter
104 def obj_id(self, value: str) -> None:
105 self.update_field(_K.OBJ_ID, value)
107 @property
108 def obj_type(self) -> ModelObjType:
109 return self._model.obj_type
111 @obj_type.setter
112 def obj_type(self, value: ModelObjType) -> None:
113 self.update_field(_K.OBJ_TYPE, value)
115 @property
116 def message(self) -> str:
117 return self._model.message
119 @message.setter
120 def message(self, value: str) -> None:
121 self.update_field(_K.MESSAGE, value)
123 # base internal fields
124 @property
125 def version(self) -> int:
126 return self._model.version
128 @version.setter
129 def version(self, value: int) -> None:
130 self.update_field(_K.VERSION, value)
132 @property
133 def processed(self) -> bool:
134 return self._model.processed
136 @processed.setter
137 def processed(self, value: bool) -> None:
138 self.update_field(_K.PROCESSED, value)
140 @property
141 def error_count(self) -> int:
142 return self._model.error_count
144 @error_count.setter
145 def error_count(self, value: int) -> None:
146 self.update_field(_K.ERROR_COUNT, value)
148 # invite specific internal fields
149 @property
150 def user_created(self) -> bool:
151 return self._model.user_created
153 @user_created.setter
154 def user_created(self, value: bool) -> None:
155 self.update_field(_K.USER_CREATED, value)
157 @property
158 def email_sent(self) -> bool:
159 return self._model.email_sent
161 @email_sent.setter
162 def email_sent(self, value: bool) -> None:
163 self.update_field(_K.EMAIL_SENT, value)
165 @property
166 def friends_created(self) -> bool:
167 return self._model.friends_created
169 @friends_created.setter
170 def friends_created(self, value: bool) -> None:
171 self.update_field(_K.FRIENDS_CREATED, value)
173 @property
174 def search_indexed(self) -> bool:
175 return self._model.search_indexed
177 @search_indexed.setter
178 def search_indexed(self, value: bool) -> None:
179 self.update_field(_K.SEARCH_INDEXED, value)
181 @property
182 def reminder_sent(self) -> bool:
183 return self._model.reminder_sent
185 @reminder_sent.setter
186 def reminder_sent(self, value: bool) -> None:
187 self.update_field(_K.REMINDER_SENT, value)
189 # </AUTO_GENERATED_CONTENT> - do not edit