import factory import random import time, datetime from django.db import models from pairent_app.models import Apartament factory.Faker.override_default_locale('ru_RU'); class PhoneNumber(factory.declarations.BaseDeclaration): def evaluate(self, instance, step, extra): return '+799' + str(random.randint(0, 99999999)).zfill(8); class Random(factory.declarations.BaseDeclaration): def __init__(self, min, max = None, multiply = 1): if (max == None): self.min = 0; self.max = min; else: self.min = min; self.max = max; self.multiply = multiply; super().__init__(); def evaluate(self, instance, step, extra): if (self.multiply != None): return random.randint(self.min, self.max) * self.multiply; return random.randint(self.min, self.max); class Date(factory.declarations.BaseDeclaration): def evaluate(self, instance, step, extra): # year_before = time.time() - (60 * 60 * 24 * 30 * 12); return datetime.datetime(2023, random.randint(1,12), random.randint(1,27)).strftime("%G-%m-%d"); class ApartmentFactory(factory.django.DjangoModelFactory): class Meta: model = Apartament # Base data price = Random(3,10,5000); lastPrice = Random(3,10,5000); bail = Random(2,10,1000); agencyCommission = Random(3,5,2500); utilitiesPrice = Random(4,8,1000) minimumLeasePeriod = Random(1,2,6); address = factory.Faker('address', locale='ru_RU'); description = factory.Faker('sentence', locale='ru_RU'); perimetrs = Random(15,40); rooms = Random(0,4); ceilingHeight = Random(3,5); floorHouse = Random(2,20); floor = Random(2,20); phoneNumber = PhoneNumber() timeToBus = Random(1, 12, 5); timeToTrain = Random(1, 12, 5); # Apartment props isFurniture = Random(0, 1); isAnimal = Random(0, 1); isTelevision = Random(0, 1); isChild = Random(0, 1); isInternet = Random(0, 1); isBathroom = Random(0, 1); isRefrigerator = Random(0, 1); isWasher = Random(0, 1); isAirConditioning = Random(0, 1); isFreshRepair = Random(0, 1); # House props isElevator = Random(0, 1); isParking = Random(0, 1); isGarbageChute = Random(0, 1); isConcierge = Random(0, 1); # views = [] # factory.Faker('random_number') dateCreate = Date()