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
« 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
3import django.db.models.deletion
4import uuid
5from decimal import Decimal
6from django.db import migrations, models
9class Migration(migrations.Migration):
11 dependencies = [
12 ('trucking', '0001_initial'),
13 ]
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 ]