{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/bronjoy-com/json-schema/bronjoy-com-organization-profile-resource-schema.json",
  "title": "OrganizationProfileResource",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/bronjoy-com-api-spec-openapi.json#/components/schemas/OrganizationProfileResource",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "organization_id": {
      "type": "integer"
    },
    "meta_title": {
      "type": [
        "string",
        "null"
      ]
    },
    "meta_description": {
      "type": [
        "string",
        "null"
      ]
    },
    "meta_keywords": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "canonical_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "og_image": {
      "type": [
        "string",
        "null"
      ]
    },
    "cover_image": {
      "type": [
        "string",
        "null"
      ],
      "description": "Customization Fields"
    },
    "accent_color": {
      "type": [
        "string",
        "null"
      ]
    },
    "featured_service_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "featured_staff_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      }
    },
    "translations": {
      "type": "object",
      "properties": {
        "about": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "meta_title": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "meta_description": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "faq": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "required": [
        "about",
        "meta_title",
        "meta_description",
        "faq"
      ]
    },
    "about": {
      "type": [
        "string",
        "null"
      ]
    },
    "gallery": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "orientation_photos": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "map_photo": {
      "type": [
        "string",
        "null"
      ]
    },
    "show_map_in_gallery": {
      "type": "boolean"
    },
    "social_links": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "contact_links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string"
          },
          "masked_phone": {
            "type": "string"
          }
        },
        "required": [
          "platform",
          "masked_phone"
        ]
      }
    },
    "business_hours": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "masked_phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "has_phone": {
      "type": "boolean"
    },
    "email": {
      "type": [
        "string",
        "null"
      ]
    },
    "website": {
      "type": [
        "string",
        "null"
      ]
    },
    "average_rating": {
      "type": "number"
    },
    "total_reviews": {
      "type": "integer"
    },
    "total_appointments": {
      "type": "integer"
    },
    "years_in_business": {
      "type": [
        "integer",
        "null"
      ]
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "payment_methods": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "nearby_landmarks": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "services_detailed": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "tag": {
            "type": [
              "string",
              "null"
            ]
          },
          "group": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "tag",
          "group",
          "price"
        ]
      }
    },
    "floor_entrance": {
      "type": [
        "string",
        "null"
      ]
    },
    "faq": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string"
          },
          "answer": {
            "type": "string"
          }
        },
        "required": [
          "question",
          "answer"
        ]
      }
    },
    "services_offered": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "price_range_min": {
      "type": [
        "number",
        "null"
      ]
    },
    "price_range_max": {
      "type": [
        "number",
        "null"
      ]
    },
    "next_available": {
      "type": [
        "string",
        "null"
      ],
      "description": "Next upcoming availability window (from now, wrapping across days of week)"
    },
    "is_published": {
      "type": "boolean",
      "description": "Status"
    },
    "is_featured": {
      "type": "boolean"
    },
    "is_bookable": {
      "type": "boolean"
    },
    "published_at": {
      "type": "string"
    },
    "created_at": {
      "type": "string"
    },
    "updated_at": {
      "type": "string"
    },
    "distance": {
      "type": "string",
      "description": "Distance from user (km), included when lat/lng query params are provided"
    },
    "organization": {
      "type": "object",
      "description": "Organization data (included when eager-loaded, e.g. in search results)",
      "properties": {
        "id": {
          "type": "integer"
        },
        "business_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "slug": {
          "type": "string"
        },
        "specialty": {
          "type": [
            "string",
            "null"
          ]
        },
        "district": {
          "type": [
            "string",
            "null"
          ],
          "description": "Scraped from 2GIS as a Russian adm_div string\n(\"Юнусабадский район\"), so it goes through the shared\ndirectory dictionary like every other imported term —\notherwise the English and Uzbek cards read\n\"Tashkent, Юнусабадский район\"."
        },
        "city": {
          "type": "string"
        },
        "city_slug": {
          "type": [
            "string",
            "null"
          ],
          "description": "The city SEGMENT of the venue URL (ODI-182), not the\ndisplay name. `city` above is translated and free-text;\nthis is `cities.slug`, identical in every locale, and is\nwhat `/{locale}/{city}/{category}/{venue}` is built from.\nNull for the handful of orgs with no resolved `city_id` —\nthey fall back to the flat `/{venue}` form."
        },
        "state": {
          "type": "string"
        },
        "logo": {
          "type": [
            "string",
            "null"
          ]
        },
        "address": {
          "type": [
            "string",
            "null"
          ]
        },
        "is_claimed": {
          "type": "boolean"
        },
        "is_verified": {
          "type": "boolean"
        },
        "latitude": {
          "type": [
            "number",
            "null"
          ],
          "description": "Latitude of the main branch"
        },
        "longitude": {
          "type": [
            "number",
            "null"
          ],
          "description": "Longitude of the main branch"
        },
        "primary_category": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "slug": {
              "type": "string"
            },
            "locale_slug": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "icon": {
              "type": [
                "string",
                "null"
              ]
            },
            "illustration": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "slug",
            "locale_slug",
            "name",
            "icon",
            "illustration"
          ]
        }
      },
      "required": [
        "id",
        "business_name",
        "slug",
        "specialty",
        "district",
        "city",
        "city_slug",
        "state",
        "logo",
        "address",
        "is_claimed",
        "is_verified",
        "latitude",
        "longitude"
      ]
    }
  },
  "required": [
    "id",
    "organization_id",
    "meta_title",
    "meta_description",
    "meta_keywords",
    "canonical_url",
    "og_image",
    "cover_image",
    "accent_color",
    "featured_service_ids",
    "featured_staff_ids",
    "translations",
    "about",
    "gallery",
    "orientation_photos",
    "map_photo",
    "show_map_in_gallery",
    "social_links",
    "contact_links",
    "business_hours",
    "masked_phone",
    "has_phone",
    "email",
    "website",
    "average_rating",
    "total_reviews",
    "total_appointments",
    "years_in_business",
    "amenities",
    "payment_methods",
    "nearby_landmarks",
    "services_detailed",
    "floor_entrance",
    "faq",
    "services_offered",
    "price_range_min",
    "price_range_max",
    "next_available",
    "is_published",
    "is_featured",
    "is_bookable",
    "published_at",
    "created_at",
    "updated_at"
  ]
}