Entities:
  Employee:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - { match: empNumber }
        parameters:
          - { field: "firstName", class: 'FormatWithPurgeString' }
          - { field: "lastName", class: 'FormatWithEmployeeString' }
          - { field: "middleName", class: 'FormatWithEmptyString' }
          - { field: "nickName", class: 'FormatWithEmptyString' }
          - { field: "smoker", class: 'FormatWithZero' }
          #          - { field: "ethnicRaceCode", class: 'FormatWithNull' } #added
          - { field: "birthday", class: 'FormatWithNull' }
          - { field: "nationality", class: 'FormatWithNull' }
          - { field: "gender", class: 'FormatWithNull' }
          - { field: "maritalStatus", class: 'FormatWithNull' }
          - { field: "ssnNumber", class: 'FormatWithEmptyString' }
          - { field: "sinNumber", class: 'FormatWithEmptyString' }
          - { field: "otherId", class: 'FormatWithEmptyString' }
          - { field: "drivingLicenseNo", class: 'FormatWithEmptyString' }
          - { field: "drivingLicenseExpiredDate", class: 'FormatWithNull' }
          - { field: "militaryService", class: 'FormatWithEmptyString' }
          - { field: "empStatus", class: 'FormatWithNull' }
          - { field: "jobTitle", class: 'FormatWithNull' }
          - { field: "jobCategory", class: 'FormatWithNull' }
          - { field: "subDivision", class: 'FormatWithNull' }
          - { field: "street1", class: 'FormatWithEmptyString' }
          - { field: "street2", class: 'FormatWithEmptyString' }
          - { field: "city", class: 'FormatWithEmptyString' }
          - { field: "country", class: 'FormatWithEmptyString' }
          - { field: "province", class: 'FormatWithEmptyString' }
          - { field: "zipcode", class: 'FormatWithNull' }
          - { field: "homeTelephone", class: 'FormatWithNull' }
          - { field: "mobile", class: 'FormatWithNull' }
          - { field: "workTelephone", class: 'FormatWithNull' }
          - { field: "workEmail", class: 'FormatWithNull' }
          - { field: "joinedDate", class: 'FormatWithNull' }
          - { field: "otherEmail", class: 'FormatWithNull' }
          - { field: "custom1", class: 'FormatWithNull' }
          - { field: "custom2", class: 'FormatWithNull' }
          - { field: "custom3", class: 'FormatWithNull' }
          - { field: "custom4", class: 'FormatWithNull' }
          - { field: "custom5", class: 'FormatWithNull' }
          - { field: "custom6", class: 'FormatWithNull' }
          - { field: "custom7", class: 'FormatWithNull' }
          - { field: "custom8", class: 'FormatWithNull' }
          - { field: "custom9", class: 'FormatWithNull' }
          - { field: "custom10", class: 'FormatWithNull' }
          - { field: "purgedAt", class: 'FormatWithPurgeTime' }

  EmpPicture:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmployeeAttachment:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmpEmergencyContact:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmpDependent:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmployeeImmigrationRecord:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmpWorkExperience:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmployeeEducation:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmployeeSkill:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmployeeLanguage:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmployeeMembership:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmpUsTaxExemption:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmployeeLicense:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmployeeSalary:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmpLocations:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  EmpContract:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  User:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  ReportTo:
    PurgeStrategy:
      DestroyReportTo:
        match_by:
          - { match: THIS IS A EXCEPTION }

  PerformanceReview:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - { match: employee }
        parameters:
          - { field: "finalComment", class: 'FormatWithEmptyString' }

  ReviewerRating:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - {match: employee,  join: performanceReview}
        parameters:
          - {field: "comment", class: 'FormatWithEmptyString'}

  Reviewer:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - { match: employee, join: review }
        parameters:
          - { field: "comment", class: 'FormatWithEmptyString' }

  PerformanceTrackerLog:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - { match: employee,  join: performanceTracker }
        parameters:
          - { field: "comment", class: 'FormatWithEmptyString' }

  PerformanceTracker:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  LeaveComment:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - { match: employee, join: leave }
        parameters:
          - { field: 'comment', class: 'FormatWithPurgeString' }

  LeaveRequestComment:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - { match: employee, join: leaveRequest }
        parameters:
          - { field: 'comment', class: 'FormatWithPurgeString' }

  AttendanceRecord:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - { match: employee }
        parameters:
          - { field: "punchInNote", class: 'FormatWithPurgeString' }
          - { field: "punchOutNote", class: 'FormatWithPurgeString' }

  TimesheetItem:
    PurgeStrategy:
      ReplaceWithValue:
        match_by:
          - { match: employee }
        parameters:
          - { field: "comment", class: 'FormatWithPurgeString' }

  BuzzPost:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  BuzzShare:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  BuzzComment:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  BuzzLikeOnComment:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }

  BuzzLikeOnShare:
    PurgeStrategy:
      Destroy:
        match_by:
          - { match: employee }
