class SystemParamsModel {
  final int? id;
  final int? schedulerTime;
  final String? leaseTaxCode;
  final int? vesselConfProcessLimit;
  final int? rowToDisplay;
  final int? linkToDisplay;
  final int? rowToAdd;
  final int? lovRowToDisplay;
  final int? lovLinkToDisplay;
  final String? oidserverName;
  final String? oidBase;
  final String? oidAdminUser;
  final int? oidServerPort;
  final int? userDefaultGroup;
  final String? defaultDepartment;
  final String? defaultPosition;
  final String? singleCharge;
  final String? firstDayOftheWeek;
  final int? hourPerShift;
  final int? cnBillingFrequency;
  final String? billingDepartmentCode;
  final String? basePriceList;
  final String? nonContainerServiceOrder;
  final int? ediMaeSchedulerONOFF;
  final String? ediSchedulerONOFF;
  final String? uploadLogo;
  final String? uploadLogoName;
  final String? uploadLogoPath;
  final String? companyDisplayName;
  final bool? isRegitrationAllowed;
  final List<dynamic>? sysParamUploads;

  SystemParamsModel({
    this.id,
    this.schedulerTime,
    this.leaseTaxCode,
    this.vesselConfProcessLimit,
    this.rowToDisplay,
    this.linkToDisplay,
    this.rowToAdd,
    this.lovRowToDisplay,
    this.lovLinkToDisplay,
    this.oidserverName,
    this.oidBase,
    this.oidAdminUser,
    this.oidServerPort,
    this.userDefaultGroup,
    this.defaultDepartment,
    this.defaultPosition,
    this.singleCharge,
    this.firstDayOftheWeek,
    this.hourPerShift,
    this.cnBillingFrequency,
    this.billingDepartmentCode,
    this.basePriceList,
    this.nonContainerServiceOrder,
    this.ediMaeSchedulerONOFF,
    this.ediSchedulerONOFF,
    this.uploadLogo,
    this.uploadLogoName,
    this.uploadLogoPath,
    this.companyDisplayName,
    this.isRegitrationAllowed,
    this.sysParamUploads,
  });

  factory SystemParamsModel.fromJson(Map<String, dynamic> json) {
    return SystemParamsModel(
      id: json['id'],
      schedulerTime: json['schedulerTime'],
      leaseTaxCode: json['leaseTaxCode'],
      vesselConfProcessLimit: json['vesselConfProcessLimit'],
      rowToDisplay: json['rowToDisplay'],
      linkToDisplay: json['linkToDisplay'],
      rowToAdd: json['rowToAdd'],
      lovRowToDisplay: json['lovRowToDisplay'],
      lovLinkToDisplay: json['lovLinkToDisplay'],
      oidserverName: json['oidserverName'],
      oidBase: json['oidBase'],
      oidAdminUser: json['oidAdminUser'],
      oidServerPort: json['oidServerPort'],
      userDefaultGroup: json['userDefaultGroup'],
      defaultDepartment: json['defaultDepartment'],
      defaultPosition: json['defaultPosition'],
      singleCharge: json['singleCharge'],
      firstDayOftheWeek: json['firstDayOftheWeek'],
      hourPerShift: json['hourPerShift'],
      cnBillingFrequency: json['cnBillingFrequency'],
      billingDepartmentCode: json['billingDepartmentCode'],
      basePriceList: json['basePriceList'],
      nonContainerServiceOrder: json['nonContainerServiceOrder'],
      ediMaeSchedulerONOFF: json['ediMaeSchedulerONOFF'],
      ediSchedulerONOFF: json['ediSchedulerONOFF'],
      uploadLogo: json['upload_Logo'],
      uploadLogoName: json['upload_Logo_name'],
      uploadLogoPath: json['upload_Logo_path'],
      companyDisplayName: json['Company_Display_Name'],
      isRegitrationAllowed: json['isRegitrationAllowed'],
      sysParamUploads: json['sysParamUploads'],
    );
  }

