openapi: 3.0.0
info:
  title: minori_club
  version: 1.0.0
servers:
  - url: 'http://{{baseurl}}'
  - url: 'http://minori-club.innofly.work'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
tags:
  - name: sitter
  - name: common
  - name: me
  - name: parent
  - name: children
  - name: test
  - name: Auth
  - name: ApplyToSitter
paths:
  /api/v1/sitter/profile/:
    get:
      tags:
        - sitter
      summary: profile
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/sitter/profile/1/:
    put:
      tags:
        - sitter
      summary: update-profile
      description: "Generated from cURL: curl -i \\\n      \t-X PUT \\\n      \t-H \"version: 1.0.0\" \\\n      \t-H \"device_id: fccd3a12-f301-448f-9a27-8816bc13a5e2\" \\\n      \t-H \"content-type: multipart/form-data; boundary=--dio-boundary-2562715583\" \\\n      \t-H \"Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzM0MTQ5MjI1LCJpYXQiOjE3MzQwNjI4MjUsImp0aSI6Ijg5OWFkMWFlZTg0OTQ4Yjg5MWI0ZmVmYjUyMGY2Mzc1IiwidXNlcl9pZCI6Mn0.Ab8PVPb9OFK8-gQjS5I8j0Rzbjn9TuaKGBH_z4H7ba8\" \\\n      \t-H \"content-length: 936\" \\\n      \t-d \"{\\\"user_name\\\":\\\"username- a\\\",\\\"license\\\":\\\"{}\\\",\\\"date\\\":\\\"1998-04-08\\\",\\\"base_price\\\":\\\"10\\\",\\\"service_detail\\\":\\\"service\\\",\\\"mini_child_year\\\":\\\"1\\\",\\\"max_child_year\\\":\\\"30\\\",\\\"nick_name\\\":\\\"nick_name\\\",\\\"title\\\":\\\"titlea\\\",\\\"promotion_message\\\":\\\"promotio-an\\\"}\" \\\n      \t\"http://minori-club.innofly.work/api/v1/sitter/profile/1/\""
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                user_name:
                  type: string
                  example: username- a
                license:
                  type: string
                  example: '{}'
                date:
                  type: string
                  example: '1998-04-13'
                base_price:
                  type: integer
                  example: '1000'
                service_detail:
                  type: string
                  example: service
                mini_child_year:
                  type: integer
                  example: '1'
                max_child_year:
                  type: integer
                  example: '30'
                nick_name:
                  type: string
                  example: nick_name
                title:
                  type: string
                  example: titlea
                promotion_message:
                  type: string
                  example: promotio-an
      parameters:
        - name: version
          in: header
          schema:
            type: string
          example: 1.0.0
        - name: device_id
          in: header
          schema:
            type: string
          example: fccd3a12-f301-448f-9a27-8816bc13a5e2
        - name: content-type
          in: header
          schema:
            type: string
          example: multipart/form-data; boundary=--dio-boundary-0567157809
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzM0MTQ5MjI1LCJpYXQiOjE3MzQwNjI4MjUsImp0aSI6Ijg5OWFkMWFlZTg0OTQ4Yjg5MWI0ZmVmYjUyMGY2Mzc1IiwidXNlcl9pZCI6Mn0.Ab8PVPb9OFK8-gQjS5I8j0Rzbjn9TuaKGBH_z4H7ba8
        - name: content-length
          in: header
          schema:
            type: integer
          example: '938'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/parent/sitter/10/:
    get:
      tags:
        - sitter
      summary: detail
      parameters:
        - name: version
          in: header
          schema:
            type: string
          example: 1.0.0
        - name: device_id
          in: header
          schema:
            type: string
          example: fccd3a12-f301-448f-9a27-8816bc13a5e2
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzM0NDI5MzUyLCJpYXQiOjE3MzQzNDI5NTIsImp0aSI6ImEyZDc2NmEyZWI3YjQ1ODI4ZjEyOWQyYzgxYjcwMWJmIiwidXNlcl9pZCI6M30.et7mOr_a-YhPXVXQ6J341gaj1QIR88MwYzNzBZqh86E
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/sitter/1/schedules/:
    get:
      tags:
        - sitter
      summary: schedules
      security:
        - bearerAuth: []
      parameters:
        - name: start_date
          in: query
          schema:
            type: string
          example: '2024-12-20'
        - name: end_date
          in: query
          schema:
            type: string
          example: '2024-12-30'
        - name: only_approved
          in: query
          schema:
            type: integer
          example: '0'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/sitter/reservations_by_date/:
    get:
      tags:
        - sitter
      summary: reservations by date
      security:
        - bearerAuth: []
      parameters:
        - name: date
          in: query
          schema:
            type: string
          example: '2024-02-02'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/sitter/set_open_datetimes/:
    post:
      tags:
        - sitter
      summary: set open datetimes
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                date:
                  type: string
                  example: '2024-12-05'
                open_time:
                  type: string
                  example: '12:02'
                close_time:
                  type: string
                  example: '12:03'
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/sitter/reservations/:
    get:
      tags:
        - sitter
      summary: reservations
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/common/:
    get:
      tags:
        - common
      summary: common
      parameters:
        - name: version
          in: header
          schema:
            type: string
          example: 1.0.0
        - name: device_id
          in: header
          schema:
            type: string
          example: fccd3a12-f301-448f-9a27-8816bc13a5e2
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzM0Mzk5ODMxLCJpYXQiOjE3MzQzMTM0MzEsImp0aSI6IjI2MGI2ZTA0NmJkNTQwZDY5OTUzYWYzOTE2ZTU3MjcwIiwidXNlcl9pZCI6Mn0.B-ZjCG3Tx_vwfDywbOJ3GhbD0PUK7GoT2f22jyBjps4
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/me/:
    get:
      tags:
        - me
      summary: get-me
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/parent/child/:
    get:
      tags:
        - parent
      summary: /v1/parent/child/
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
    post:
      tags:
        - children
      summary: v1/parent/child/
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                nick_name:
                  type: string
                  example: test
                first_name:
                  type: string
                  example: fn a
                family_name:
                  type: string
                  example: ln a
                first_name_kana:
                  type: string
                  example: たろう
                family_name_kana:
                  type: string
                  example: やまだ
                sex:
                  type: integer
                  example: '1'
                birthday:
                  type: string
                  example: '2024-12-01'
      parameters:
        - name: version
          in: header
          schema:
            type: string
          example: 1.0.0
        - name: device_id
          in: header
          schema:
            type: string
          example: e41e5457-bfd2-44b2-9343-65ecb2030ba6
        - name: content-type
          in: header
          schema:
            type: string
          example: multipart/form-data; boundary=--dio-boundary-0625517891
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzM0MDEzMjczLCJpYXQiOjE3MzM5MjY4NzMsImp0aSI6IjMxMDNlYzgyNGM4NTQ2NTM5NGVmYTAyOGMwMjZlYzZiIiwidXNlcl9pZCI6MX0.1ppiDX2wZoQ91YP4nsE29rtkFEzwOHzsAhUMqs2GHXc
        - name: content-length
          in: header
          schema:
            type: integer
          example: '662'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/parent/child/1/:
    get:
      tags:
        - parent
      summary: '/v1/parent/child/{id}/'
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
    put:
      tags:
        - parent
      summary: '/v1/parent/child/{id}/'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                nick_name:
                  type: string
                first_name:
                  type: string
                family_name:
                  type: string
                first_name_kana:
                  type: string
                family_name_kana:
                  type: string
                sex:
                  type: string
                birthday:
                  type: string
                school:
                  type: string
                allergy:
                  type: string
                sick:
                  type: string
                face_image:
                  type: string
                  format: binary
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/parent/search_sitter/:
    post:
      tags:
        - parent
      summary: v1/parent/search_sitter/
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                date:
                  type: string
                  example: '2024-12-20'
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/parent/child/18/:
    put:
      tags:
        - children
      summary: 'v1/parent/child/{id}/'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                nick_name:
                  type: string
                  example: test123
                first_name:
                  type: string
                  example: fn a
                family_name:
                  type: string
                  example: ln a
                first_name_kana:
                  type: string
                  example: たろう
                family_name_kana:
                  type: string
                  example: やまだ
                sex:
                  type: integer
                  example: '1'
                birthday:
                  type: string
                  example: '2024-12-01'
                school:
                  type: string
                allergy:
                  type: string
                sick:
                  type: string
                face_image:
                  type: string
                  format: binary
      parameters:
        - name: version
          in: header
          schema:
            type: string
          example: 1.0.0
        - name: device_id
          in: header
          schema:
            type: string
          example: e41e5457-bfd2-44b2-9343-65ecb2030ba6
        - name: content-type
          in: header
          schema:
            type: string
          example: multipart/form-data; boundary=--dio-boundary-4276993381
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzM0MTA0MDc2LCJpYXQiOjE3MzQwMTc2NzYsImp0aSI6Ijk0Y2QxNGMxNTAxZjQxY2VhYmIzNjljZjY0ZDQ5MGE0IiwidXNlcl9pZCI6MX0.d-x4u7oL3kSQnwa_MHxEVQ3Og9UDyLztSl6fNHZxSE8
        - name: content-length
          in: header
          schema:
            type: integer
          example: '742'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/test/create_sitter_reservation:
    post:
      tags:
        - test
      summary: v1/test/create_sitter_reservation
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                sitter_info_id: 1
                parent_info_id: 1
                date: ''
                start_time: ''
                end_time: ''
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/test/sitter_reservation_list/:
    get:
      tags:
        - test
      summary: /v1/test/sitter_reservation_list/
      security:
        - bearerAuth: []
      parameters:
        - name: date
          in: query
          schema:
            type: string
          example: '2024-12-20'
        - name: sitter_info_id
          in: query
          schema:
            type: integer
          example: '1'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/test/create_sitter_open_datetimes/:
    post:
      tags:
        - test
      summary: /v1/test/create_sitter_open_datetimes/
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                sitter_info_id:
                  type: integer
                  example: '1'
                date:
                  type: string
                  example: '2024-12-20'
                open_time:
                  type: string
                  example: '08:00'
                close_time:
                  type: string
                  example: '18:00'
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/test/sitter_open_datetimes_list/:
    get:
      tags:
        - test
      summary: h/v1/test/sitter_open_datetimes_list/
      security:
        - bearerAuth: []
      parameters:
        - name: sitter_info_id
          in: query
          schema:
            type: integer
          example: '1'
        - name: start_date
          in: query
          schema:
            type: string
          example: '2024-12-01'
        - name: end_date
          in: query
          schema:
            type: string
          example: '2024-12-30'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/login/:
    post:
      tags:
        - Auth
      summary: /v1/login/
      description: |-
        Generated from cURL: curl --location 'http://minori-club.innofly.work/api/v1/login/' \
        --form 'email="parent@gmail.com"' \
        --form 'password="12345678a@"'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                  example: sitter@gmail.com
                password:
                  type: string
                  example: 12345678a@
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/logout/:
    post:
      tags:
        - Auth
      summary: /v1/logout
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzMzOTc2NTYwLCJpYXQiOjE3MzM4OTAxNjAsImp0aSI6Ijc1NTVmOWU5MzRmNDQwMGNhMTUxN2ViY2Q2YTlmMzBmIiwidXNlcl9pZCI6MX0.GOouQ_lU88DiWh7DOvFfpPAeM8qX9sRL4saAxIMeD7I
                refresh: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTczNTA5OTc2MCwiaWF0IjoxNzMzODkwMTYwLCJqdGkiOiJlNzhjYzcwMzRlNmM0NDk0YTQxOTAxMWVlMGVjOTRjYiIsInVzZXJfaWQiOjF9.iG7CaF7ePsd0MrNF_8z7Hwi1_WE9itgRreb7D9dG8Ag
      parameters:
        - name: version
          in: header
          schema:
            type: string
          example: 1.0.0
        - name: device_id
          in: header
          schema:
            type: string
          example: ed08822b-a29a-48f7-b11d-d32c6d39a431
        - name: content-type
          in: header
          schema:
            type: string
          example: application/json
        - name: Authorization
          in: header
          schema:
            type: string
          example: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzMzOTc2NTYwLCJpYXQiOjE3MzM4OTAxNjAsImp0aSI6Ijc1NTVmOWU5MzRmNDQwMGNhMTUxN2ViY2Q2YTlmMzBmIiwidXNlcl9pZCI6MX0.GOouQ_lU88DiWh7DOvFfpPAeM8qX9sRL4saAxIMeD7I
        - name: content-length
          in: header
          schema:
            type: integer
          example: '482'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/register/:
    post:
      tags:
        - Auth
      summary: /v1/register/
      description: |-
        Generated from cURL: curl --location 'http://minori-club.innofly.work/api/v1/login/' \
        --form 'email="parent@gmail.com"' \
        --form 'password="12345678a@"'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                  example: hoanganh@example.com
                password:
                  type: string
                  example: 12345678a@
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/register/verify/:
    post:
      tags:
        - Auth
      summary: /v1/register/verify/
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                verify_code:
                  type: integer
                  example: '666666'
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/register/completion/:
    post:
      tags:
        - Auth
      summary: /v1/register/completion/
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                last_name:
                  type: string
                  example: Viet
                first_name:
                  type: string
                  example: Viet
                kana_lastname:
                  type: string
                  example: ふりがな
                kana_firstname:
                  type: string
                  example: ふりがな
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/apply_sitter/:
    post:
      tags:
        - ApplyToSitter
      summary: /v1/apply_sitter
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                  example: vietnd@example.com
      security:
        - bearerAuth: []
      parameters:
        - name: secret-key
          in: header
          schema:
            type: string
          example: A1b@C2d#E3f$G4h!J5k%L6m^N7o*P8
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /api/v1/approve_sitter/:
    post:
      tags:
        - ApplyToSitter
      summary: /v1/approve_sitter/
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                  example: vietnd@example.com
                license:
                  type: string
                  description: 'ex : {1,2,3}'
                  example: '{1}'
                base_price:
                  type: integer
                  example: '10000'
                mini_child_year:
                  type: integer
                  example: '1'
                max_child_year:
                  type: integer
                  example: '10'
                icon_image:
                  type: string
                  format: binary
                title:
                  type: string
                user_name:
                  type: string
                thumbnail_image:
                  type: string
                  format: binary
                promotion_message:
                  type: string
                service_detail:
                  type: string
                max_child_number:
                  type: string
                region:
                  type: string
                  description: 'ex : {1,2,3}'
                time_option:
                  type: string
                  description: 'ex : {1,2,3}'
                sick_child_option:
                  type: string
                  description: 'ex : {1,2,3}'
                sicked_child_option:
                  type: string
                  description: 'ex : {1,2,3}'
                teaching_option:
                  type: string
                  description: 'ex : {1,2,3}'
      security:
        - bearerAuth: []
      parameters:
        - name: secret-key
          in: header
          schema:
            type: string
          example: A1b@C2d#E3f$G4h!J5k%L6m^N7o*P8
        - name: Content-Type
          in: header
          schema:
            type: string
          example: multipart/form-data
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
