35 lines
1.4 KiB
Python
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}>'
|