podcastrr/app/models/settings.py
2025-06-17 16:00:46 -07:00

37 lines
1.4 KiB
Python

"""
Settings model for Podcastrr.
"""
from app.models.database import db
class Settings(db.Model):
"""
Model representing application settings.
"""
__tablename__ = 'settings'
id = db.Column(db.Integer, primary_key=True)
download_path = db.Column(db.String(512), nullable=False)
naming_format = db.Column(db.String(255), nullable=False, default="{podcast_title}/{episode_title}")
auto_download = db.Column(db.Boolean, default=False)
max_downloads = db.Column(db.Integer, default=5)
delete_after_days = db.Column(db.Integer, default=30)
calendar_first_day = db.Column(db.String(10), default="Monday") # "Monday" or "Sunday"
calendar_show_monitored_only = db.Column(db.Boolean, default=False) # False = show all, True = monitored only
def __repr__(self):
return f'<Settings id={self.id}>'
def to_dict(self):
"""
Convert settings to dictionary for API responses.
"""
return {
'id': self.id,
'download_path': self.download_path,
'naming_format': self.naming_format,
'auto_download': self.auto_download,
'max_downloads': self.max_downloads,
'delete_after_days': self.delete_after_days,
'calendar_first_day': self.calendar_first_day,
'calendar_show_monitored_only': self.calendar_show_monitored_only
}