class TimeCard::Request < ApplicationRecord
  include Base::TimeCard::Request

  enum status: { pending: 1, approved: 2, denied: 3 }

  belongs_to :user, foreign_key: :UserID, inverse_of: :time_card_requests
  belongs_to :author, foreign_key: :AuthorID, class_name: '::Employee',
    inverse_of: :time_card_requests
  belongs_to :task, foreign_key: :TCTID, class_name: '::TimeCard::Task', optional: true,
    inverse_of: :requests

  before_create :set_created_at

  validates :date, presence: true

  private
    def set_created_at
      self.created_at = Time.zone.now
    end
end
