import 'package:domain/generated/json/base/json_field.dart';
import 'package:domain/generated/json/paid_service_pay_success_info_entity.g.dart';
import 'dart:convert';
export 'package:domain/generated/json/paid_service_pay_success_info_entity.g.dart';

@JsonSerializable()
class PaidServicePaySuccessInfoEntity {
	String? id;
	String? sn;
	@JSONField(name: "total_amount")
	int? totalAmount;
	@JSONField(name: "paid_at")
	String? paidAt;
	String? notes;
	PaidServicePaySuccessInfoAccount? account;
	@JSONField(name: "order_service")
	PaidServicePaySuccessInfoOrderService? orderService;
	PaidServicePaySuccessInfoMerchant? merchant;
	PaidServicePaySuccessInfoStaff? staff;
	@JSONField(name: "order_products")
	List<PaidServicePaySuccessInfoOrderProducts>? orderProducts;
	PaidServicePaySuccessInfoEstate? estate;
	@JSONField(name: "estate_unit")
	PaidServicePaySuccessInfoEstateUnit? estateUnit;
	PaidServicePaySuccessInfoOrder? order;

	PaidServicePaySuccessInfoEntity();

	factory PaidServicePaySuccessInfoEntity.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoEntityFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoEntityToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class PaidServicePaySuccessInfoAccount {
	String? id;
	String? name;
	String? avatar;
	String? phone;

	PaidServicePaySuccessInfoAccount();

	factory PaidServicePaySuccessInfoAccount.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoAccountFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoAccountToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class PaidServicePaySuccessInfoOrderService {
	String? id;
	String? name;
	@JSONField(name: "evaluations_avg_score")
	int? evaluationsAvgScore;

	PaidServicePaySuccessInfoOrderService();

	factory PaidServicePaySuccessInfoOrderService.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoOrderServiceFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoOrderServiceToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class PaidServicePaySuccessInfoMerchant {
	String? id;
	String? name;
	@JSONField(name: "contact_phone")
	String? contactPhone;

	PaidServicePaySuccessInfoMerchant();

	factory PaidServicePaySuccessInfoMerchant.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoMerchantFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoMerchantToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class PaidServicePaySuccessInfoStaff {
	String? id;
	String? name;
	String? phone;

	PaidServicePaySuccessInfoStaff();

	factory PaidServicePaySuccessInfoStaff.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoStaffFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoStaffToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class PaidServicePaySuccessInfoOrderProducts {
	String? id;
	@JSONField(name: "product_name")
	String? productName;
	int? quantity;
	@JSONField(name: "total_amount")
	int? totalAmount;
	@JSONField(name: "planned_service_at")
	String? plannedServiceAt;

	PaidServicePaySuccessInfoOrderProducts();

	factory PaidServicePaySuccessInfoOrderProducts.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoOrderProductsFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoOrderProductsToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class PaidServicePaySuccessInfoEstate {
	String? id;
	String? name;

	PaidServicePaySuccessInfoEstate();

	factory PaidServicePaySuccessInfoEstate.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoEstateFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoEstateToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class PaidServicePaySuccessInfoEstateUnit {
	String? id;
	String? unit;
	String? address;

	PaidServicePaySuccessInfoEstateUnit();

	factory PaidServicePaySuccessInfoEstateUnit.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoEstateUnitFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoEstateUnitToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class PaidServicePaySuccessInfoOrder {
	int? id;
	@JSONField(name: "total_amount")
	String? totalAmount;
	@JSONField(name: "order_amount")
	String? orderAmount;
	@JSONField(name: "deposit_amount")
	String? depositAmount;
	@JSONField(name: "payment_status")
	int? paymentStatus;
	@JSONField(name: "refund_status")
	int? refundStatus;

	PaidServicePaySuccessInfoOrder();

	factory PaidServicePaySuccessInfoOrder.fromJson(Map<String, dynamic> json) => $PaidServicePaySuccessInfoOrderFromJson(json);

	Map<String, dynamic> toJson() => $PaidServicePaySuccessInfoOrderToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}