from django import template

from companies.models import Company

register = template.Library()


@register.filter
def conversation_partner(conversation, user):
    other = conversation.other_participant(user)
    if not other:
        return 'Unknown'
    if user.is_company:
        profile = getattr(other, 'seeker_profile', None)
        if profile:
            return profile.full_name
    return other.get_full_name() or other.email


@register.filter
def conversation_initials(conversation, user):
    other = conversation.other_participant(user)
    if not other:
        return '?'
    if user.is_company:
        profile = getattr(other, 'seeker_profile', None)
        if profile:
            return profile.initials
    name = other.get_full_name() or other.email
    parts = name.split()
    if len(parts) >= 2:
        return f'{parts[0][0]}{parts[-1][0]}'.upper()
    return name[:2].upper()


@register.filter
def conversation_subtitle(conversation, user):
    if conversation.application_id:
        job = conversation.job
        if user.is_company:
            return job.title
        return f'{job.company_name} · {job.title}'
    if user.is_company:
        return 'Direct message from profile'
    company = conversation.direct_employer
    if company:
        owned = Company.objects.filter(owner=company, is_active=True).first()
        if owned:
            return owned.name
        return company.get_full_name() or 'Employer'
    return 'Direct message'
