// This file is auto-generated by @hey-api/openapi-ts

import { z } from "zod";

/**
 * BoardSchema
 */
export const zBoardSchema = z.object({
    id: z.int(),
    name: z.string(),
    lexorank: z.string(),
});

/**
 * CreateBoardSchema
 */
export const zCreateBoardSchema = z.object({
    name: z.string(),
    projectId: z.int(),
    lexorank: z.string(),
});

/**
 * CreateBoardRequest
 */
export const zCreateBoardRequest = z.object({
    entity: zCreateBoardSchema,
});

/**
 * CreateBoardResponse
 */
export const zCreateBoardResponse = z.object({
    message: z.string(),
    entity: zBoardSchema,
});

/**
 * CreateDealSchema
 */
export const zCreateDealSchema = z.object({
    name: z.string(),
    boardId: z.int(),
    lexorank: z.string(),
    statusId: z.int(),
});

/**
 * CreateDealRequest
 */
export const zCreateDealRequest = z.object({
    entity: zCreateDealSchema,
});

/**
 * DealSchema
 */
export const zDealSchema = z.object({
    id: z.int(),
    name: z.string(),
    lexorank: z.string(),
    statusId: z.int(),
    createdAt: z.iso.datetime({
        offset: true,
    }),
});

/**
 * CreateDealResponse
 */
export const zCreateDealResponse = z.object({
    message: z.string(),
    entity: zDealSchema,
});

/**
 * CreateProjectSchema
 */
export const zCreateProjectSchema = z.object({
    name: z.string(),
});

/**
 * CreateProjectRequest
 */
export const zCreateProjectRequest = z.object({
    entity: zCreateProjectSchema,
});

/**
 * ProjectSchema
 */
export const zProjectSchema = z.object({
    id: z.int(),
    name: z.string(),
});

/**
 * CreateProjectResponse
 */
export const zCreateProjectResponse = z.object({
    message: z.string(),
    entity: zProjectSchema,
});

/**
 * CreateStatusSchema
 */
export const zCreateStatusSchema = z.object({
    name: z.string(),
    boardId: z.int(),
    lexorank: z.string(),
});

/**
 * CreateStatusRequest
 */
export const zCreateStatusRequest = z.object({
    entity: zCreateStatusSchema,
});

/**
 * StatusSchema
 */
export const zStatusSchema = z.object({
    id: z.int(),
    name: z.string(),
    lexorank: z.string(),
});

/**
 * CreateStatusResponse
 */
export const zCreateStatusResponse = z.object({
    message: z.string(),
    entity: zStatusSchema,
});

/**
 * DeleteBoardResponse
 */
export const zDeleteBoardResponse = z.object({
    message: z.string(),
});

/**
 * DeleteDealResponse
 */
export const zDeleteDealResponse = z.object({
    message: z.string(),
});

/**
 * DeleteProjectResponse
 */
export const zDeleteProjectResponse = z.object({
    message: z.string(),
});

/**
 * DeleteStatusResponse
 */
export const zDeleteStatusResponse = z.object({
    message: z.string(),
});

/**
 * GetBoardsResponse
 */
export const zGetBoardsResponse = z.object({
    boards: z.array(zBoardSchema),
});

/**
 * PaginationInfoSchema
 */
export const zPaginationInfoSchema = z.object({
    totalPages: z.int(),
    totalItems: z.int(),
});

/**
 * GetDealsResponse
 */
export const zGetDealsResponse = z.object({
    deals: z.array(zDealSchema),
    paginationInfo: zPaginationInfoSchema,
});

/**
 * GetProjectsResponse
 */
export const zGetProjectsResponse = z.object({
    projects: z.array(zProjectSchema),
});

/**
 * GetStatusesResponse
 */
export const zGetStatusesResponse = z.object({
    statuses: z.array(zStatusSchema),
});

/**
 * ValidationError
 */
export const zValidationError = z.object({
    loc: z.array(z.union([z.string(), z.int()])),
    msg: z.string(),
    type: z.string(),
});

/**
 * HTTPValidationError
 */
export const zHttpValidationError = z.object({
    detail: z.optional(z.array(zValidationError)),
});

/**
 * UpdateBoardSchema
 */
export const zUpdateBoardSchema = z.object({
    name: z.optional(z.union([z.string(), z.null()])),
    lexorank: z.optional(z.union([z.string(), z.null()])),
});

/**
 * UpdateBoardRequest
 */
export const zUpdateBoardRequest = z.object({
    entity: zUpdateBoardSchema,
});

/**
 * UpdateBoardResponse
 */
export const zUpdateBoardResponse = z.object({
    message: z.string(),
});

/**
 * UpdateDealSchema
 */
