/
home
/
obinna
/
html
/
betpair
/
betting
/
Upload File
HOME
import datetime from django.db import models from django.contrib.auth.models import User from django.utils import timezone from uuid import uuid4 class Event(models.Model): """docstring for Event""" name = models.CharField(max_length=200, unique=True) start_date = models.DateTimeField(default=timezone.now) end_date = models.DateTimeField(default=timezone.now() + datetime.timedelta(days=1)) image = models.ImageField(upload_to='events') description = models.CharField(max_length=255, null=True, blank=True) slug = models.CharField(max_length=255, unique=True, blank=True) # players = models.ManyToManyField(Player) # bets = models. class Meta: ordering = ['start_date', 'end_date'] def still_on(self): now = timezone.now() return self.end_date > now > self.start_date def started(self): now = timezone.now() return self.start_date <= now def finished(self): now = timezone.now() return self.end_date < now > self.start_date def __str__(self): return self.name def save(self, *args, **kwargs): self.slug = slugify(self.name) super(Event, self).save(*args, **kwargs) class Player(models.Model): """docstring for Player""" name = models.CharField(max_length=255, null=True) phone_number = models.CharField(max_length=20, null=True) user = models.OneToOneField(User, on_delete=models.CASCADE, null=True) balance = models.IntegerField(default=10000) def __str__(self): return self.name or '' class EventOption(models.Model): name = models.CharField(max_length=255) event = models.ForeignKey(Event, on_delete=models.CASCADE) def __str__(self): return self.name class Bet(models.Model): bet_key = models.CharField(max_length=255, unique=True) private = models.BooleanField(default=False) type = models.CharField(max_length=255, default="random") initiator = models.ForeignKey(Player, null=True, on_delete=models.CASCADE) minimum = models.IntegerField(default=0) def __str__(self): return self.bet_key class PlayerBet(models.Model): player = models.ForeignKey(Player, on_delete=models.CASCADE) bet = models.ForeignKey(Bet, on_delete=models.CASCADE) date_placed = models.DateTimeField(default=timezone.now) amount = models.IntegerField(default=100) selection = models.ForeignKey(EventOption, on_delete=models.CASCADE) class Payment(models.Model): user = models.ForeignKey(Player, on_delete=models.CASCADE) amount = models.IntegerField(default=100) date_paid = models.DateTimeField(default=timezone.now) def slugify(name): return "-".join(name.split(" ")).lower()