/**
 * Generated by orval v8.23.0 🍺
 * Do not edit manually.
 * FastAPI
 * OpenAPI spec version: v2.2.0
 */
import * as zod from 'zod';


/**
 * Create a new organization
 *
 * Parameters:
 *     data (OrganizationRequest): The data to create the organization
 *
 * Returns:
 *     `Organization`: The created organization
 * @summary Create Organization
 */
export const CreateOrganizationOrganizationsCreatePostBody = zod.object({
  "name": zod.string(),
  "description": zod.string()
})

export const CreateOrganizationOrganizationsCreatePostResponse = zod.object({
  "uuid": zod.uuid(),
  "name": zod.string(),
  "description": zod.string(),
  "created_at": zod.iso.datetime({"offset":true})
})

/**
 * Get all organizations on the server
 *
 * Returns:
 *     list[Organization]: A list of all organizations
 * @summary Get Organizations
 */
export const GetOrganizationsOrganizationsAllListGetResponseItem = zod.object({
  "uuid": zod.uuid(),
  "name": zod.string(),
  "description": zod.string(),
  "created_at": zod.iso.datetime({"offset":true})
})
export const GetOrganizationsOrganizationsAllListGetResponse = zod.array(GetOrganizationsOrganizationsAllListGetResponseItem)

/**
 * Get all organizations that the current user is a member of
 *
 * Returns:
 *     list[Organization]: A list of all organizations
 * @summary Get User Organizations
 */
export const GetUserOrganizationsOrganizationsMeListGetResponseItem = zod.object({
  "uuid": zod.uuid(),
  "name": zod.string(),
  "description": zod.string(),
  "created_at": zod.iso.datetime({"offset":true})
})
export const GetUserOrganizationsOrganizationsMeListGetResponse = zod.array(GetUserOrganizationsOrganizationsMeListGetResponseItem)

/**
 * Get a specific organization
 *
 * Parameters:
 *     data (OrganizationUuidRequest): The data to get the organization
 *
 * Returns:
 *     `Organization`: The organization
 * @summary Get Organization
 */
export const GetOrganizationOrganizationsOrganizationUuidGetParams = zod.object({
  "organization_uuid": zod.uuid()
})

export const GetOrganizationOrganizationsOrganizationUuidGetResponse = zod.object({
  "uuid": zod.uuid(),
  "name": zod.string(),
  "description": zod.string(),
  "created_at": zod.iso.datetime({"offset":true})
})

/**
 * Delete a specific organization
 *
 * Parameters:
 *     data (OrganizationUuidRequest): The data to delete the organization
 *
 * Returns:
 *     `MessageResponse`: A message indicating that the organization was deleted
 * @summary Delete Organization
 */
export const DeleteOrganizationOrganizationsDeleteOrganizationUuidDeleteParams = zod.object({
  "organization_uuid": zod.uuid()
})

export const DeleteOrganizationOrganizationsDeleteOrganizationUuidDeleteResponse = zod.object({
  "message": zod.string()
})

/**
 * Get all members of a specific organization
 *
 * Parameters:
 *     data (OrganizationUuidRequest): The data to get the organization members
 *
 * Returns:
 *     list[OrganizationMember]: A list of all organization members
 * @summary Get Organization Members
 */
export const GetOrganizationMembersOrganizationsOrganizationUuidMembersGetParams = zod.object({
  "organization_uuid": zod.uuid()
})

export const GetOrganizationMembersOrganizationsOrganizationUuidMembersGetResponseItem = zod.object({
  "uuid": zod.uuid(),
  "organization": zod.uuid(),
  "user": zod.uuid(),
  "role": zod.string(),
  "created_at": zod.iso.datetime({"offset":true})
})
export const GetOrganizationMembersOrganizationsOrganizationUuidMembersGetResponse = zod.array(GetOrganizationMembersOrganizationsOrganizationUuidMembersGetResponseItem)

