V-FOR-VEND3TTA / return-and-exchange-system

A return and exchange system to streamline the return and exchange process for ecommerce businesses, providing a seamless experience for customers and reducing operational headaches for the business using Django, Bootstrap
Creative Commons Zero v1.0 Universal
0 stars 0 forks source link

Setting Up Models #5

Closed V-FOR-VEND3TTA closed 1 month ago

V-FOR-VEND3TTA commented 1 month ago

We'll create models for Orders, Return/Exchange Requests, and User Profiles (if not using the built-in User model). returns_exchanges/models.py:

from django.db import models
from django.contrib.auth.models import User

class Order(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    order_number = models.CharField(max_length=20)
    order_date = models.DateField()
    total_amount = models.DecimalField(max_digits=10, decimal_places=2)

    def __str__(self):
        return self.order_number

class OrderItem(models.Model):
    order = models.ForeignKey(Order, related_name='items', on_delete=models.CASCADE)
    product_name = models.CharField(max_length=100)
    product_sku = models.CharField(max_length=50)
    quantity = models.IntegerField()
    price = models.DecimalField(max_digits=10, decimal_places=2)

    def __str__(self):
        return self.product_name

class ReturnExchangeRequest(models.Model):
    RETURN = 'Return'
    EXCHANGE = 'Exchange'
    REQUEST_CHOICES = [
        (RETURN, 'Return'),
        (EXCHANGE, 'Exchange'),
    ]

    order_item = models.ForeignKey(OrderItem, on_delete=models.CASCADE)
    request_type = models.CharField(max_length=10, choices=REQUEST_CHOICES)
    reason = models.TextField()
    status = models.CharField(max_length=20, default='Pending')
    request_date = models.DateField(auto_now_add=True)

    def __str__(self):
        return f"{self.request_type} - {self.order_item.product_name}"
V-FOR-VEND3TTA commented 1 month ago

Successfully set up the models and created migrations and migrated the database models