from django.db import models from django.db.models import Model, CharField, EmailField, \ DateTimeField, DecimalField, ForeignKey class Address(Model): address = CharField(max_length=200) zip_code = CharField(max_length=10) city = CharField(max_length=200) country = CharField(max_length=200) class Person(Model): name = CharField(max_length=50) surname = CharField(max_length=50) address = Address() nationality = CharField(max_length=200) email = EmailField(max_length=254) phone = CharField(max_length=20) # Foreign keys address = ForeignKey(Address) class Company(Model): name = CharField(max_length=50) address = CharField(max_length=254) nationality = CharField(max_length=50) email = EmailField(max_length=200) phone = CharField(max_length=20) # Foreign keys address = ForeignKey(Address) class Insurance(Company): pass class Boat(Model): name = CharField(max_length=50) registration_num = CharField(max_length=20) length = DecimalField() beam = DecimalField() water_draught = DecimalField() tonnage = DecimalField() water_tank = DecimalField() model = CharField(max_length=50) heating = CharField(max_length=50) passenger_capacity = IntegerField() picture = ImageField(upload_to=None, height_field=None, width_field=None, max_length=100) # Foreign keys boat_insurance = ForeignKey(BoatInsurance) company = ForeignKey(Company) class BoatInsurance(Model) contract = IntegerField() date = DateTimeField() # Foreign keys insurance = ForeignKey(Insurance) boat = ForeignKey(Boat) class Port(Model): name = CharField(max_length=50) # Foreign keys address = ForeignKey(Address) company = ForeignKey(Company) class Dock(Model): num = CharField(max_length=10) length = DecimalField() width = DecimalField() depth = DecimalField() # Foreign keys port = ForeignKey(Port) class Plug(Model): num = CharField(max_length=10) amperage = DecimalField() voltage = DecimalField() # Foreign keys port = ForeignKey(Port) class Tap(Model): num = CharField(max_length=10) # Foreign keys port = ForeignKey(Port) class Stay(Model): arrival = DateTimeField() departure = DateTimeField('date published') coming_from = CharField(max_length=200) going_to = CharField(max_length=200) # Foreign keys boat = ForeignKey(Boat) bill = ForeignKey(Bill) class PaymentType(Model): name = CharField(max_length=20) class Payment(Model): num = CharField(max_length=40) date = DateTimeField() amount = DecimalField() # Foreign keys pay_type = ForeignKey(PaymentType) class Service(Model): service_type = CharField(max_length=50) class BillLine(Model): quantity = DecimalField() # Foreign keys service = ForeignKey(Service) bill = ForeignKey(Bill) class Bill(Model): num = IntegerField() date = DateTimeField() total = DecimalField() class BillPayment(Model): amount = DecimalField() # Foreign keys bill = ForeignKey(Bill) payment = ForeignKey(Payment) class Mooring(Model): date = DateTimeField() # Foreign keys stay = ForeignKey(Stay) dock = ForeignKey(Dock) tap = ForeignKey(Tap) plug = ForeignKey(Plug)