export const zUpdateDealSchema = z.object({
    name: z.optional(z.union([z.string(), z.null()])),
    lexorank: z.optional(z.union([z.string(), z.null()])),
    statusId: z.optional(z.union([z.int(), z.null()])),
});

/**
 * UpdateDealRequest
 */
export const zUpdateDealRequest = z.object({
    entity: zUpdateDealSchema,
});

/**
 * UpdateDealResponse
 */
export const zUpdateDealResponse = z.object({
    message: z.string(),
});

/**
 * UpdateProjectSchema
 */
export const zUpdateProjectSchema = z.object({
    name: z.optional(z.union([z.string(), z.null()])),
});

/**
 * UpdateProjectRequest
 */
export const zUpdateProjectRequest = z.object({
    entity: zUpdateProjectSchema,
});

/**
 * UpdateProjectResponse
 */
export const zUpdateProjectResponse = z.object({
    message: z.string(),
});

/**
 * UpdateStatusSchema
 */
export const zUpdateStatusSchema = z.object({
    name: z.optional(z.union([z.string(), z.null()])),
    lexorank: z.optional(z.union([z.string(), z.null()])),
});

/**
 * UpdateStatusRequest
 */
export const zUpdateStatusRequest = z.object({
    entity: zUpdateStatusSchema,
});

/**
 * UpdateStatusResponse
 */
export const zUpdateStatusResponse = z.object({
    message: z.string(),
});

export const zGetBoardsData = z.object({
    body: z.optional(z.never()),
    path: z.object({
        projectId: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zGetBoardsResponse2 = zGetBoardsResponse;

export const zCreateBoardData = z.object({
    body: zCreateBoardRequest,
    path: z.optional(z.never()),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zCreateBoardResponse2 = zCreateBoardResponse;

export const zDeleteBoardData = z.object({
    body: z.optional(z.never()),
    path: z.object({
        pk: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zDeleteBoardResponse2 = zDeleteBoardResponse;

export const zUpdateBoardData = z.object({
    body: zUpdateBoardRequest,
    path: z.object({
        pk: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zUpdateBoardResponse2 = zUpdateBoardResponse;

export const zGetDealsData = z.object({
    body: z.optional(z.never()),
    path: z.optional(z.never()),
    query: z.optional(
        z.object({
            boardId: z.optional(z.union([z.int(), z.null()])),
            projectId: z.optional(z.union([z.int(), z.null()])),
            page: z.optional(z.union([z.int(), z.null()])),
            itemsPerPage: z.optional(z.union([z.int(), z.null()])),
        })
    ),
});

/**
 * Successful Response
 */
export const zGetDealsResponse2 = zGetDealsResponse;

export const zCreateDealData = z.object({
    body: zCreateDealRequest,
    path: z.optional(z.never()),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zCreateDealResponse2 = zCreateDealResponse;

export const zDeleteDealData = z.object({
    body: z.optional(z.never()),
    path: z.object({
        pk: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zDeleteDealResponse2 = zDeleteDealResponse;

export const zUpdateDealData = z.object({
    body: zUpdateDealRequest,
    path: z.object({
        pk: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zUpdateDealResponse2 = zUpdateDealResponse;

export const zGetProjectsData = z.object({
    body: z.optional(z.never()),
    path: z.optional(z.never()),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zGetProjectsResponse2 = zGetProjectsResponse;

export const zCreateProjectData = z.object({
    body: zCreateProjectRequest,
    path: z.optional(z.never()),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zCreateProjectResponse2 = zCreateProjectResponse;

export const zDeleteProjectData = z.object({
    body: z.optional(z.never()),
    path: z.object({
        pk: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zDeleteProjectResponse2 = zDeleteProjectResponse;

export const zUpdateProjectData = z.object({
    body: zUpdateProjectRequest,
    path: z.object({
        pk: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zUpdateProjectResponse2 = zUpdateProjectResponse;

export const zGetStatusesData = z.object({
    body: z.optional(z.never()),
    path: z.object({
        boardId: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zGetStatusesResponse2 = zGetStatusesResponse;

export const zCreateStatusData = z.object({
    body: zCreateStatusRequest,
    path: z.optional(z.never()),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zCreateStatusResponse2 = zCreateStatusResponse;

export const zDeleteStatusData = z.object({
    body: z.optional(z.never()),
    path: z.object({
        pk: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zDeleteStatusResponse2 = zDeleteStatusResponse;

export const zUpdateStatusData = z.object({
    body: zUpdateStatusRequest,
    path: z.object({
        pk: z.int(),
    }),
    query: z.optional(z.never()),
});

/**
 * Successful Response
 */
export const zUpdateStatusResponse2 = zUpdateStatusResponse;
