import SwiftUI

enum RecentItemStatus {
    case high, archive, diary

    var dotColor: Color {
        switch self {
        case .high:    return Tj.Palette.brick
        case .archive: return Tj.Palette.ink2
        case .diary:   return Tj.Palette.leaf
        }
    }

    var valueColor: Color {
        switch self {
        case .high: return Tj.Palette.brick
        default:    return Tj.Palette.text2
        }
    }
}

struct RecentItemRow: View {
    let date: String
    let type: String
    let name: String
    let value: String?
    let status: RecentItemStatus

    var body: some View {
        HStack(spacing: 12) {
            RoundedRectangle(cornerRadius: 3, style: .continuous)
                .fill(status.dotColor)
                .frame(width: 6, height: 40)

            VStack(alignment: .leading, spacing: 2) {
                Text("\(date) · \(type)")
                    .font(.tjScaled( 11))
                    .tracking(0.3)
                    .foregroundStyle(Tj.Palette.text3)
                    .lineLimit(1)
                Text(name)
                    .font(.tjScaled( 14, weight: .medium))
                    .foregroundStyle(Tj.Palette.text)
                    .lineLimit(1)
                    .truncationMode(.tail)
            }
            Spacer(minLength: 8)
            if let value {
                Text(value)
                    .font(.tjScaled( 12, weight: .semibold, design: .monospaced))
                    .foregroundStyle(status.valueColor)
                    .lineLimit(1)
                    .fixedSize()
            }
        }
        .padding(12)
        .tjCard(bordered: true)
    }
}
