# frozen_string_literal: true require 'yardi/utils/phone_parser' module Yardi module Model class Resident attr_reader :status, :lease_id, :lease_lead_id, :first_name, :last_name, :email, :phones, :unit_name, :move_in_date, :lease_from_date, :lease_to_date, :type, :roommates def initialize(resident, type:, roommates: nil) @status = resident['Status'] @lease_id = resident['tCode'] @lease_lead_id = resident['pCode'] @first_name = resident['FirstName'] @last_name = resident['LastName'] @email = resident['Email'] @unit_name = resident['UnitCode'] @phones = Utils::PhoneParser.parse(resident['Phone']) @move_in_date = parse_date(resident['MoveInDate']) @lease_from_date = parse_date(resident['LeaseFromDate']) @lease_to_date = parse_date(resident['LeaseToDate']) @type = type @roommates = roommates || [] end private # Residents may not have LeaseFromDate or LeaseToDate. def parse_date(date) date && Date.strptime(date, '%m/%d/%Y') end end end end