import 'package:flutter/material.dart';

import '../theme/theme_extensions.dart';
import 'user_avatar.dart';

class ModelAvatar extends StatelessWidget {
  final double size;
  final String? imageUrl;
  final String? label;

  const ModelAvatar({super.key, required this.size, this.imageUrl, this.label});

  @override
  Widget build(BuildContext context) {
    return AvatarImage(
      size: size,
      imageUrl: imageUrl,
      borderRadius: BorderRadius.circular(AppBorderRadius.small),
      fallbackBuilder: (context, size) {
        final theme = context.conduitTheme;
        String? uppercase;
        final trimmed = label?.trim();
        if (trimmed != null && trimmed.isNotEmpty) {
          uppercase = trimmed.substring(0, 1).toUpperCase();
        }

        return Container(
          width: size,
          height: size,
          decoration: BoxDecoration(
            color: theme.buttonPrimary.withValues(alpha: 0.12),
            borderRadius: BorderRadius.circular(AppBorderRadius.small),
            border: Border.all(
              color: theme.buttonPrimary.withValues(alpha: 0.25),
              width: BorderWidth.thin,
            ),
          ),
          alignment: Alignment.center,
          child: uppercase != null
              ? Text(
                  uppercase,
                  style: AppTypography.small.copyWith(
                    color: theme.buttonPrimary,
                    fontWeight: FontWeight.w600,
                  ),
                )
              : Icon(
                  Icons.psychology,
                  color: theme.buttonPrimary,
                  size: size * 0.5,
                ),
        );
      },
    );
  }
}
