style: apply black and isort formatting across entire codebase
- Standardize quote style (single to double quotes) - Reorder and group imports alphabetically - Fix line breaks and indentation for consistency - Apply PEP 8 formatting standards Also updated Makefile to exclude both venv and .venv from code quality checks. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,9 @@ Features:
|
||||
"""
|
||||
|
||||
from datetime import datetime, timezone
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String, Text, UniqueConstraint, Index
|
||||
|
||||
from sqlalchemy import (Boolean, Column, DateTime, ForeignKey, Index, Integer,
|
||||
String, Text, UniqueConstraint)
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from app.core.database import Base
|
||||
@@ -34,15 +36,20 @@ class ContentPage(Base):
|
||||
2. If not found, use platform default (slug only)
|
||||
3. If neither exists, show 404 or default template
|
||||
"""
|
||||
|
||||
__tablename__ = "content_pages"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
|
||||
# Vendor association (NULL = platform default)
|
||||
vendor_id = Column(Integer, ForeignKey("vendors.id", ondelete="CASCADE"), nullable=True, index=True)
|
||||
vendor_id = Column(
|
||||
Integer, ForeignKey("vendors.id", ondelete="CASCADE"), nullable=True, index=True
|
||||
)
|
||||
|
||||
# Page identification
|
||||
slug = Column(String(100), nullable=False, index=True) # about, faq, contact, shipping, returns, etc.
|
||||
slug = Column(
|
||||
String(100), nullable=False, index=True
|
||||
) # about, faq, contact, shipping, returns, etc.
|
||||
title = Column(String(200), nullable=False)
|
||||
|
||||
# Content
|
||||
@@ -68,12 +75,25 @@ class ContentPage(Base):
|
||||
show_in_header = Column(Boolean, default=False)
|
||||
|
||||
# Timestamps
|
||||
created_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), nullable=False)
|
||||
updated_at = Column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc), nullable=False)
|
||||
created_at = Column(
|
||||
DateTime(timezone=True),
|
||||
default=lambda: datetime.now(timezone.utc),
|
||||
nullable=False,
|
||||
)
|
||||
updated_at = Column(
|
||||
DateTime(timezone=True),
|
||||
default=lambda: datetime.now(timezone.utc),
|
||||
onupdate=lambda: datetime.now(timezone.utc),
|
||||
nullable=False,
|
||||
)
|
||||
|
||||
# Author tracking (admin or vendor user who created/updated)
|
||||
created_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"), nullable=True)
|
||||
updated_by = Column(Integer, ForeignKey("users.id", ondelete="SET NULL"), nullable=True)
|
||||
created_by = Column(
|
||||
Integer, ForeignKey("users.id", ondelete="SET NULL"), nullable=True
|
||||
)
|
||||
updated_by = Column(
|
||||
Integer, ForeignKey("users.id", ondelete="SET NULL"), nullable=True
|
||||
)
|
||||
|
||||
# Relationships
|
||||
vendor = relationship("Vendor", back_populates="content_pages")
|
||||
@@ -84,11 +104,10 @@ class ContentPage(Base):
|
||||
__table_args__ = (
|
||||
# Unique combination: vendor can only have one page per slug
|
||||
# Platform defaults (vendor_id=NULL) can only have one page per slug
|
||||
UniqueConstraint('vendor_id', 'slug', name='uq_vendor_slug'),
|
||||
|
||||
UniqueConstraint("vendor_id", "slug", name="uq_vendor_slug"),
|
||||
# Indexes for performance
|
||||
Index('idx_vendor_published', 'vendor_id', 'is_published'),
|
||||
Index('idx_slug_published', 'slug', 'is_published'),
|
||||
Index("idx_vendor_published", "vendor_id", "is_published"),
|
||||
Index("idx_slug_published", "slug", "is_published"),
|
||||
)
|
||||
|
||||
def __repr__(self):
|
||||
@@ -119,7 +138,9 @@ class ContentPage(Base):
|
||||
"meta_description": self.meta_description,
|
||||
"meta_keywords": self.meta_keywords,
|
||||
"is_published": self.is_published,
|
||||
"published_at": self.published_at.isoformat() if self.published_at else None,
|
||||
"published_at": (
|
||||
self.published_at.isoformat() if self.published_at else None
|
||||
),
|
||||
"display_order": self.display_order,
|
||||
"show_in_footer": self.show_in_footer,
|
||||
"show_in_header": self.show_in_header,
|
||||
|
||||
Reference in New Issue
Block a user