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

export type ClientOptions = {
    baseUrl: 'http://pengcode.tech:8080' | (string & {});
};

/**
 * APIResponse
 */
export type ApiResponse = {
    /**
     * Success
     */
    success: boolean;
    /**
     * Message
     */
    message: string;
    /**
     * Data
     */
    data?: {
        [key: string]: unknown;
    } | null;
};

/**
 * HTTPValidationError
 */
export type HttpValidationError = {
    /**
     * Detail
     */
    detail?: Array<ValidationError>;
};

/**
 * UserLogin
 */
export type UserLogin = {
    /**
     * Username
     */
    username: string;
    /**
     * Password
     */
    password: string;
};

/**
 * UserRegister
 */
export type UserRegister = {
    /**
     * Username
     */
    username: string;
    /**
     * Password
     */
    password: string;
};

/**
 * ValidationError
 */
export type ValidationError = {
    /**
     * Location
     */
    loc: Array<string | number>;
    /**
     * Message
     */
    msg: string;
    /**
     * Error Type
     */
    type: string;
};

export type LoginApiV1AuthLoginPostData = {
    body: UserLogin;
    path?: never;
    query?: never;
    url: '/api/v1/auth/login';
};

export type LoginApiV1AuthLoginPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type LoginApiV1AuthLoginPostError = LoginApiV1AuthLoginPostErrors[keyof LoginApiV1AuthLoginPostErrors];

export type LoginApiV1AuthLoginPostResponses = {
    /**
     * Successful Response
     */
    200: ApiResponse;
};

export type LoginApiV1AuthLoginPostResponse = LoginApiV1AuthLoginPostResponses[keyof LoginApiV1AuthLoginPostResponses];

export type RegisterApiV1AuthRegisterPostData = {
    body: UserRegister;
    path?: never;
    query?: never;
    url: '/api/v1/auth/register';
};

export type RegisterApiV1AuthRegisterPostErrors = {
    /**
     * Validation Error
     */
    422: HttpValidationError;
};

export type RegisterApiV1AuthRegisterPostError = RegisterApiV1AuthRegisterPostErrors[keyof RegisterApiV1AuthRegisterPostErrors];

export type RegisterApiV1AuthRegisterPostResponses = {
    /**
     * Successful Response
     */
    200: ApiResponse;
};

export type RegisterApiV1AuthRegisterPostResponse = RegisterApiV1AuthRegisterPostResponses[keyof RegisterApiV1AuthRegisterPostResponses];

export type GetCurrentUserApiV1AuthMeGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/v1/auth/me';
};

export type GetCurrentUserApiV1AuthMeGetResponses = {
    /**
     * Successful Response
     */
    200: ApiResponse;
};

export type GetCurrentUserApiV1AuthMeGetResponse = GetCurrentUserApiV1AuthMeGetResponses[keyof GetCurrentUserApiV1AuthMeGetResponses];

export type LogoutApiV1AuthLogoutPostData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/v1/auth/logout';
};

export type LogoutApiV1AuthLogoutPostResponses = {
    /**
     * Successful Response
     */
    200: ApiResponse;
};

export type LogoutApiV1AuthLogoutPostResponse = LogoutApiV1AuthLogoutPostResponses[keyof LogoutApiV1AuthLogoutPostResponses];

export type GetAllUsersApiV1AuthUsersGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/v1/auth/users';
};

export type GetAllUsersApiV1AuthUsersGetResponses = {
    /**
     * Successful Response
     */
    200: ApiResponse;
};

export type GetAllUsersApiV1AuthUsersGetResponse = GetAllUsersApiV1AuthUsersGetResponses[keyof GetAllUsersApiV1AuthUsersGetResponses];

export type RootGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/';
};

export type RootGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};

export type HealthCheckHealthGetData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/health';
};

export type HealthCheckHealthGetResponses = {
    /**
     * Successful Response
     */
    200: unknown;
};