  Map<String, dynamic> toJson() {
    return {
      'id': id,
      'schedulerTime': schedulerTime,
      'leaseTaxCode': leaseTaxCode,
      'vesselConfProcessLimit': vesselConfProcessLimit,
      'rowToDisplay': rowToDisplay,
      'linkToDisplay': linkToDisplay,
      'rowToAdd': rowToAdd,
      'lovRowToDisplay': lovRowToDisplay,
      'lovLinkToDisplay': lovLinkToDisplay,
      'oidserverName': oidserverName,
      'oidBase': oidBase,
      'oidAdminUser': oidAdminUser,
      'oidServerPort': oidServerPort,
      'userDefaultGroup': userDefaultGroup,
      'defaultDepartment': defaultDepartment,
      'defaultPosition': defaultPosition,
      'singleCharge': singleCharge,
      'firstDayOftheWeek': firstDayOftheWeek,
      'hourPerShift': hourPerShift,
      'cnBillingFrequency': cnBillingFrequency,
      'billingDepartmentCode': billingDepartmentCode,
      'basePriceList': basePriceList,
      'nonContainerServiceOrder': nonContainerServiceOrder,
      'ediMaeSchedulerONOFF': ediMaeSchedulerONOFF,
      'ediSchedulerONOFF': ediSchedulerONOFF,
      'upload_Logo': uploadLogo,
      'upload_Logo_name': uploadLogoName,
      'upload_Logo_path': uploadLogoPath,
      'Company_Display_Name': companyDisplayName,
      'isRegitrationAllowed': isRegitrationAllowed,
      'sysParamUploads': sysParamUploads,
    };
  }

  SystemParamsModel copyWith({
    int? id,
    int? schedulerTime,
    String? leaseTaxCode,
    int? vesselConfProcessLimit,
    int? rowToDisplay,
    int? linkToDisplay,
    int? rowToAdd,
    int? lovRowToDisplay,
    int? lovLinkToDisplay,
    String? oidserverName,
    String? oidBase,
    String? oidAdminUser,
    int? oidServerPort,
    int? userDefaultGroup,
    String? defaultDepartment,
    String? defaultPosition,
    String? singleCharge,
    String? firstDayOftheWeek,
    int? hourPerShift,
    int? cnBillingFrequency,
    String? billingDepartmentCode,
    String? basePriceList,
    String? nonContainerServiceOrder,
    int? ediMaeSchedulerONOFF,
    String? ediSchedulerONOFF,
    String? uploadLogo,
    String? uploadLogoName,
    String? uploadLogoPath,
    String? companyDisplayName,
    bool? isRegitrationAllowed,
    List<dynamic>? sysParamUploads,
  }) {
    return SystemParamsModel(
      id: id ?? this.id,
      schedulerTime: schedulerTime ?? this.schedulerTime,
      leaseTaxCode: leaseTaxCode ?? this.leaseTaxCode,
      vesselConfProcessLimit:
          vesselConfProcessLimit ?? this.vesselConfProcessLimit,
      rowToDisplay: rowToDisplay ?? this.rowToDisplay,
      linkToDisplay: linkToDisplay ?? this.linkToDisplay,
      rowToAdd: rowToAdd ?? this.rowToAdd,
      lovRowToDisplay: lovRowToDisplay ?? this.lovRowToDisplay,
      lovLinkToDisplay: lovLinkToDisplay ?? this.lovLinkToDisplay,
      oidserverName: oidserverName ?? this.oidserverName,
      oidBase: oidBase ?? this.oidBase,
      oidAdminUser: oidAdminUser ?? this.oidAdminUser,
      oidServerPort: oidServerPort ?? this.oidServerPort,
      userDefaultGroup: userDefaultGroup ?? this.userDefaultGroup,
      defaultDepartment: defaultDepartment ?? this.defaultDepartment,
      defaultPosition: defaultPosition ?? this.defaultPosition,
      singleCharge: singleCharge ?? this.singleCharge,
      firstDayOftheWeek: firstDayOftheWeek ?? this.firstDayOftheWeek,
      hourPerShift: hourPerShift ?? this.hourPerShift,
      cnBillingFrequency: cnBillingFrequency ?? this.cnBillingFrequency,
      billingDepartmentCode:
          billingDepartmentCode ?? this.billingDepartmentCode,
      basePriceList: basePriceList ?? this.basePriceList,
      nonContainerServiceOrder:
          nonContainerServiceOrder ?? this.nonContainerServiceOrder,
      ediMaeSchedulerONOFF: ediMaeSchedulerONOFF ?? this.ediMaeSchedulerONOFF,
      ediSchedulerONOFF: ediSchedulerONOFF ?? this.ediSchedulerONOFF,
      uploadLogo: uploadLogo ?? this.uploadLogo,
      uploadLogoName: uploadLogoName ?? this.uploadLogoName,
      uploadLogoPath: uploadLogoPath ?? this.uploadLogoPath,
      companyDisplayName: companyDisplayName ?? this.companyDisplayName,
      isRegitrationAllowed: isRegitrationAllowed ?? this.isRegitrationAllowed,
      sysParamUploads: sysParamUploads ?? this.sysParamUploads,
    );
  }
}
