Expanded generation options. Multiple outfits support.
This commit is contained in:
28
models.py
28
models.py
@@ -6,10 +6,38 @@ class Character(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
character_id = db.Column(db.String(100), unique=True, nullable=False)
|
||||
slug = db.Column(db.String(100), unique=True, nullable=False)
|
||||
filename = db.Column(db.String(255), nullable=True)
|
||||
name = db.Column(db.String(100), nullable=False)
|
||||
data = db.Column(db.JSON, nullable=False)
|
||||
default_fields = db.Column(db.JSON, nullable=True)
|
||||
image_path = db.Column(db.String(255), nullable=True)
|
||||
active_outfit = db.Column(db.String(100), default='default')
|
||||
|
||||
def get_active_wardrobe(self):
|
||||
"""Get the currently active wardrobe outfit."""
|
||||
wardrobe = self.data.get('wardrobe', {})
|
||||
# Check if wardrobe is nested (new format) or flat (legacy)
|
||||
if 'default' in wardrobe and isinstance(wardrobe.get('default'), dict):
|
||||
# New nested format - return active outfit
|
||||
return wardrobe.get(self.active_outfit or 'default', wardrobe.get('default', {}))
|
||||
else:
|
||||
# Legacy flat format - return as-is
|
||||
return wardrobe
|
||||
|
||||
def get_available_outfits(self):
|
||||
"""Get list of available outfit names."""
|
||||
wardrobe = self.data.get('wardrobe', {})
|
||||
if 'default' in wardrobe and isinstance(wardrobe.get('default'), dict):
|
||||
return list(wardrobe.keys())
|
||||
return ['default']
|
||||
|
||||
def __repr__(self):
|
||||
return f'<Character {self.character_id}>'
|
||||
|
||||
class Settings(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
openrouter_api_key = db.Column(db.String(255), nullable=True)
|
||||
openrouter_model = db.Column(db.String(100), default='google/gemini-2.0-flash-001')
|
||||
|
||||
def __repr__(self):
|
||||
return '<Settings>'
|
||||
|
||||
Reference in New Issue
Block a user