| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- from django.db import models
- from django.contrib.auth.models import User
- class Vehicle(models.Model):
- user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='vehicles', default=1)
- make = models.CharField(max_length=255)
- model = models.CharField(max_length=255)
- year = models.IntegerField()
- license_plate = models.CharField(max_length=100, unique=True)
- capacity = models.IntegerField()
- status = models.CharField(max_length=50) # e.g., available, in use, under maintenance
- def __str__(self):
- return f'{self.make} {self.model} ({self.year}) - {self.license_plate}'
- class Trip(models.Model):
- vehicle = models.ForeignKey(Vehicle, related_name='trips', on_delete=models.CASCADE)
- driver = models.ForeignKey(User, related_name='trips', on_delete=models.CASCADE)
- start_location = models.CharField(max_length=255)
- end_location = models.CharField(max_length=255)
- start_time = models.DateTimeField()
- end_time = models.DateTimeField()
- mileage = models.FloatField()
- fuel_consumption = models.FloatField()
- class MaintenanceLog(models.Model):
- vehicle = models.ForeignKey(Vehicle, related_name='maintenance_logs', on_delete=models.CASCADE)
- date = models.DateTimeField()
- description = models.TextField()
- mileage = models.FloatField()
- class Appointment(models.Model):
- vehicle = models.ForeignKey(Vehicle, related_name='appointments', on_delete=models.CASCADE)
- start_time = models.DateTimeField()
- end_time = models.DateTimeField()
- purpose = models.CharField(max_length=255)
- created_at = models.DateTimeField(auto_now_add=True)
- updated_at = models.DateTimeField(auto_now=True)
- class GPSData(models.Model):
- vehicle = models.ForeignKey(Vehicle, related_name='gps_data', on_delete=models.CASCADE)
- latitude = models.FloatField()
- longitude = models.FloatField()
- timestamp = models.DateTimeField(auto_now_add=True)
- class FuelTransaction(models.Model):
- vehicle = models.ForeignKey(Vehicle, related_name='fuel_transactions', on_delete=models.CASCADE)
- date = models.DateTimeField()
- amount = models.FloatField()
- price_per_liter = models.FloatField()
- total_cost = models.FloatField()
- fuel_card_number = models.CharField(max_length=100)
|