"""
Portfolio model for worker project showcase
"""
from ..extensions import db
from .base import BaseModel


class PortfolioItem(BaseModel):
    """Worker portfolio items - showcase completed projects"""
    __tablename__ = 'portfolio_items'

    worker_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    title = db.Column(db.String(200), nullable=False)
    description = db.Column(db.Text)
    image_url = db.Column(db.String(500), nullable=False)
    trade_category = db.Column(db.String(100))
    contract_id = db.Column(db.Integer, db.ForeignKey('contracts.id'), nullable=True)
    display_order = db.Column(db.Integer, default=0)

    # Relationships
    worker = db.relationship('User', backref='portfolio_items')
    contract = db.relationship('Contract', backref='portfolio_items')

    def to_dict(self):
        return {
            'id': self.id,
            'worker_id': self.worker_id,
            'title': self.title,
            'description': self.description,
            'image_url': self.image_url,
            'trade_category': self.trade_category,
            'contract_id': self.contract_id,
            'display_order': self.display_order,
            'created_at': self.created_at.isoformat() if self.created_at else None
        }

    def __repr__(self):
        return f'<PortfolioItem {self.id}: {self.title}>'
