# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT. # typed: true # frozen_string_literal: true module StackOne module Shared class Employment < ::StackOne::Utils::FieldAugmented extend T::Sig # The created_at date field :created_at, T.nilable(::DateTime), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('created_at'), 'decoder': Utils.datetime_from_iso_format(true) } } # The effective date of the employment contract field :effective_date, T.nilable(::DateTime), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('effective_date'), 'decoder': Utils.datetime_from_iso_format(true) } } # The employee ID associated with this employment field :employee_id, T.nilable(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('employee_id') } } # The employment work schedule type (e.g., full-time, part-time) field :employment_contract_type, T.nilable(::StackOne::Shared::EmploymentEmploymentContractType), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('employment_contract_type') } } # The type of employment (e.g., contractor, permanent) field :employment_type, T.nilable(::StackOne::Shared::EmploymentEmploymentType), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('employment_type') } } # The unique ID of the employment field :id, T.nilable(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('id') } } # The job title of the employee field :job_title, T.nilable(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('job_title') } } # The currency used for pay field :pay_currency, T.nilable(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('pay_currency') } } # The pay frequency field :pay_frequency, T.nilable(::StackOne::Shared::PayFrequency), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('pay_frequency') } } # The pay period field :pay_period, T.nilable(::StackOne::Shared::PayPeriod), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('pay_period') } } # The pay rate for the employee field :pay_rate, T.nilable(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('pay_rate') } } # The updated_at date field :updated_at, T.nilable(::DateTime), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('updated_at'), 'decoder': Utils.datetime_from_iso_format(true) } } sig { params(created_at: T.nilable(::DateTime), effective_date: T.nilable(::DateTime), employee_id: T.nilable(::String), employment_contract_type: T.nilable(::StackOne::Shared::EmploymentEmploymentContractType), employment_type: T.nilable(::StackOne::Shared::EmploymentEmploymentType), id: T.nilable(::String), job_title: T.nilable(::String), pay_currency: T.nilable(::String), pay_frequency: T.nilable(::StackOne::Shared::PayFrequency), pay_period: T.nilable(::StackOne::Shared::PayPeriod), pay_rate: T.nilable(::String), updated_at: T.nilable(::DateTime)).void } def initialize(created_at: nil, effective_date: nil, employee_id: nil, employment_contract_type: nil, employment_type: nil, id: nil, job_title: nil, pay_currency: nil, pay_frequency: nil, pay_period: nil, pay_rate: nil, updated_at: nil) @created_at = created_at @effective_date = effective_date @employee_id = employee_id @employment_contract_type = employment_contract_type @employment_type = employment_type @id = id @job_title = job_title @pay_currency = pay_currency @pay_frequency = pay_frequency @pay_period = pay_period @pay_rate = pay_rate @updated_at = updated_at end end end end