defined database schema in db_intermediary app
This commit is contained in:
3
backend/django/seatstock_django/db_intermediary/admin.py
Normal file
3
backend/django/seatstock_django/db_intermediary/admin.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
6
backend/django/seatstock_django/db_intermediary/apps.py
Normal file
6
backend/django/seatstock_django/db_intermediary/apps.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class DbIntermediaryConfig(AppConfig):
|
||||||
|
default_auto_field = "django.db.models.BigAutoField"
|
||||||
|
name = "db_intermediary"
|
123
backend/django/seatstock_django/db_intermediary/models.py
Normal file
123
backend/django/seatstock_django/db_intermediary/models.py
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
from django.db import models
|
||||||
|
|
||||||
|
class School(models.Model):
|
||||||
|
name = models.CharField(max_length=100, primary_key=True)
|
||||||
|
football_stadium_name = models.CharField(max_length=100)
|
||||||
|
football_stadium_location = models.CharField(max_length=200)
|
||||||
|
team_name = models.CharField(max_length=100)
|
||||||
|
state = models.CharField(max_length=30)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
class Game(models.Model):
|
||||||
|
home_team = models.ForeignKey(School, on_delete=models.CASCADE, related_name="home_team")
|
||||||
|
away_team = models.ForeignKey(School, on_delete=models.CASCADE, related_name="away_team")
|
||||||
|
date = models.DateTimeField()
|
||||||
|
is_womens_game = models.BooleanField()
|
||||||
|
is_mens_game = models.BooleanField()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
constraints = [
|
||||||
|
models.UniqueConstraint(
|
||||||
|
fields = ['home_team', 'away_team', 'date'], name="Game_PK"
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.home + " vs " + self.away_team
|
||||||
|
|
||||||
|
|
||||||
|
class User(models.Model):
|
||||||
|
first_name = models.CharField(max_length=100)
|
||||||
|
last_name = models.CharField(max_length=100)
|
||||||
|
school_email = models.CharField(max_length=200, primary_key=True)
|
||||||
|
school = models.ForeignKey(School, on_delete=models.CASCADE)
|
||||||
|
phone_number_country_code = models.IntegerField()
|
||||||
|
phone_number = models.IntegerField()
|
||||||
|
password_string = models.CharField(max_length=200)
|
||||||
|
is_banned = models.BooleanField(default=False)
|
||||||
|
is_logged_in = models.BooleanField(default=False)
|
||||||
|
account_is_active = models.BooleanField(default=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.first_name + " " + self.last_name
|
||||||
|
|
||||||
|
class Ticket(models.Model):
|
||||||
|
ticket_id = models.CharField(max_length=255, primary_key=True)
|
||||||
|
posted_by = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||||
|
ask = models.FloatField()
|
||||||
|
seat = models.IntegerField()
|
||||||
|
row = models.IntegerField()
|
||||||
|
section = models.IntegerField()
|
||||||
|
game = models.ForeignKey(Game, on_delete=models.CASCADE)
|
||||||
|
date = models.DateTimeField()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.ticket_id
|
||||||
|
|
||||||
|
class Bid(models.Model):
|
||||||
|
buyer = models.ForeignKey(User, on_delete=models.DO_NOTHING)
|
||||||
|
ticket = models.ForeignKey(Ticket, on_delete=models.DO_NOTHING)
|
||||||
|
amount = models.FloatField()
|
||||||
|
is_active = models.BooleanField()
|
||||||
|
is_accepted = models.BooleanField()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
constraints = [
|
||||||
|
models.UniqueConstraint(
|
||||||
|
fields = ["buyer", "ticket", "amount"], name="Bid_PK"
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.buyer + " offering " + self.amount + " for " + self.ticket
|
||||||
|
|
||||||
|
class Transaction(models.Model):
|
||||||
|
transaction_id = models.BigIntegerField(primary_key=True)
|
||||||
|
bid = models.ForeignKey(Bid, on_delete=models.DO_NOTHING)
|
||||||
|
transaction_fee = models.FloatField()
|
||||||
|
processing_fee = models.FloatField()
|
||||||
|
seller_accepted = models.BooleanField(default=False)
|
||||||
|
buyer_sent_payment = models.BooleanField(default=False)
|
||||||
|
seller_sent_payment = models.BooleanField(default=False)
|
||||||
|
buyer_confirmed_payment = models.BooleanField(default=False)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.transaction_id
|
||||||
|
|
||||||
|
class Sale(models.Model):
|
||||||
|
sale_id = models.BigIntegerField(primary_key=True)
|
||||||
|
transaction = models.ForeignKey(Transaction, on_delete=models.DO_NOTHING)
|
||||||
|
total_amount = models.FloatField()
|
||||||
|
date = models.DateTimeField()
|
||||||
|
complaint_period_end_date = models.DateTimeField()
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.sale_id
|
||||||
|
|
||||||
|
class Complaint(models.Model):
|
||||||
|
initiating_user = models.ForeignKey(User, on_delete=models.DO_NOTHING)
|
||||||
|
sale = models.ForeignKey(Sale, on_delete=models.DO_NOTHING)
|
||||||
|
accuser_provided_proof = models.BooleanField(default=False)
|
||||||
|
accuser_provided_proof_at = models.DateTimeField()
|
||||||
|
defendant_contacted = models.BooleanField(default=False)
|
||||||
|
defendant_contacted_at = models.DateTimeField()
|
||||||
|
defendant_provided_proof = models.BooleanField(default=False)
|
||||||
|
defendant_provided_proof_at = models.DateTimeField()
|
||||||
|
accuser_refunded = models.BooleanField(default=False)
|
||||||
|
accuser_refunded_at = models.DateTimeField()
|
||||||
|
defendant_exonerated = models.BooleanField()
|
||||||
|
defendant_exonerated_at = models.DateTimeField()
|
||||||
|
resolved = models.BooleanField(default=False)
|
||||||
|
resolved_at = models.DateTimeField()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
constraints = [
|
||||||
|
models.UniqueConstraint(
|
||||||
|
fields = ['initiating_user', 'sale'], name="Complaint_PK"
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.initiating_user + " on " + self.sale
|
3
backend/django/seatstock_django/db_intermediary/tests.py
Normal file
3
backend/django/seatstock_django/db_intermediary/tests.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
3
backend/django/seatstock_django/db_intermediary/views.py
Normal file
3
backend/django/seatstock_django/db_intermediary/views.py
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user