//
//  RelationshipBadge.swift
//  lichunWebsocket
//
//  Badge component for displaying relationship types
//

import SwiftUI

struct RelationshipBadge: View {
    let relationship: String

    // MARK: - Computed Properties

    /// Icon for relationship type
    private var relationshipIcon: String {
        let rel = relationship.lowercased()
        if rel.contains("love") || rel.contains("romantic") {
            return "heart.fill"
        } else if rel.contains("friend") {
            return "person.2.fill"
        } else if rel.contains("family") || rel.contains("parent") || rel.contains("sibling") {
            return "house.fill"
        } else if rel.contains("colleague") || rel.contains("coworker") {
            return "briefcase.fill"
        } else if rel.contains("classmate") {
            return "book.fill"
        } else {
            return "person.fill"
        }
    }

    /// Color for relationship type
    private var relationshipColor: Color {
        let rel = relationship.lowercased()
        if rel.contains("love") || rel.contains("romantic") {
            return AppColors.loveInterest
        } else if rel.contains("friend") {
            return AppColors.friend
        } else if rel.contains("family") || rel.contains("parent") || rel.contains("sibling") {
            return AppColors.family
        } else {
            return AppColors.acquaintance
        }
    }

    // MARK: - Body

    var body: some View {
        HStack(spacing: 4) {
            Image(systemName: relationshipIcon)
                .font(.system(size: 10))
                .foregroundColor(relationshipColor)

            Text(relationship)
                .font(.appSmall)
                .foregroundColor(AppColors.primaryText)
        }
        .padding(.horizontal, 8)
        .padding(.vertical, 4)
        .background(
            relationshipColor.opacity(0.2)
        )
        .cornerRadius(10) // More rounded for cozy feel
        .overlay(
            RoundedRectangle(cornerRadius: 10)
                .strokeBorder(relationshipColor.opacity(0.3), lineWidth: 1)
        )
    }
}

// MARK: - Preview
#Preview {
    VStack(spacing: AppSpacing.sm) {
        RelationshipBadge(relationship: "Love Interest")
        RelationshipBadge(relationship: "Friend")
        RelationshipBadge(relationship: "Family")
        RelationshipBadge(relationship: "Colleague")
        RelationshipBadge(relationship: "Classmate")
        RelationshipBadge(relationship: "Acquaintance")
    }
    .padding()
    .background(AppColors.background)
}
