Files
cetana-backend/apps/accounts/models.py
T
2026-09-24 12:32:59 +03:30

31 lines
1.1 KiB
Python

from django.contrib.auth.models import AbstractUser
from django.db import models
from apps.core.models import TimeStampedModel, UUIDModel
class User(AbstractUser, UUIDModel):
"""Application user. Identity may be backed by Odoo via `odoo_partner_id`."""
phone = models.CharField(max_length=32, blank=True)
odoo_partner_id = models.CharField(max_length=64, blank=True, db_index=True)
class Meta:
ordering = ["username"]
def __str__(self) -> str:
return self.username or self.email or str(self.id)
class Customer(UUIDModel, TimeStampedModel):
"""Customer profile keyed to an external (Odoo) identity where available."""
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="customer")
customer_code = models.CharField(max_length=64, unique=True, blank=True, null=True)
company_name = models.CharField(max_length=200, blank=True)
category = models.CharField(max_length=64, blank=True, db_index=True)
odoo_partner_id = models.CharField(max_length=64, blank=True, db_index=True)
def __str__(self) -> str:
return self.company_name or str(self.user)