123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- from django.db import models
- from dbsynce.models.resource import Resource
- from dbsynce.models.company import Company
- from dbsynce.models.service_category import ServiceCategory
- from tickets.models import Ticket
- from dbsynce.docs.database.service import Service as HelpTexts
- from dbsynce.docs.verbose_names.service import Service as VerboseName
- from core.settings_vars import METASERVICE_ID
- from dbsynce.lib import dicts
- class Service(models.Model):
- """
- service - спецификация услуги каждого конкретного поставщика
- (например, в рамках сервиса многие могут предоставлять услуги перевозки,
- но конкретный шаблон с конкретным тарифом относится к отдельному перевозчику)
- """
- # ID METASERVICE
- id_metaservice = models.PositiveIntegerField(
- default=METASERVICE_ID,
- verbose_name = VerboseName.id_metaservice,
- help_text=HelpTexts.id_metaservice,
- )
- codename = models.CharField(
- max_length=30,
- verbose_name = VerboseName.codename,
- help_text=HelpTexts.codename,
- )
- requirements = models.CharField(
- max_length=50,
- #TODO fix default value!
- default="DSMPU",
- verbose_name = VerboseName.requirements,
- help_text=HelpTexts.requirements,
- )
- caption = models.CharField(
- max_length=255,
- null=True,
- verbose_name = VerboseName.caption,
- help_text=HelpTexts.caption,
- )
- description = models.TextField(
- blank=True,
- verbose_name = VerboseName.description,
- help_text=HelpTexts.description,
- )
- resource_type = models.CharField(
- max_length=5,
- null=True,
- choices = list(dicts.resource_type_by_code.items()),
- verbose_name = VerboseName.resource_type,
- help_text=HelpTexts.resource_type,
- )
- # DATA
- #price_type = models.ForeignKey(
- # ServiceCategory,
- # max_length=1,
- # help_text=HelpTexts.price_type
- #)
- price_km = models.DecimalField(
- max_digits=9,
- decimal_places=2,
- null=True,
- verbose_name = VerboseName.price_km,
- help_text=HelpTexts.price_km,
- )
- price_min = models.DecimalField(
- max_digits=9,
- decimal_places=2,
- null=True,
- verbose_name = VerboseName.price_min,
- help_text=HelpTexts.price_min,
- )
- price_amount = models.DecimalField(
- max_digits=9,
- decimal_places=2,
- null=True,
- verbose_name = VerboseName.price_amount,
- help_text=HelpTexts.price_amount,
- )
- company_comission = models.FloatField(
- verbose_name = VerboseName.company_comission,
- help_text=HelpTexts.company_comission,
- )
- #requirements = models.CharField(
- # max_length=50,
- # verbose_name = VerboseName.requirements,
- # help_text=HelpTexts.requirements,
- #)
- status = models.CharField(
- max_length=1,
- choices = list(dicts.activity_status_by_code.items()),
- verbose_name = VerboseName.status,
- help_text=HelpTexts.status,
- default="1",
- )
- # OTHER
- is_global = models.CharField(
- max_length=1,
- default="f",
- choices = list(dicts.is_global_by_code.items()),
- verbose_name = VerboseName.is_global,
- help_text=HelpTexts.is_global,
- )
- is_visible = models.CharField(
- max_length=1,
- default="f",
- choices = list(dicts.is_visible_by_code.items()),
- verbose_name = VerboseName.is_visible,
- help_text=HelpTexts.is_visible
- )
- # FK
- ticket_status = models.ForeignKey(
- Ticket,
- null=True,
- on_delete=models.DO_NOTHING,
- verbose_name = VerboseName.ticket_status,
- help_text=HelpTexts.ticket_status,
- )
- #resource = models.ForeignKey(
- # Resource,
- # on_delete=models.DO_NOTHING,
- # blank=True,
- # null=True,
- # help_text=HelpTexts.resource
- #)
- company = models.ForeignKey(
- Company,
- on_delete=models.DO_NOTHING,
- blank=True,
- null=True,
- verbose_name = VerboseName.company,
- help_text=HelpTexts.company,
- )
- service_category = models.ForeignKey(
- ServiceCategory,
- on_delete=models.DO_NOTHING,
- verbose_name = VerboseName.service_category,
- help_text=HelpTexts.service_category,
- )
- class Meta:
- db_table = "service"
- verbose_name = "Услуга"
- verbose_name_plural = "Услуги"
|