
from ..extensions import db
from .base import BaseModel


class Category(BaseModel):
    """Australian construction trade categories with WHS risk levels"""
    __tablename__ = 'categories'
    
    name = db.Column(db.String(100), unique=True, nullable=False)
    description = db.Column(db.Text)
    
    # WHS Act 2011 Risk Classification
    whs_risk_level = db.Column(db.String(20), default='medium', nullable=False)
    # Risk levels: 'low', 'medium', 'high', 'extreme'
    
    # Australian Construction Industry Requirements
    insurance_requirements = db.Column(db.Text)
    license_required = db.Column(db.Boolean, default=False, nullable=False)
    white_card_required = db.Column(db.Boolean, default=True, nullable=False)
    
    # Category Management
    is_active = db.Column(db.Boolean, default=True, nullable=False)
    sort_order = db.Column(db.Integer, default=0, nullable=False)
    
    def get_insurance_minimum(self):
        """Get minimum insurance amount based on risk level"""
        minimums = {
            'low': 1000000,      # $1M
            'medium': 2000000,   # $2M  
            'high': 5000000,     # $5M
            'extreme': 10000000  # $10M
        }
        return minimums.get(self.whs_risk_level, 2000000)
    
    def __repr__(self):
        return f'<Category {self.name} - {self.whs_risk_level} risk>'
