145 lines
3.3 KiB
Python
145 lines
3.3 KiB
Python
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)
|