Files
tm_app/lib/data/services/model/customer/customer.dart
T
amirrezaghabeli 13dbb5fae5 Enhance Customer model to include role attribute and update related components
- Added a new `role` attribute to the `Customer` model in `customer.dart` and updated the corresponding generated files.
- Modified the `AuthViewModel` to set the user role based on the logged-in user's role.
- Updated UI components in `TenderDetailActions` and `DesktopTendersPage` to conditionally render elements based on the user's role.
- Refactored tests to validate the new role attribute in the `Customer` model.
2025-10-14 09:12:24 +03:30

49 lines
1.8 KiB
Dart

// ignore_for_file: invalid_annotation_target
import 'package:freezed_annotation/freezed_annotation.dart';
import '../address/address.dart';
import '../contact_person/contact_person.dart';
part 'customer.freezed.dart';
part 'customer.g.dart';
@freezed
abstract class Customer with _$Customer {
const factory Customer({
required String? id,
required String? type,
required String? status,
@JsonKey(name: 'first_name') required String? firstName,
@JsonKey(name: 'last_name') required String? lastName,
@JsonKey(name: 'full_name') required String? fullName,
required String? email,
required String? phone,
required String? mobile,
@JsonKey(name: 'registration_number') required String? registrationNumber,
@JsonKey(name: 'tax_id') required String? taxId,
required String? industry,
@JsonKey(name: 'business_type') required String? businessType,
@JsonKey(name: 'employee_count') required int? employeeCount,
@JsonKey(name: 'annual_revenue') required int? annualRevenue,
@JsonKey(name: 'founded_year') required int? foundedYear,
@JsonKey(name: 'is_verified') required bool? isVerified,
@JsonKey(name: 'is_compliant') required bool? isCompliant,
@JsonKey(name: 'compliance_notes') required String? complianceNotes,
required String? language,
required String? username,
required String? currency,
required String? role,
required String? timezone,
@JsonKey(name: 'created_at') required int? createdAt,
@JsonKey(name: 'updated_at') required int? updatedAt,
@JsonKey(name: 'created_by') required String? createdBy,
@JsonKey(name: 'updated_by') required String? updatedBy,
required Address? address,
required ContactPerson? contactPersons,
}) = _Customer;
factory Customer.fromJson(Map<String, Object?> json) =>
_$CustomerFromJson(json);
}