import 'package:camera/camera.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:SEFER/constant/colors.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/functions/camer_controller.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:SEFER/views/widgets/my_scafold.dart';

class CameraWidgetCardId extends StatelessWidget {
  final CameraClassController cameraClassController =
      Get.put(CameraClassController());

  CameraWidgetCardId({super.key});

  @override
  Widget build(BuildContext context) {
    return MyScafolld(
        title: 'Scan Id'.tr,
        body: [
          Column(
            children: [
              Padding(
                padding:
                    const EdgeInsets.symmetric(vertical: 8, horizontal: 12),
                child: GetBuilder<CameraClassController>(
                  builder: (cameraClassController) =>
                      cameraClassController.isCameraInitialized
                          ? Stack(
                              children: [
                                Container(
                                  decoration: AppStyle.boxDecoration,
                                  child: FittedBox(
                                    fit: BoxFit.fitWidth,
                                    child: SizedBox(
                                      width: Get.width * .9,
                                      height: Get.width *
                                          .9, // Set the desired aspect ratio here
                                      child: CameraPreview(
                                        cameraClassController.cameraController,
                                      ),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 72,
                                  child: Container(
                                    width: 230,
                                    height: 25,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.yellowColor,
                                          width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 60,
                                  right: 5,
                                  child: Container(
                                    width: 230,
                                    height: 25,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 156,
                                  right: 5,
                                  child: Container(
                                    width: 140,
                                    height: 20,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 175,
                                  right: 5,
                                  child: Container(
                                    width: 140,
                                    height: 15,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 191,
                                  right: 5,
                                  child: Container(
                                    width: 140,
                                    height: 15,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 207,
                                  right: 5,
                                  child: Container(
                                    width: 140,
                                    height: 15,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 225,
                                  right: 5,
                                  child: Container(
                                    width: 140,
                                    height: 15,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 115,
                                  left: 25,
                                  child: Container(
                                    width: 120,
                                    height: 110,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                              ],
                            )
                          : Container(
                              decoration: AppStyle.boxDecoration,
                              height: Get.width * 3 / 4,
                              width: Get.width,
                              child: Center(
                                child: Text(
                                  'Camera not initilaized yet'.tr,
                                  style: AppStyle.title,
                                ),
                              ),
                            ),
                ),
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  MyElevatedButton(
                      title: 'Scan ID MklGoogle'.tr,
                      onPressed: () =>
                          cameraClassController.takePictureAndMLGoogleScan()),
                  MyElevatedButton(
                      title: 'Scan ID Tesseract'.tr, onPressed: () {}),
                ],
              ),
              MyElevatedButton(
                  title: 'Scan ID Api'.tr,
                  onPressed: () => cameraClassController.extractCardId()),
              GetBuilder<CameraClassController>(
                  builder: (cameraClassController) => Expanded(
                      child:
                          Text(cameraClassController.scannedText.toString())))
            ],
          )
        ],
        isleading: true);
  }
}

class CameraWidgetPassPort extends StatelessWidget {
  final CameraClassController cameraClassController =
      Get.put(CameraClassController());

  CameraWidgetPassPort({super.key});

  @override
  Widget build(BuildContext context) {
    return MyScafolld(
        title: 'Scan Id'.tr,
        body: [
          Column(
            children: [
              Padding(
                padding:
                    const EdgeInsets.symmetric(vertical: 8, horizontal: 12),
                child: GetBuilder<CameraClassController>(
                  builder: (cameraClassController) =>
                      cameraClassController.isCameraInitialized
                          ? Stack(
                              children: [
                                Container(
                                  decoration: AppStyle.boxDecoration,
                                  child: FittedBox(
                                    fit: BoxFit.fitWidth,
                                    child: SizedBox(
                                      width: Get.width * .9,
                                      height: Get.width *
                                          .9, // Set the desired aspect ratio here
                                      child: CameraPreview(
                                        cameraClassController.cameraController,
                                      ),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 35,
                                  left: 35,
                                  width: Get.width * .77,
                                  height:
                                      17, //left":95.0,"top":134.0,"width":2909.0,"height":175.0
                                  child: Container(
                                    // width: 230,
                                    // height: 25,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.yellowColor,
                                          width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 60,
                                  right: 25,
                                  width: 90,
                                  height: 25,
                                  child: Container(
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                                Positioned(
                                  top: 110,
                                  right: 90,
                                  child: Container(
                                    width: 140,
                                    height: 20,
                                    decoration: BoxDecoration(
                                      // color: AppColor.blueColor,
                                      border: Border.all(
                                          color: AppColor.blueColor, width: 2),
                                    ),
                                  ),
                                ),
                              ],
                            )
                          : Container(
                              decoration: AppStyle.boxDecoration,
                              height: Get.width * 3 / 4,
                              width: Get.width,
                              child: Center(
                                child: Text(
                                  'Camera not initilaized yet',
                                  style: AppStyle.title,
                                ),
                              ),
                            ),
                ),
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  MyElevatedButton(
                      title: 'Scan ID MklGoogle'.tr,
                      onPressed: () =>
                          cameraClassController.takePictureAndMLGoogleScan()),
                  MyElevatedButton(
                      title: 'Scan ID Tesseract'.tr, onPressed: () {}),
                ],
              ),
              MyElevatedButton(
                  title: 'Scan ID Api'.tr,
                  onPressed: () => cameraClassController.extractCardId()),
              GetBuilder<CameraClassController>(
                  builder: (cameraClassController) => Expanded(
                      child:
                          Text(cameraClassController.scannedText.toString())))
            ],
          )
        ],
        isleading: true);
  }
}
