13
13
import rest_framework_simplejwt .tokens
14
14
import rest_framework_simplejwt .views
15
15
16
+ import business .constants
16
17
import business .models as business_models
17
18
import business .validators
18
19
@@ -151,26 +152,26 @@ def validate(self, attrs):
151
152
152
153
class TargetSerializer (rest_framework .serializers .Serializer ):
153
154
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 ,
156
157
required = False ,
157
158
)
158
159
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 ,
161
162
required = False ,
162
163
)
163
164
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 ,
166
167
required = False ,
167
168
)
168
169
categories = rest_framework .serializers .ListField (
169
170
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 ,
172
173
),
173
- max_length = 20 ,
174
+ max_length = business . constants . TARGET_CATEGORY_MAX_ITEMS ,
174
175
required = False ,
175
176
allow_empty = True ,
176
177
)
@@ -202,31 +203,31 @@ def validate(self, data):
202
203
203
204
class PromoCreateSerializer (rest_framework .serializers .ModelSerializer ):
204
205
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 ,
207
208
required = True ,
208
209
)
209
210
image_url = rest_framework .serializers .CharField (
210
211
required = False ,
211
- max_length = 350 ,
212
+ max_length = business . constants . PROMO_IMAGE_URL_MAX_LENGTH ,
212
213
validators = [
213
214
django .core .validators .URLValidator (schemes = ['http' , 'https' ]),
214
215
],
215
216
)
216
217
target = TargetSerializer (required = True , allow_null = True )
217
218
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 ,
220
221
required = False ,
221
222
allow_null = True ,
222
223
)
223
224
promo_unique = rest_framework .serializers .ListField (
224
225
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 ,
227
228
),
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 ,
230
231
required = False ,
231
232
allow_null = True ,
232
233
)
@@ -267,7 +268,7 @@ def to_representation(self, instance):
267
268
data = super ().to_representation (instance )
268
269
data ['target' ] = instance .target
269
270
270
- if instance .mode == business_models . Promo . MODE_UNIQUE :
271
+ if instance .mode == business . constants . PROMO_MODE_UNIQUE :
271
272
data ['promo_unique' ] = [
272
273
code .code for code in instance .unique_codes .all ()
273
274
]
@@ -318,18 +319,20 @@ class Meta:
318
319
)
319
320
320
321
def get_promo_unique (self , obj ):
321
- if obj .mode == business_models . Promo . MODE_UNIQUE :
322
+ if obj .mode == business . constants . PROMO_MODE_UNIQUE :
322
323
return [code .code for code in obj .unique_codes .all ()]
323
324
324
325
return None
325
326
326
327
def get_like_count (self , obj ):
328
+ # TODO
327
329
return 0
328
330
329
331
def get_used_count (self , obj ):
330
- if obj .mode == business_models . Promo . MODE_UNIQUE :
332
+ if obj .mode == business . constants . PROMO_MODE_UNIQUE :
331
333
return obj .unique_codes .filter (is_used = True ).count ()
332
334
335
+ # TODO
333
336
return 0
334
337
335
338
def get_active (self , obj ):
@@ -354,7 +357,7 @@ def get_active(self, obj):
354
357
355
358
def to_representation (self , instance ):
356
359
data = super ().to_representation (instance )
357
- if instance .mode == business_models . Promo . MODE_COMMON :
360
+ if instance .mode == business . constants . PROMO_MODE_COMMON :
358
361
data .pop ('promo_unique' , None )
359
362
else :
360
363
data .pop ('promo_common' , None )
@@ -368,13 +371,13 @@ class PromoDetailSerializer(rest_framework.serializers.ModelSerializer):
368
371
read_only = True ,
369
372
)
370
373
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 ,
373
376
required = True ,
374
377
)
375
378
image_url = rest_framework .serializers .CharField (
376
379
required = False ,
377
- max_length = 350 ,
380
+ max_length = business . constants . PROMO_IMAGE_URL_MAX_LENGTH ,
378
381
validators = [
379
382
django .core .validators .URLValidator (schemes = ['http' , 'https' ]),
380
383
],
@@ -407,7 +410,7 @@ class Meta:
407
410
)
408
411
409
412
def get_promo_unique (self , obj ):
410
- if obj .mode == business_models . Promo . MODE_UNIQUE :
413
+ if obj .mode == business . constants . PROMO_MODE_UNIQUE :
411
414
return [code .code for code in obj .unique_codes .all ()]
412
415
413
416
return None
@@ -432,10 +435,12 @@ def validate(self, data):
432
435
return validator .validate ()
433
436
434
437
def get_like_count (self , obj ):
438
+ # TODO
435
439
return 0
436
440
437
441
def get_used_count (self , obj ):
438
- if obj .mode == business_models . Promo . MODE_UNIQUE :
442
+ if obj .mode == business . constants . PROMO_MODE_UNIQUE :
439
443
return obj .unique_codes .filter (is_used = True ).count ()
440
444
445
+ # TODO
441
446
return 0
0 commit comments