const std = @import("std");
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 JobApplicationStatus = enum {
Applied,
PhoneScreening,
PhoneScreeningCompleted,
Interview,
InterviewCompleted,
Offer,
Disqualified,
};
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,
};
// @ValidateRequest(Validator="IsAuthenticated")
pub const CreateInterview = struct {
// @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,
};
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/CreateInterview HTTP/1.1
Host: blazor-gallery.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
applicationStatus: Applied
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
id: 0,
bookingTime: 0001-01-01,
jobApplicationId: 0,
appUserId: String,
appUser:
{
id: String,
firstName: String,
lastName: String,
displayName: String,
profileUrl: String
},
applicationStatus: Applied,
notes: String,
createdDate: 0001-01-01,
createdBy: String,
modifiedDate: 0001-01-01,
modifiedBy: String,
deletedDate: 0001-01-01,
deletedBy: String
}