coopdevs/lazona_connector

View on GitHub
api/models.py

Summary

Maintainability
A
0 mins
Test Coverage
from django.db import models
from django.utils.translation import ugettext_lazy as _


class ShipmentStatus(models.TextChoices):
    ERROR_FROM_BODY = "ERROR_FROM_BODY", _(u"Error alta enviament")
    LABEL_SENT = "LABEL_SENT", _(u"Etiqueta enviada al venedor")
    IN_PROCESS = "IN_PROCESS", _(u"En proces")
    ON_HOLD = "ON_HOLD", _(u"Particularitat al proces d'enviament")
    ERROR_FROM_TRACKING = "ERROR_FROM_TRACKING", _(u"Error API de seguiment")
    DELIVERED = "DELIVERED", _(u"Entregat"),


class ShipmentMethod(models.TextChoices):
    KOIKI = "KOIKI", _(u"Enviament via Koiki")
    LOCAL_PICKUP = "LOCAL_PICKUP", _(u"Recollida en botiga")


class Shipment(models.Model):
    delivery_id = models.CharField(
        _("Id de l'enviament"),
        max_length=100, null=False, blank=True
    )
    order_id = models.IntegerField(
        _("Id de la comanda de WooCommerce"),
        null=False, blank=False
    )
    vendor_id = models.IntegerField(
        _("Id del vendor de WooCommerce"),
        null=False, blank=False
    )
    label_url = models.CharField(
        _("Url de l'etiqueta"),
        max_length=200, blank=True
    )
    status = models.CharField(
        _("Estat de l'enviament"),
        max_length=20,
        choices=ShipmentStatus.choices,
        null=False,
        blank=False,
    )
    method = models.CharField(
        _("Mètode d'enviament"),
        max_length=20,
        choices=ShipmentMethod.choices,
        null=False,
        blank=False,
    )
    updated_at = models.DateTimeField(
        _("Última actualització creació"),
        auto_now=True
    )
    tracking_updated_at = models.DateTimeField(
        _("Última actualització seguiment"),
        auto_now=True
    )
    tracking_status_created_at = models.DateTimeField(
        _("Data de creació del darrer estat de l'enviament"),
        null=True, auto_now=False, blank=True
    )
    req_body = models.CharField(
        _("Cos de la petició de la comanda enviat"),
        max_length=2000, blank=True
    )
    delivery_message = models.CharField(
        _("Missatge de seguiment"),
        max_length=1000, blank=True
    )
    delivery_notes = models.CharField(
        _("Notes de seguiment"),
        max_length=1000, blank=True
    )

    def __str__(self):
        return '{}: (wc_order:{}, vendor:{})'.format(self.pk, self.order_id, self.vendor_id)