/// Options: /// Date: 2026-08-13 04:11:58 /// Version: 10.09 /// Tip: To override a DTO option, remove "/" prefix before updating /// BaseUrl: https://blazor-gallery.servicestack.net /// GlobalNamespace: /// MakePropertiesOptional: False /// AddServiceStackTypes: True /// AddResponseStatus: False /// AddImplicitVersion: /// AddDescriptionAsComments: True //IncludeTypes: CreateInterview.* /// ExcludeTypes: /// DefaultImports: const std = @import("std"); /// const std = @import("std"); pub const JobApplicationAttachment = struct { id: i32 = 0, // @References(typeof(JobApplication)) jobApplicationId: i32 = 0, fileName: ?[]const u8 = null, filePath: ?[]const u8 = null, contentType: ?[]const u8 = null, contentLength: i64 = 0, }; pub const AppUser = struct { id: ?[]const u8 = null, firstName: ?[]const u8 = null, lastName: ?[]const u8 = null, displayName: ?[]const u8 = null, profileUrl: ?[]const u8 = null, }; pub const EmploymentType = enum { FullTime, PartTime, Casual, Contract, }; pub const Job = struct { // @DataMember(Order=1) createdDate: ?[]const u8 = null, // @DataMember(Order=2) // @Required() createdBy: ?[]const u8 = null, // @DataMember(Order=3) modifiedDate: ?[]const u8 = null, // @DataMember(Order=4) // @Required() modifiedBy: ?[]const u8 = null, // @DataMember(Order=5) deletedDate: ?[]const u8 = null, // @DataMember(Order=6) deletedBy: ?[]const u8 = null, id: i32 = 0, title: ?[]const u8 = null, employmentType: ?EmploymentType = null, company: ?[]const u8 = null, location: ?[]const u8 = null, salaryRangeLower: i32 = 0, salaryRangeUpper: i32 = 0, description: ?[]const u8 = null, applications: []JobApplication = &.{}, closing: ?[]const u8 = null, }; pub const Contact = struct { id: i32 = 0, // @Computed() displayName: ?[]const u8 = null, profileUrl: ?[]const u8 = null, firstName: ?[]const u8 = null, lastName: ?[]const u8 = null, salaryExpectation: ?i32 = null, jobType: ?[]const u8 = null, availabilityWeeks: i32 = 0, preferredWorkType: ?EmploymentType = null, preferredLocation: ?[]const u8 = null, email: ?[]const u8 = null, phone: ?[]const u8 = null, skills: ?[][]const u8 = null, about: ?[]const u8 = null, applications: []JobApplication = &.{}, }; pub const JobApplicationComment = struct { // @DataMember(Order=1) createdDate: ?[]const u8 = null, // @DataMember(Order=2) // @Required() createdBy: ?[]const u8 = null, // @DataMember(Order=3) modifiedDate: ?[]const u8 = null, // @DataMember(Order=4) // @Required() modifiedBy: ?[]const u8 = null, // @DataMember(Order=5) deletedDate: ?[]const u8 = null, // @DataMember(Order=6) deletedBy: ?[]const u8 = null, id: i32 = 0, // @References(typeof(AppUser)) appUserId: ?[]const u8 = null, appUser: ?AppUser = null, // @References(typeof(JobApplication)) jobApplicationId: i32 = 0, comment: ?[]const u8 = null, }; pub const JobApplicationStatus = enum { Applied, PhoneScreening, PhoneScreeningCompleted, Interview, InterviewCompleted, Offer, Disqualified, }; pub const JobApplicationEvent = struct { // @DataMember(Order=1) createdDate: ?[]const u8 = null, // @DataMember(Order=2) // @Required() createdBy: ?[]const u8 = null, // @DataMember(Order=3) modifiedDate: ?[]const u8 = null, // @DataMember(Order=4) // @Required() modifiedBy: ?[]const u8 = null, // @DataMember(Order=5) deletedDate: ?[]const u8 = null, // @DataMember(Order=6) deletedBy: ?[]const u8 = null, id: i32 = 0, // @References(typeof(JobApplication)) jobApplicationId: i32 = 0, // @References(typeof(AppUser)) appUserId: ?[]const u8 = null, appUser: ?AppUser = null, description: ?[]const u8 = null, status: ?JobApplicationStatus = null, eventDate: ?[]const u8 = null, }; pub const PhoneScreen = struct { // @DataMember(Order=1) createdDate: ?[]const u8 = null, // @DataMember(Order=2) // @Required() createdBy: ?[]const u8 = null, // @DataMember(Order=3) modifiedDate: ?[]const u8 = null, // @DataMember(Order=4) // @Required() modifiedBy: ?[]const u8 = null, // @DataMember(Order=5) deletedDate: ?[]const u8 = null, // @DataMember(Order=6) deletedBy: ?[]const u8 = null, id: i32 = 0, // @References(typeof(AppUser)) appUserId: ?[]const u8 = null, appUser: ?AppUser = null, // @References(typeof(JobApplication)) jobApplicationId: i32 = 0, applicationStatus: ?JobApplicationStatus = null, notes: ?[]const u8 = null, }; pub const Interview = struct { // @DataMember(Order=1) createdDate: ?[]const u8 = null, // @DataMember(Order=2) // @Required() createdBy: ?[]const u8 = null, // @DataMember(Order=3) modifiedDate: ?[]const u8 = null, // @DataMember(Order=4) // @Required() modifiedBy: ?[]const u8 = null, // @DataMember(Order=5) deletedDate: ?[]const u8 = null, // @DataMember(Order=6) deletedBy: ?[]const u8 = null, id: i32 = 0, bookingTime: ?[]const u8 = null, // @References(typeof(JobApplication)) jobApplicationId: i32 = 0, // @References(typeof(AppUser)) appUserId: ?[]const u8 = null, appUser: ?AppUser = null, applicationStatus: ?JobApplicationStatus = null, notes: ?[]const u8 = null, }; pub const JobOffer = struct { // @DataMember(Order=1) createdDate: ?[]const u8 = null, // @DataMember(Order=2) // @Required() createdBy: ?[]const u8 = null, // @DataMember(Order=3) modifiedDate: ?[]const u8 = null, // @DataMember(Order=4) // @Required() modifiedBy: ?[]const u8 = null, // @DataMember(Order=5) deletedDate: ?[]const u8 = null, // @DataMember(Order=6) deletedBy: ?[]const u8 = null, id: i32 = 0, salaryOffer: i32 = 0, currency: ?[]const u8 = null, // @References(typeof(JobApplication)) jobApplicationId: i32 = 0, // @References(typeof(AppUser)) appUserId: ?[]const u8 = null, appUser: ?AppUser = null, notes: ?[]const u8 = null, }; pub const JobApplication = struct { id: i32 = 0, // @References(typeof(Job)) jobId: i32 = 0, // @References(typeof(Contact)) contactId: i32 = 0, position: ?Job = null, applicant: ?Contact = null, comments: []JobApplicationComment = &.{}, appliedDate: ?[]const u8 = null, applicationStatus: ?JobApplicationStatus = null, attachments: []JobApplicationAttachment = &.{}, events: []JobApplicationEvent = &.{}, phoneScreen: ?PhoneScreen = null, interview: ?Interview = null, jobOffer: ?JobOffer = null, }; // @ValidateRequest(Validator="IsAuthenticated") pub const CreateInterview = struct { pub const ss_name = "CreateInterview"; pub const ss_verb = "POST"; pub const Response = Interview; // @Validate(Validator="NotNull") bookingTime: ?[]const u8 = null, // @Validate(Validator="GreaterThan(0)") jobApplicationId: i32 = 0, // @Validate(Validator="GreaterThan(0)", Message="An employee to perform interview must be selected.") appUserId: ?[]const u8 = null, applicationStatus: ?JobApplicationStatus = null, };