1313import rest_framework_simplejwt .tokens
1414import rest_framework_simplejwt .views
1515
16+ import business .constants
1617import business .models as business_models
1718import business .validators
1819
@@ -151,26 +152,26 @@ def validate(self, attrs):
151152
152153class TargetSerializer (rest_framework .serializers .Serializer ):
153154 age_from = rest_framework .serializers .IntegerField (
154- min_value = 0 ,
155- max_value = 100 ,
155+ min_value = business . constants . TARGET_AGE_MIN ,
156+ max_value = business . constants . TARGET_AGE_MAX ,
156157 required = False ,
157158 )
158159 age_until = rest_framework .serializers .IntegerField (
159- min_value = 0 ,
160- max_value = 100 ,
160+ min_value = business . constants . TARGET_AGE_MIN ,
161+ max_value = business . constants . TARGET_AGE_MAX ,
161162 required = False ,
162163 )
163164 country = rest_framework .serializers .CharField (
164- max_length = 2 ,
165- min_length = 2 ,
165+ max_length = business . constants . TARGET_COUNTRY_CODE_LENGTH ,
166+ min_length = business . constants . TARGET_COUNTRY_CODE_LENGTH ,
166167 required = False ,
167168 )
168169 categories = rest_framework .serializers .ListField (
169170 child = rest_framework .serializers .CharField (
170- min_length = 2 ,
171- max_length = 20 ,
171+ min_length = business . constants . TARGET_CATEGORY_MIN_LENGTH ,
172+ max_length = business . constants . TARGET_CATEGORY_MAX_LENGTH ,
172173 ),
173- max_length = 20 ,
174+ max_length = business . constants . TARGET_CATEGORY_MAX_ITEMS ,
174175 required = False ,
175176 allow_empty = True ,
176177 )
@@ -202,31 +203,31 @@ def validate(self, data):
202203
203204class PromoCreateSerializer (rest_framework .serializers .ModelSerializer ):
204205 description = rest_framework .serializers .CharField (
205- min_length = 10 ,
206- max_length = 300 ,
206+ min_length = business . constants . PROMO_DESC_MIN_LENGTH ,
207+ max_length = business . constants . PROMO_DESC_MAX_LENGTH ,
207208 required = True ,
208209 )
209210 image_url = rest_framework .serializers .CharField (
210211 required = False ,
211- max_length = 350 ,
212+ max_length = business . constants . PROMO_IMAGE_URL_MAX_LENGTH ,
212213 validators = [
213214 django .core .validators .URLValidator (schemes = ['http' , 'https' ]),
214215 ],
215216 )
216217 target = TargetSerializer (required = True , allow_null = True )
217218 promo_common = rest_framework .serializers .CharField (
218- min_length = 5 ,
219- max_length = 30 ,
219+ min_length = business . constants . PROMO_COMMON_CODE_MIN_LENGTH ,
220+ max_length = business . constants . PROMO_COMMON_CODE_MAX_LENGTH ,
220221 required = False ,
221222 allow_null = True ,
222223 )
223224 promo_unique = rest_framework .serializers .ListField (
224225 child = rest_framework .serializers .CharField (
225- min_length = 3 ,
226- max_length = 30 ,
226+ min_length = business . constants . PROMO_UNIQUE_CODE_MIN_LENGTH ,
227+ max_length = business . constants . PROMO_UNIQUE_CODE_MAX_LENGTH ,
227228 ),
228- min_length = 1 ,
229- max_length = 5000 ,
229+ min_length = business . constants . PROMO_UNIQUE_LIST_MIN_ITEMS ,
230+ max_length = business . constants . PROMO_UNIQUE_LIST_MAX_ITEMS ,
230231 required = False ,
231232 allow_null = True ,
232233 )
@@ -267,7 +268,7 @@ def to_representation(self, instance):
267268 data = super ().to_representation (instance )
268269 data ['target' ] = instance .target
269270
270- if instance .mode == business_models . Promo . MODE_UNIQUE :
271+ if instance .mode == business . constants . PROMO_MODE_UNIQUE :
271272 data ['promo_unique' ] = [
272273 code .code for code in instance .unique_codes .all ()
273274 ]
@@ -318,18 +319,20 @@ class Meta:
318319 )
319320
320321 def get_promo_unique (self , obj ):
321- if obj .mode == business_models . Promo . MODE_UNIQUE :
322+ if obj .mode == business . constants . PROMO_MODE_UNIQUE :
322323 return [code .code for code in obj .unique_codes .all ()]
323324
324325 return None
325326
326327 def get_like_count (self , obj ):
328+ # TODO
327329 return 0
328330
329331 def get_used_count (self , obj ):
330- if obj .mode == business_models . Promo . MODE_UNIQUE :
332+ if obj .mode == business . constants . PROMO_MODE_UNIQUE :
331333 return obj .unique_codes .filter (is_used = True ).count ()
332334
335+ # TODO
333336 return 0
334337
335338 def get_active (self , obj ):
@@ -354,7 +357,7 @@ def get_active(self, obj):
354357
355358 def to_representation (self , instance ):
356359 data = super ().to_representation (instance )
357- if instance .mode == business_models . Promo . MODE_COMMON :
360+ if instance .mode == business . constants . PROMO_MODE_COMMON :
358361 data .pop ('promo_unique' , None )
359362 else :
360363 data .pop ('promo_common' , None )
@@ -368,13 +371,13 @@ class PromoDetailSerializer(rest_framework.serializers.ModelSerializer):
368371 read_only = True ,
369372 )
370373 description = rest_framework .serializers .CharField (
371- min_length = 10 ,
372- max_length = 300 ,
374+ min_length = business . constants . PROMO_DESC_MIN_LENGTH ,
375+ max_length = business . constants . PROMO_DESC_MAX_LENGTH ,
373376 required = True ,
374377 )
375378 image_url = rest_framework .serializers .CharField (
376379 required = False ,
377- max_length = 350 ,
380+ max_length = business . constants . PROMO_IMAGE_URL_MAX_LENGTH ,
378381 validators = [
379382 django .core .validators .URLValidator (schemes = ['http' , 'https' ]),
380383 ],
@@ -407,7 +410,7 @@ class Meta:
407410 )
408411
409412 def get_promo_unique (self , obj ):
410- if obj .mode == business_models . Promo . MODE_UNIQUE :
413+ if obj .mode == business . constants . PROMO_MODE_UNIQUE :
411414 return [code .code for code in obj .unique_codes .all ()]
412415
413416 return None
@@ -432,10 +435,12 @@ def validate(self, data):
432435 return validator .validate ()
433436
434437 def get_like_count (self , obj ):
438+ # TODO
435439 return 0
436440
437441 def get_used_count (self , obj ):
438- if obj .mode == business_models . Promo . MODE_UNIQUE :
442+ if obj .mode == business . constants . PROMO_MODE_UNIQUE :
439443 return obj .unique_codes .filter (is_used = True ).count ()
440444
445+ # TODO
441446 return 0
0 commit comments