import 'package:flutter/material.dart';
import 'package:initial_folder/size_config.dart';
import 'package:initial_folder/theme.dart';
import 'package:intl/intl.dart';

class CourseList extends StatelessWidget {
  const CourseList({
    Key? key,
    required this.idCourse,
    required this.title,
    required this.price,
    required this.discountPrice,
    required this.imageUrl,
    this.isDetailCourse,
  }) : super(key: key);

  final String idCourse;
  final String title;
  final String price;
  final String discountPrice;
  final String imageUrl;
  final bool? isDetailCourse;

  @override
  Widget build(BuildContext context) {
    print("Ini price ${price}");
    print("Ini discountPrice ${discountPrice}");
    return Column(
      children: [
        Row(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Flexible(
                flex: 10,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.start,
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Container(
                      width: getProportionateScreenWidth(70),
                      height: getProportionateScreenWidth(39),
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(5),
                        image: DecorationImage(
                          fit: BoxFit.cover,
                          image: NetworkImage(imageUrl),
                        ),
                      ),
                    ),
                  ],
                )),
            SizedBox(width: getProportionateScreenWidth(10)),
            Expanded(
                flex: 15,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.start,
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Text(
                      title,
                      style: thirdTextStyle.copyWith(
                        letterSpacing: 0.5,
                        fontWeight: reguler,
                        fontSize: getProportionateScreenWidth(12),
                      ),
                      maxLines: 2,
                      overflow: TextOverflow.ellipsis,
                    ),
                  ],
                )),
            Spacer(),
            Flexible(
              flex: 10,
              child: Align(
                alignment: Alignment.centerRight,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.end,
                  crossAxisAlignment: CrossAxisAlignment.end,
                  children: [
                    if (isDetailCourse == null)
                      discountPrice == "0"
                          ? Text(
                              'Rp. ${NumberFormat.currency(locale: 'id', symbol: '', decimalDigits: 0).format(double.parse(price))}',
                              style: thirdTextStyle.copyWith(
                                letterSpacing: 0.5,
                                fontWeight: reguler,
                                fontSize: getProportionateScreenWidth(11),
                              ),
                            )
                          : Text(
                              'Rp. ${NumberFormat.currency(locale: 'id', symbol: '', decimalDigits: 0).format(double.parse(price))}',
                              style: thirdTextStyle.copyWith(
                                letterSpacing: 0.5,
                                fontWeight: reguler,
                                fontSize: getProportionateScreenWidth(11),
                              ),
                            )
                    else
                      discountPrice == "0"
                          ? Text(
                              'Rp. ${NumberFormat.currency(locale: 'id', symbol: '', decimalDigits: 0).format(double.parse(price))}',
                              style: thirdTextStyle.copyWith(
                                letterSpacing: 0.5,
                                fontWeight: reguler,
                                fontSize: getProportionateScreenWidth(11),
                              ),
                            )
                          : Text(
                              'Rp. ${NumberFormat.currency(locale: 'id', symbol: '', decimalDigits: 0).format(double.parse(price == "0" ? discountPrice : price))}',
                              style: thirdTextStyle.copyWith(
                                letterSpacing: 0.5,
                                fontWeight: reguler,
                                fontSize: getProportionateScreenWidth(11),
                              ),
                            ),
                    if (isDetailCourse == null)
                      if (discountPrice != "0" && discountPrice != price)
                        Text(
                          'Rp ${NumberFormat.currency(locale: 'id', symbol: '', decimalDigits: 0).format(double.parse(discountPrice))}',
                          style: thirdTextStyle.copyWith(
                            letterSpacing: 0.5,
                            decoration: TextDecoration.lineThrough,
                            color: fourthColor,
                            fontWeight: reguler,
                            fontSize: SizeConfig.blockHorizontal! * 2.7,
                          ),
                        )
                      else
                        SizedBox.shrink()
                    else if (price != "0")
                      Text(
                        'Rp ${NumberFormat.currency(locale: 'id', symbol: '', decimalDigits: 0).format(double.parse(discountPrice))}',
                        style: thirdTextStyle.copyWith(
                          letterSpacing: 0.5,
                          decoration: TextDecoration.lineThrough,
                          color: fourthColor,
                          fontWeight: reguler,
                          fontSize: SizeConfig.blockHorizontal! * 2.7,
                        ),
                      )
                    else
                      SizedBox.shrink(),
                    SizedBox(height: getProportionateScreenHeight(2)),
                    discountPrice != "0" && discountPrice != price
                        ? SizedBox()
                        : SizedBox(),
                  ],
                ),
              ),
            ),
          ],
        ),
        SizedBox(height: getProportionateScreenHeight(10)),
        Divider(color: fourthColor),
        SizedBox(height: getProportionateScreenHeight(5)),
      ],
    );
  }
}
