37 lines
1.4 KiB
Python
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
|
|
}
|