24 lines
1.1 KiB
Python
24 lines
1.1 KiB
Python
from sqlalchemy import Column, Integer, String, DateTime, Boolean
|
||
from sqlalchemy.orm import relationship
|
||
from datetime import datetime
|
||
from .base import Base
|
||
|
||
|
||
class Message(Base):
|
||
"""Модель для хранения сообщений для рассылки"""
|
||
__tablename__ = 'messages'
|
||
|
||
id = Column(Integer, primary_key=True)
|
||
text = Column(String, nullable=False) # Текст сообщения
|
||
title = Column(String, nullable=False) # Название/описание сообщения
|
||
is_active = Column(Boolean, default=True) # Активно ли сообщение
|
||
parse_mode = Column(String, default='HTML') # Режим парсинга (HTML, Markdown, None)
|
||
created_at = Column(DateTime, default=datetime.utcnow)
|
||
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||
|
||
# Связь со многими группами (через таблицу связей)
|
||
groups = relationship('MessageGroup', back_populates='message', cascade='all, delete-orphan')
|
||
|
||
def __repr__(self):
|
||
return f'<Message {self.id} - {self.title}>'
|