اولین نسخه بکاند آرامش پلازا
This commit is contained in:
+160
@@ -0,0 +1,160 @@
|
||||
import enum
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import String, Integer, Text, DateTime, Boolean, Enum, JSON
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from app.database import Base
|
||||
|
||||
|
||||
class ProjectStatus(str, enum.Enum):
|
||||
done = "done"
|
||||
progress = "progress"
|
||||
|
||||
|
||||
class AdminUser(Base):
|
||||
__tablename__ = "admin_users"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
username: Mapped[str] = mapped_column(String(64), unique=True, index=True)
|
||||
hashed_password: Mapped[str] = mapped_column(String(255))
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)
|
||||
|
||||
|
||||
class Brand(Base):
|
||||
"""اطلاعات کلی برند - همیشه فقط یک رکورد (id=1) دارد."""
|
||||
__tablename__ = "brand"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
name: Mapped[str] = mapped_column(String(255), default="")
|
||||
logo: Mapped[str] = mapped_column(String(1024), default="")
|
||||
hero: Mapped[str] = mapped_column(String(1024), default="")
|
||||
contact_bg: Mapped[str] = mapped_column(String(1024), default="")
|
||||
phone: Mapped[str] = mapped_column(String(64), default="")
|
||||
phone_href: Mapped[str] = mapped_column(String(64), default="")
|
||||
email: Mapped[str] = mapped_column(String(255), default="")
|
||||
address: Mapped[str] = mapped_column(String(1024), default="")
|
||||
|
||||
|
||||
class Service(Base):
|
||||
__tablename__ = "services"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
title: Mapped[str] = mapped_column(String(255))
|
||||
desc: Mapped[str] = mapped_column(Text)
|
||||
icon: Mapped[str] = mapped_column(String(64))
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class Project(Base):
|
||||
__tablename__ = "projects"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
slug: Mapped[str] = mapped_column(String(255), unique=True, index=True)
|
||||
title: Mapped[str] = mapped_column(String(255))
|
||||
location: Mapped[str] = mapped_column(String(255))
|
||||
year: Mapped[str] = mapped_column(String(64))
|
||||
status: Mapped[ProjectStatus] = mapped_column(Enum(ProjectStatus), default=ProjectStatus.progress)
|
||||
image: Mapped[str] = mapped_column(String(1024))
|
||||
gallery: Mapped[list] = mapped_column(JSON, default=list)
|
||||
area: Mapped[str] = mapped_column(String(128))
|
||||
floors: Mapped[str] = mapped_column(String(128))
|
||||
units: Mapped[str] = mapped_column(String(128))
|
||||
client: Mapped[str] = mapped_column(String(255))
|
||||
summary: Mapped[str] = mapped_column(Text)
|
||||
body: Mapped[list] = mapped_column(JSON, default=list)
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class Stat(Base):
|
||||
__tablename__ = "stats"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
value: Mapped[int] = mapped_column(Integer)
|
||||
suffix: Mapped[str] = mapped_column(String(32), default="")
|
||||
label: Mapped[str] = mapped_column(String(255))
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class TimelineItem(Base):
|
||||
__tablename__ = "timeline_items"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
year: Mapped[str] = mapped_column(String(64))
|
||||
title: Mapped[str] = mapped_column(String(255))
|
||||
desc: Mapped[str] = mapped_column(Text)
|
||||
image: Mapped[str] = mapped_column(String(1024))
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class WhyUsItem(Base):
|
||||
__tablename__ = "why_us_items"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
title: Mapped[str] = mapped_column(String(255))
|
||||
desc: Mapped[str] = mapped_column(Text)
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class Testimonial(Base):
|
||||
__tablename__ = "testimonials"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
name: Mapped[str] = mapped_column(String(255))
|
||||
role: Mapped[str] = mapped_column(String(255))
|
||||
quote: Mapped[str] = mapped_column(Text)
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class TeamMember(Base):
|
||||
__tablename__ = "team_members"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
name: Mapped[str] = mapped_column(String(255))
|
||||
role: Mapped[str] = mapped_column(String(255))
|
||||
bio: Mapped[str] = mapped_column(Text)
|
||||
photo: Mapped[str] = mapped_column(String(1024), default="")
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class Article(Base):
|
||||
__tablename__ = "articles"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
slug: Mapped[str] = mapped_column(String(255), unique=True, index=True)
|
||||
title: Mapped[str] = mapped_column(String(255))
|
||||
date: Mapped[str] = mapped_column(String(64))
|
||||
category: Mapped[str] = mapped_column(String(128))
|
||||
image: Mapped[str] = mapped_column(String(1024))
|
||||
read: Mapped[str] = mapped_column(String(32))
|
||||
excerpt: Mapped[str] = mapped_column(Text)
|
||||
body: Mapped[list] = mapped_column(JSON, default=list)
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class Faq(Base):
|
||||
__tablename__ = "faqs"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
q: Mapped[str] = mapped_column(String(512))
|
||||
a: Mapped[str] = mapped_column(Text)
|
||||
order: Mapped[int] = mapped_column(Integer, default=0)
|
||||
|
||||
|
||||
class ContactLead(Base):
|
||||
__tablename__ = "contact_leads"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
name: Mapped[str] = mapped_column(String(255), default="")
|
||||
phone: Mapped[str] = mapped_column(String(64))
|
||||
note: Mapped[str] = mapped_column(Text, default="")
|
||||
is_read: Mapped[bool] = mapped_column(Boolean, default=False)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)
|
||||
|
||||
|
||||
class NewsletterSubscriber(Base):
|
||||
__tablename__ = "newsletter_subscribers"
|
||||
|
||||
id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
||||
email: Mapped[str] = mapped_column(String(255), unique=True, index=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)
|
||||
Reference in New Issue
Block a user