Files
telepost/backend/app/models/post.py
T
2026-01-18 21:01:43 +03:00

26 lines
1.0 KiB
Python

from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey, Boolean
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from ..database.database import Base
from datetime import datetime
import uuid
class Post(Base):
__tablename__ = "posts"
id = Column(Integer, primary_key=True, index=True)
title = Column(String(255), nullable=False)
content = Column(Text, nullable=False)
scheduled_time = Column(DateTime, nullable=True)
status = Column(String(50), default="draft") # draft, scheduled, published, cancelled
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
published_at = Column(DateTime(timezone=True), nullable=True)
owner_id = Column(Integer, ForeignKey("users.id"), nullable=False)
# Relationship
owner = relationship("User", back_populates="posts")
def __repr__(self):
return f"<Post(id={self.id}, title='{self.title}', status='{self.status}')>"