Files
digital-garage-sale/app/models.py
2025-04-29 13:54:11 -07:00

35 lines
1.4 KiB
Python

from datetime import datetime
from app import db
class Category(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), unique=True, nullable=False)
items = db.relationship('Item', backref='category', lazy='dynamic', cascade='all, delete-orphan')
def __repr__(self):
return f'<Category {self.name}>'
class Item(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
description = db.Column(db.Text, nullable=False)
price = db.Column(db.Float, nullable=False)
image_filename = db.Column(db.String(100), nullable=True)
status = db.Column(db.String(20), default='For Sale') # 'For Sale', 'On Hold', 'Sold'
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
category_id = db.Column(db.Integer, db.ForeignKey('category.id'), nullable=False)
def __repr__(self):
return f'<Item {self.title}>'
class ContactInfo(db.Model):
id = db.Column(db.Integer, primary_key=True)
information = db.Column(db.Text, nullable=True)
email = db.Column(db.String(100), nullable=False)
signal = db.Column(db.String(100), nullable=True)
donation_link = db.Column(db.String(255), nullable=True)
def __repr__(self):
return f'<ContactInfo {self.email}>'