# NOTE: This file is auto generated by OpenAPI Generator 7.9.0-SNAPSHOT (https://openapi-generator.tech). # Do not edit this file manually. defmodule Procore.Model.PunchItem do @moduledoc """ """ @derive Jason.Encoder defstruct [ :id, :ball_in_court, :closed_at, :cost_impact, :cost_impact_amount, :created_at, :deleted_at, :description, :due_date, :name, :reference, :schedule_impact, :schedule_impact_days, :schedule_risk, :schedule_risk_reason, :schedule_risk_confidence, :schedule_risk_probability, :position, :priority, :private, :status, :has_resolved_responses, :has_unresolved_responses, :updated_at, :location, :trade, :created_by, :punch_item_manager, :final_approver, :punch_item_type, :cost_code, :assignments, :assignees, :workflow_status, :custom_fields ] @type t :: %__MODULE__{ :id => integer() | nil, :ball_in_court => [Procore.Model.PunchItemBallInCourtInner.t()] | nil, :closed_at => DateTime.t() | nil, :cost_impact => String.t() | nil, :cost_impact_amount => String.t() | nil, :created_at => DateTime.t() | nil, :deleted_at => DateTime.t() | nil, :description => String.t() | nil, :due_date => Date.t() | nil, :name => String.t() | nil, :reference => String.t() | nil, :schedule_impact => String.t() | nil, :schedule_impact_days => integer() | nil, :schedule_risk => String.t() | nil, :schedule_risk_reason => String.t() | nil, :schedule_risk_confidence => integer() | nil, :schedule_risk_probability => integer() | nil, :position => integer() | nil, :priority => String.t() | nil, :private => boolean() | nil, :status => String.t() | nil, :has_resolved_responses => boolean() | nil, :has_unresolved_responses => boolean() | nil, :updated_at => DateTime.t() | nil, :location => Procore.Model.Location1.t() | nil, :trade => Procore.Model.Trade.t() | nil, :created_by => Procore.Model.RestV10ProjectsProjectIdWorkLogsGet200ResponseInnerCreatedBy.t() | nil, :punch_item_manager => Procore.Model.PunchItemBallInCourtInner.t() | nil, :final_approver => Procore.Model.PunchItemBallInCourtInner.t() | nil, :punch_item_type => Procore.Model.PunchItemType.t() | nil, :cost_code => Procore.Model.TimecardEntryFullCostCode.t() | nil, :assignments => [Procore.Model.PunchItemAssignmentsInner.t()] | nil, :assignees => [Procore.Model.RestV10ProjectsProjectIdWorkLogsGet200ResponseInnerCreatedBy.t()] | nil, :workflow_status => String.t() | nil, :custom_fields => Procore.Model.RestV10ProjectsProjectIdVisitorLogsGet200ResponseInnerCustomFields.t() | nil } alias Procore.Deserializer def decode(value) do value |> Deserializer.deserialize(:ball_in_court, :list, Procore.Model.PunchItemBallInCourtInner) |> Deserializer.deserialize(:closed_at, :datetime, nil) |> Deserializer.deserialize(:created_at, :datetime, nil) |> Deserializer.deserialize(:deleted_at, :datetime, nil) |> Deserializer.deserialize(:due_date, :date, nil) |> Deserializer.deserialize(:updated_at, :datetime, nil) |> Deserializer.deserialize(:location, :struct, Procore.Model.Location1) |> Deserializer.deserialize(:trade, :struct, Procore.Model.Trade) |> Deserializer.deserialize( :created_by, :struct, Procore.Model.RestV10ProjectsProjectIdWorkLogsGet200ResponseInnerCreatedBy ) |> Deserializer.deserialize( :punch_item_manager, :struct, Procore.Model.PunchItemBallInCourtInner ) |> Deserializer.deserialize(:final_approver, :struct, Procore.Model.PunchItemBallInCourtInner) |> Deserializer.deserialize(:punch_item_type, :struct, Procore.Model.PunchItemType) |> Deserializer.deserialize(:cost_code, :struct, Procore.Model.TimecardEntryFullCostCode) |> Deserializer.deserialize(:assignments, :list, Procore.Model.PunchItemAssignmentsInner) |> Deserializer.deserialize( :assignees, :list, Procore.Model.RestV10ProjectsProjectIdWorkLogsGet200ResponseInnerCreatedBy ) |> Deserializer.deserialize( :custom_fields, :struct, Procore.Model.RestV10ProjectsProjectIdVisitorLogsGet200ResponseInnerCustomFields ) end end