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

@JsonSerializable()
class PaidServiceDetailEntity {
	int? id;
	List<String>? resources;
	String? name;
	@JSONField(name: "evaluations_avg_score")
	int? evaluationsAvgScore;
	String? highlight;
	@JSONField(name: "urgent_price")
	int? urgentPrice;
	@JSONField(name: "holiday_price")
	int? holidayPrice;
	@JSONField(name: "night_price")
	int? nightPrice;
	@JSONField(name: "service_period_start")
	String? servicePeriodStart;
	@JSONField(name: "service_period_end")
	String? servicePeriodEnd;
	@JSONField(name: "service_period_interval")
	int? servicePeriodInterval;
	String? description;
	PaidServiceDetailMerchant? merchant;
	PaidServiceDetailCategory? category;
	List<PaidServiceDetailProducts>? products;
	List<PaidServiceDetailEvaluations>? evaluations;

	PaidServiceDetailEntity();

	factory PaidServiceDetailEntity.fromJson(Map<String, dynamic> json) => $PaidServiceDetailEntityFromJson(json);

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

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

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

	PaidServiceDetailMerchant();

	factory PaidServiceDetailMerchant.fromJson(Map<String, dynamic> json) => $PaidServiceDetailMerchantFromJson(json);

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

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

@JsonSerializable()
class PaidServiceDetailCategory {
	int? id;
	String? name;
	String? type;

	PaidServiceDetailCategory();

	factory PaidServiceDetailCategory.fromJson(Map<String, dynamic> json) => $PaidServiceDetailCategoryFromJson(json);

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

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

@JsonSerializable()
class PaidServiceDetailProducts {
	int? id;
	String? name;
	@JSONField(name: "short_description")
	String? shortDescription;
	int? price;

	PaidServiceDetailProducts();

	factory PaidServiceDetailProducts.fromJson(Map<String, dynamic> json) => $PaidServiceDetailProductsFromJson(json);

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

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

@JsonSerializable()
class PaidServiceDetailEvaluations {
	int? id;
	int? score;
	String? comment;
	List<dynamic>? resources;
	PaidServiceDetailEvaluationsAccount? account;
	@JSONField(name: "created_at")
	String? createdAt;

	PaidServiceDetailEvaluations();

	factory PaidServiceDetailEvaluations.fromJson(Map<String, dynamic> json) => $PaidServiceDetailEvaluationsFromJson(json);

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

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

@JsonSerializable()
class PaidServiceDetailEvaluationsAccount {
	int? id;
	String? name;
	String? avatar;

	PaidServiceDetailEvaluationsAccount();

	factory PaidServiceDetailEvaluationsAccount.fromJson(Map<String, dynamic> json) => $PaidServiceDetailEvaluationsAccountFromJson(json);

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

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