import 'package:krow/features/profile/wages_forms/domain/entities/wage_form_entity.dart';
import 'package:krow/features/profile/wages_forms/domain/utils/wage_form_visitor.dart';

class OfferLetterEntity extends WageFormEntity {
  const OfferLetterEntity({
    required super.isSigned,
    required super.isSubmitted,
    required this.fullName,
    required this.city,
  });

  const OfferLetterEntity.empty({
    super.isSigned = false,
    super.isSubmitted = false,
    this.fullName = '',
    this.city = '',
  });

  final String fullName;
  final String city;

  @override
  String get name => 'Offer Letter & Agreement';

  @override
  T visit<T>(WageFormVisitor<T> visitor) {
    return visitor.visitOfferLetterFrom(this);
  }

  OfferLetterEntity copyWith({
    bool? isSigned,
    bool? isSubmitted,
    String? fullName,
    String? city,
  }) {
    return OfferLetterEntity(
      isSigned: isSigned ?? this.isSigned,
      isSubmitted: isSubmitted ?? this.isSubmitted,
      fullName: fullName ?? this.fullName,
      city: city ?? this.city,
    );
  }
}
