Coverage for modules\trucking\migrations\0002_add_delivery.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-09-06 16:58 +0800

1# Generated by Django 5.1.15 on 2026-09-05 13:58 

2 

3import django.db.models.deletion 

4import uuid 

5from decimal import Decimal 

6from django.db import migrations, models 

7 

8 

9class Migration(migrations.Migration): 

10 

11 dependencies = [ 

12 ('trucking', '0001_initial'), 

13 ] 

14 

15 operations = [ 

16 migrations.CreateModel( 

17 name='Delivery', 

18 fields=[ 

19 ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), 

20 ('created_at', models.DateTimeField(auto_now_add=True, db_index=True)), 

21 ('updated_at', models.DateTimeField(auto_now=True)), 

22 ('tenant_id', models.UUIDField(db_index=True, help_text='Organization / Tenant ID')), 

23 ('tracking_number', models.CharField(db_index=True, max_length=64, unique=True)), 

24 ('recipient_name', models.CharField(max_length=128)), 

25 ('recipient_phone', models.CharField(blank=True, max_length=32, null=True)), 

26 ('recipient_email', models.EmailField(blank=True, max_length=254, null=True)), 

27 ('delivery_address', models.TextField()), 

28 ('city', models.CharField(max_length=128)), 

29 ('province', models.CharField(blank=True, max_length=128, null=True)), 

30 ('postal_code', models.CharField(blank=True, max_length=20, null=True)), 

31 ('country', models.CharField(default='Philippines', max_length=64)), 

32 ('package_description', models.TextField(blank=True, null=True)), 

33 ('package_weight_kg', models.DecimalField(decimal_places=2, default=Decimal('0.00'), max_digits=10)), 

34 ('number_of_packages', models.IntegerField(default=1)), 

35 ('status', models.CharField(choices=[('PENDING', 'Pending'), ('PICKED_UP', 'Picked Up'), ('IN_TRANSIT', 'In Transit'), ('OUT_FOR_DELIVERY', 'Out for Delivery'), ('DELIVERED', 'Delivered'), ('FAILED', 'Failed Delivery'), ('RETURNED', 'Returned')], default='PENDING', max_length=20)), 

36 ('priority', models.CharField(choices=[('LOW', 'Low'), ('NORMAL', 'Normal'), ('HIGH', 'High'), ('URGENT', 'Urgent')], default='NORMAL', max_length=10)), 

37 ('scheduled_date', models.DateField(blank=True, null=True)), 

38 ('scheduled_time_window_start', models.TimeField(blank=True, null=True)), 

39 ('scheduled_time_window_end', models.TimeField(blank=True, null=True)), 

40 ('actual_delivery_time', models.DateTimeField(blank=True, null=True)), 

41 ('signature_url', models.URLField(blank=True, null=True)), 

42 ('photo_urls', models.JSONField(blank=True, default=list)), 

43 ('delivery_notes', models.TextField(blank=True, null=True)), 

44 ('recipient_signature_name', models.CharField(blank=True, max_length=128, null=True)), 

45 ('reference_number', models.CharField(blank=True, max_length=64, null=True)), 

46 ('proof_of_delivery_received', models.BooleanField(default=False)), 

47 ('trip', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='deliveries', to='trucking.trip')), 

48 ], 

49 options={ 

50 'ordering': ['-created_at'], 

51 }, 

52 ), 

53 ]