export type Body_login_login_access_token = {
  grant_type?: string | null
  username: string
  password: string
  scope?: string
  client_id?: string | null
  client_secret?: string | null
}

export type HTTPValidationError = {
  detail?: Array<ValidationError>
}

export type ItemCreate = {
  title: string
  description?: string | null
}

export type ItemPublic = {
  title: string
  description?: string | null
  id: string
  owner_id: string
}

export type ItemUpdate = {
  title?: string | null
  description?: string | null
}

export type ItemsPublic = {
  data: Array<ItemPublic>
  count: number
}

export type ClientMessagePublic = {
  name: string,
  phone: string,
  email: string,
  message: string,
  id: string,
  created_at: string
}

export type ClientMessagesPublic = {
  data: Array<ClientMessagePublic>,
  count: number
}

export type Message = {
  message: string
}

export type NewPassword = {
  token: string
  new_password: string
}

export type Token = {
  access_token: string
  token_type?: string
}

export type UpdatePassword = {
  current_password: string
  new_password: string
}

export type UserCreate = {
  email: string
  is_active?: boolean
  is_superuser?: boolean
  full_name?: string | null
  password: string
}

export type UserPublic = {
  email: string
  is_active?: boolean
  is_superuser?: boolean
  full_name?: string | null
  id: string
}

export type UserRegister = {
  email: string
  password: string
  full_name?: string | null
}

export type UserUpdate = {
  email?: string | null
  is_active?: boolean
  is_superuser?: boolean
  full_name?: string | null
  password?: string | null
}

export type UserUpdateMe = {
  full_name?: string | null
  email?: string | null
}

export type UsersPublic = {
  data: Array<UserPublic>
  count: number
}

export type ValidationError = {
  loc: Array<string | number>
  msg: string
  type: string
}

export type WebSettingPublic = {
  address: string,
  google_map_api_key: string,
  latitude: Number,
  longitude: Number,
  phone: string,
  email: string,
  facebook: string,
  instagram: string,
  youtube: string,
  youtube_link: string,
  whatsapp: string,
  id: string
}

export type WebSettingUpdate = {
  address: string,
  google_map_api_key: string,
  latitude: Number,
  longitude: Number,
  phone: string,
  email: string,
  facebook: string,
  instagram: string,
  youtube: string,
  youtube_link: string,
  whatsapp: string,
}

export type OrgansPublic = {
  data: Array<AboutUsPublic>
  count: number
}

export type OrganPublic = {
  index: number,
  description: string,
  title: string,
  image: string,
  id: string
}

export type OrganCreate = {
  index: number,
  description: string,
  title: string,
  image: File,
}

export type OrganUpdate = {
  index: number,
  description: string,
  title: string,
  image?: File | undefined | null,
}


export type AboutUssPublic = {
  data: Array<AboutUsPublic>
  count: number
}

export type AboutUsPublic = {
  index: number,
  description: string,
  title: string,
  image: string,
  id: string
}

export type AboutUsCreate = {
  index: number,
  description: string,
  title: string,
  image: File,
}

export type AboutUsUpdate = {
  index: number,
  description: string,
  title: string,
  image?: File | undefined | null,
}

export type CoursesPublic = {
  data: Array<CoursePublic>
  count: number
}

export type CoursePublic = {
  title: string,
  sort_description: string,
  long_description: string,
  information: string,
  contant: string,
  remark: string,
  id: string,
  created_at: string
}

export type CourseCreate = {
  title: string,
  sort_description: string,
  long_description: string,
  information: string,
  contant: string,
  remark: string,
}

export type CourseDetailsPublic = {
  title: string,
  sort_description: string,
  long_description: string,
  information: string,
  contant: string,
  remark: string,
  id: string,
  created_at: string
  images: Array<ImagePublic>,
  info_images: Array<Info_imagePublic>,
  schedule: Array<SchedulePublic>
}

export type CourseUpdate = {
  title: string,
  sort_description: string,
  long_description: string,
  information: string,
  contant: string,
  remark: string,
}

export type ImagesPublic = {
  data: Array<ImagePublic>,
}

export type ImagePublic = {
  image: string,
  course_id: string,
  index: number,
  id:string
}

export type ImageUpdate = {
  index: number,
}

export type ImageCreate = {
  image: File,
  index: number,
  course_id: string
}

export type Info_imagesPublic = {
  data: Array<Info_imagePublic>,
}

export type Info_imagePublic = {
  image: string,
  course_id: string,
  index: number
  id: string
}

export type Info_imageUpdate = {
  index: number,
}

export type Info_imagesCreate = {
  image: File,
  index: number,
  course_id: string
}

export type SchedulesPublic = {
  data: Array<SchedulePublic>,
}

export type SchedulePublic = {
  title: string,
  info1: string,
  info2: string,
  date: string,
  course_id: string,
  id:string
}
export type ScheduleCreate = {
  title: string,
  info1: string,
  info2: string,
  date: string,
  course_id: string,
}

export type ScheduleUpdate = {
  title: string,
  info1: string,
  info2: string,
  date: string,
}
