/* Options: Date: 2024-06-18 01:55:17 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateJob.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @ValidateRequest(Validator="IsAuthenticated") open class CreateJob : IReturn, ICreateDb { var title:String? = null @Validate(Validator="GreaterThan(0)") var salaryRangeLower:Int? = null @Validate(Validator="GreaterThan(0)") var salaryRangeUpper:Int? = null var description:String? = null var employmentType:EmploymentType? = null var company:String? = null var location:String? = null var closing:Date? = null companion object { private val responseType = Job::class.java } override fun getResponseType(): Any? = CreateJob.responseType } open class Job : AuditBase() { var id:Int? = null var title:String? = null var employmentType:EmploymentType? = null var company:String? = null var location:String? = null var salaryRangeLower:Int? = null var salaryRangeUpper:Int? = null var description:String? = null var applications:ArrayList = ArrayList() var closing:Date? = null } open class JobApplicationAttachment { var id:Int? = null @References(JobApplication.class) var jobApplicationId:Int? = null var fileName:String? = null var filePath:String? = null var contentType:String? = null var contentLength:Long? = null } open class AppUser { var id:String? = null var firstName:String? = null var lastName:String? = null var displayName:String? = null var profileUrl:String? = null } enum class EmploymentType { FullTime, PartTime, Casual, Contract, } open class Contact { var id:Int? = null @Computed() var displayName:String? = null var profileUrl:String? = null var firstName:String? = null var lastName:String? = null var salaryExpectation:Int? = null var jobType:String? = null var availabilityWeeks:Int? = null var preferredWorkType:EmploymentType? = null var preferredLocation:String? = null var email:String? = null var phone:String? = null var skills:ArrayList = ArrayList() var about:String? = null var applications:ArrayList = ArrayList() } enum class JobApplicationStatus { Applied, PhoneScreening, PhoneScreeningCompleted, Interview, InterviewCompleted, Offer, Disqualified, } open class JobApplication { var id:Int? = null @References(Job.class) var jobId:Int? = null @References(Contact.class) var contactId:Int? = null var position:Job? = null var applicant:Contact? = null var comments:ArrayList = ArrayList() var appliedDate:Date? = null var applicationStatus:JobApplicationStatus? = null var attachments:ArrayList = ArrayList() var events:ArrayList = ArrayList() var phoneScreen:PhoneScreen? = null var interview:Interview? = null var jobOffer:JobOffer? = null } open class PhoneScreen : AuditBase() { var id:Int? = null @References(AppUser.class) var appUserId:String? = null var appUser:AppUser? = null @References(JobApplication.class) var jobApplicationId:Int? = null var applicationStatus:JobApplicationStatus? = null var notes:String? = null } open class Interview : AuditBase() { var id:Int? = null var bookingTime:Date? = null @References(JobApplication.class) var jobApplicationId:Int? = null @References(AppUser.class) var appUserId:String? = null var appUser:AppUser? = null var applicationStatus:JobApplicationStatus? = null var notes:String? = null } open class JobOffer : AuditBase() { var id:Int? = null var salaryOffer:Int? = null var currency:String? = null @References(JobApplication.class) var jobApplicationId:Int? = null @References(AppUser.class) var appUserId:String? = null var appUser:AppUser? = null var notes:String? = null } open class JobApplicationEvent : AuditBase() { var id:Int? = null @References(JobApplication.class) var jobApplicationId:Int? = null @References(AppUser.class) var appUserId:String? = null var appUser:AppUser? = null var description:String? = null var status:JobApplicationStatus? = null var eventDate:Date? = null } open class JobApplicationComment : AuditBase() { var id:Int? = null @References(AppUser.class) var appUserId:String? = null var appUser:AppUser? = null @References(JobApplication.class) var jobApplicationId:Int? = null var comment:String? = null } @DataContract open class AuditBase { @DataMember(Order=1) var createdDate:Date? = null @DataMember(Order=2) @Required() var createdBy:String? = null @DataMember(Order=3) var modifiedDate:Date? = null @DataMember(Order=4) @Required() var modifiedBy:String? = null @DataMember(Order=5) var deletedDate:Date? = null @DataMember(Order=6) var deletedBy:String? = null }