import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/device/asset_transfer.dart';
import 'package:test_sa/views/pages/device_transfer/device_transfer_details.dart';

import '../../../../views/widgets/requests/request_status.dart';
import '../../../app_style/app_color.dart';

class AssetItemView extends StatelessWidget {
  final RequestsDetails request;
  final bool showShadow;

  const AssetItemView(this.request, {Key key, this.showShadow = true}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Column(
      // mainAxisAlignment: MainAxisAlignment.spaceBetween,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Row(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            if (request.priority != null)
              StatusLabel(
                label: request.priority ?? "",
                textColor: AppColor.getRequestStatusTextColorByName(context, request.priority),
                backgroundColor: AppColor.getRequestStatusColorByName(context, request.priority),
              ),
            // 8.width,
            // if (request.status != null)
            //   StatusLabel(
            //     label: request.status ?? "",
            //     textColor: AppColor.getRequestStatusTextColorByName(context, request.status),
            //     backgroundColor: AppColor.getRequestStatusColorByName(context, request.status),
            //   ),
            1.width.expanded,
            Text(request.date?.toServiceRequestCardFormat ?? "", textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
          ],
        ),
        8.height,
        Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          mainAxisSize: MainAxisSize.min,
          children: [
            context.translation.deviceTransferRequest.heading5(context),
            "${context.translation.from} : ${request.siteTransferFrom?.cleanupWhitespace?.capitalizeFirstOfEach}".bodyText(context),
            "${context.translation.to} : ${request.siteTransferTo?.cleanupWhitespace?.capitalizeFirstOfEach}".bodyText(context),
            request.status.replaceAll("=", ":").bodyText(context),
            '${context.translation.requestNo}: ${request.requestNo}'.bodyText(context),
          ],
        ),
        Row(
          mainAxisSize: MainAxisSize.min,
          children: [
            Text(
              context.translation.viewDetails,
              style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
            ),
            4.width,
            Icon(
              Icons.arrow_forward,
              color: AppColor.blueStatus(context),
              size: 14,
            )
          ],
        ),
      ],
    ).toShadowContainer(context, showShadow: showShadow).onPress(() {
      Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: AssetTransfer(id: request.id))));
    });
  }
}
