components:
  schemas:

    UpdateTeacher:
      type: object
      properties:
        id:
          type: string
          example: 018f22d5-4b3a-7c21-b93f-9a5aefc1b847
        full_name:
          type: string
          example: João Lima Santos
        birth_date:
          type: string
          example: 1985-05-2020T10:30:00Z
        cpf:
          type: object
          properties:
            value:
              type: string
              example: 123.456.789-00
            upload_id:
              type: string
              example: doc_upload_12345
        rg:
          type: object
          properties:
            value:
              type: string
              example: 12.345.678-9
            upload_id:
              type: string
              example: doc_upload_12346
        email:
          type: string
          example: joao.lima@example.com
        telephone:
          type: string
          example: "11999999999"
        address:
          type: object
          properties:
            street:
              type: string
              example: Rua das Flores
            number:
              type: string
              example: "123"
            complement:
              type: string
              example: Apto 45
            city:
              type: string
              example: São Paulo
            state:
              type: string
              example: SP
            zip_code:
              type: string
              example: 01234-567
        education:
          type: object
          properties:
            level:
              type: string
              example: Mestrado
            field:
              type: string
              example: Matemática
            teaching_experience:
              type: string
              example: 5 anos lecionando para ensino médio
            disciplines:
              type: array
              items:
                type: string
              example:
                - Matemática
                - Física
                - Cálculo
            education_levels:
              type: array
              items:
                type: string
              example:
                - Ensino Médio
                - Graduação
                - Cursos Preparatórios
        avaliability:
          type: object
          properties:
            modalities:
              type: array
              items:
                type: string
              example:
                - online
                - presencial
            in_person_location:
              type: array
              items:
                type: string
              example:
                - São Paulo - Centro
                - São Paulo - Zona Sul
            avaliable_times:
              type: array
              items:
                type: object
                properties:
                  day_of_week:
                    type: number
                    example: 3
                  start_time:
                    type: number
                    example: 480
                  end_time:
                    type: number
                    example: 720
            accepts_emergency_classes:
              type: boolean
              example: true
        payment:
          type: object
          properties:
            hourly_rate:
              type: number
              format: float
              example: 85.50
            payment_info:
              type: object
              properties:
                type:
                  type: string
                  example: pix
                key:
                  type: string
                  example: 123.456.789-00
        preferences:
          type: object
          properties:
            student_type_preference:
              type: string
              example: Alunos do ensino médio se preparando para vestibular
            general_observations:
              type: string
              example: Especializado em cálculo e matemática avançada
        profile_status:
          type: object
          properties:
            verified:
              type: boolean
              example: true
            profile_completion:
              type: number
              format: float
              example: 85.5
            active:
              type: boolean
              example: true
        rating:
          type: object
          properties:
            average:
              type: number
              format: float
              example: 4.8
            total_reviews:
              type: integer
              example: 47
        financial:
          type: object
          properties:
            payment_method_registered:
              type: boolean
              example: true
            total_earnings:
              type: number
              format: float
              example: 12500.00
            pending_balance:
              type: number
              format: float
              example: 850.50
        created_at:
          type: string
          format: date-time
          example: 2023-01-15T10:30:00Z
        updated_at:
          type: string
          format: date-time
          example: 2023-06-20T14:25:00Z