Files
SusMarket/SusMarketBackend/models.py
2024-05-15 16:10:08 +07:00

69 lines
2.7 KiB
Python

from django.core.validators import MinValueValidator, MaxValueValidator
from django.db import models
class Category(models.Model):
id = models.CharField('ID Категории', max_length=50, unique=True, primary_key=True, db_index=True)
title = models.CharField('Название Категории', max_length=50)
image = models.TextField('Картинка категории в BASE64')
def __str__(self):
return self.title
class Meta:
verbose_name = 'Категория'
verbose_name_plural = 'Категории'
class Product(models.Model):
id = models.AutoField('ID Товара', unique=True, primary_key=True, db_index=True)
title = models.CharField('Название Товара', max_length=50)
description = models.TextField('Описание товара', max_length=300)
price = models.PositiveIntegerField('Цена товара', validators=[
MinValueValidator(1), MaxValueValidator(999)
])
tags = models.TextField('Теги (Указывать через разделитель \'|\')', max_length=300)
icons = models.TextField('Иконка товара в BASE64')
category = models.ForeignKey(Category, on_delete=models.CASCADE)
date = models.DateTimeField('Дата создания товара', auto_now=True)
def __str__(self):
return self.title
class Meta:
verbose_name = 'Товар'
verbose_name_plural = 'Товары'
class User(models.Model):
id = models.AutoField('ID Пользователя', unique=True, primary_key=True, db_index=True)
login = models.CharField('Логин', max_length=50)
password = models.TextField('Пароль', max_length=200)
date = models.DateTimeField('Дата создания пользователя', auto_now=True)
def __str__(self):
return self.login
class Meta:
verbose_name = 'Пользователь'
verbose_name_plural = 'Пользователи'
class Review(models.Model):
id = models.AutoField('ID Отзыва', unique=True, primary_key=True, db_index=True)
commentary = models.TextField('Комментарий отзыва', max_length=300)
rate = models.PositiveIntegerField('Оценка', validators=[
MinValueValidator(1), MaxValueValidator(5)
])
product = models.ForeignKey(Product, on_delete=models.CASCADE)
icons = models.TextField('Изображение отзыва в BASE64', null=True, blank=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
date = models.DateTimeField('Дата создания отзыва', auto_now=True)
def __str__(self):
return str(self.id)
class Meta:
verbose_name = 'Отзыв'
verbose_name_plural = 'Отзывы'