/* Options:
Date: 2025-04-09 09:43:47
Version: 6.10
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://staging-api.billiecart.com.au

//Package: 
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: UpdateEmployerRequest.*
//ExcludeTypes: 
//InitializeCollections: True
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,net.servicestack.client.*
*/

import java.math.*
import java.util.*
import net.servicestack.client.*


@Route(Path="/employers/{Id}", Verbs="PUT")
open class UpdateEmployerRequest : PutOperationTenanted<UpdateEmployerResponse>(), IReturn<UpdateEmployerResponse>
{
    var id:String? = null
    var name:String? = null
    companion object { private val responseType = UpdateEmployerResponse::class.java }
    override fun getResponseType(): Any? = UpdateEmployerRequest.responseType
}

open class UpdateEmployerResponse
{
    var responseStatus:ResponseStatus? = null
    var employer:Employer? = null
}

open interface ITenantedRequest
{
    var organisationId:String?
}

open class PutOperationUnTenanted<TResponse> : IPut
{
}

open class PutOperationTenanted<TResponse> : PutOperationUnTenanted<TResponse>(), ITenantedRequest
{
    var organisationId:String? = null
}

open class Employer : IIdentifiableResource
{
    var name:String? = null
    var businessDetails:BusinessDetails? = null
    var contact:Contact? = null
    var postalAddress:Address? = null
    var physicalAddress:Address? = null
    var id:String? = null
}

open interface IIdentifiableResource
{
    var id:String?
}

open class BusinessDetails
{
    var tradingName:String? = null
    var australianBusinessNumber:String? = null
    var australianCompanyNumber:String? = null
}

open class Contact
{
    var contactName:String? = null
    var email:String? = null
    var phoneNumber:String? = null
    var preferredContactMethod:String? = null
}

open class Address
{
    var addressLine1:String? = null
    var addressLine2:String? = null
    var suburb:String? = null
    var stateTerritory:String? = null
    var postcode:String? = null
}