chore: publish bulk mapping API contract

This commit is contained in:
ik
2026-09-21 20:31:09 +07:00
parent 167f23a99f
commit 8e84f41924
+659
View File
@@ -1093,6 +1093,104 @@
"title": "ExternalObservationAction", "title": "ExternalObservationAction",
"type": "object" "type": "object"
}, },
"ExternalObservationBulkDecision": {
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ExternalObservationBulkItem"
},
"maxItems": 50,
"minItems": 1,
"title": "Items",
"type": "array"
},
"reason": {
"maxLength": 1000,
"minLength": 1,
"title": "Reason",
"type": "string"
}
},
"required": [
"reason",
"items"
],
"title": "ExternalObservationBulkDecision",
"type": "object"
},
"ExternalObservationBulkItem": {
"properties": {
"expected_version": {
"minimum": 0.0,
"title": "Expected Version",
"type": "integer"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
}
},
"required": [
"id",
"expected_version"
],
"title": "ExternalObservationBulkItem",
"type": "object"
},
"ExternalObservationBulkMapping": {
"properties": {
"fish_slug": {
"title": "Fish Slug",
"type": "string"
},
"items": {
"items": {
"$ref": "#/components/schemas/ExternalObservationBulkItem"
},
"maxItems": 50,
"minItems": 1,
"title": "Items",
"type": "array"
},
"note": {
"anyOf": [
{
"maxLength": 1000,
"type": "string"
},
{
"type": "null"
}
],
"title": "Note"
},
"waterbody_slug": {
"title": "Waterbody Slug",
"type": "string"
}
},
"required": [
"fish_slug",
"waterbody_slug",
"items"
],
"title": "ExternalObservationBulkMapping",
"type": "object"
},
"ExternalObservationBulkResult": {
"properties": {
"updated": {
"title": "Updated",
"type": "integer"
}
},
"required": [
"updated"
],
"title": "ExternalObservationBulkResult",
"type": "object"
},
"ExternalObservationDecision": { "ExternalObservationDecision": {
"properties": { "properties": {
"expected_version": { "expected_version": {
@@ -1670,6 +1768,74 @@
"title": "ImportRunPublicOut", "title": "ImportRunPublicOut",
"type": "object" "type": "object"
}, },
"ModerationBulkItem": {
"properties": {
"expected_version": {
"minimum": 0.0,
"title": "Expected Version",
"type": "integer"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
}
},
"required": [
"id",
"expected_version"
],
"title": "ModerationBulkItem",
"type": "object"
},
"ModerationBulkResult": {
"properties": {
"updated": {
"title": "Updated",
"type": "integer"
}
},
"required": [
"updated"
],
"title": "ModerationBulkResult",
"type": "object"
},
"ModerationBulkUpdate": {
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/ModerationBulkItem"
},
"maxItems": 50,
"minItems": 1,
"title": "Items",
"type": "array"
},
"reason": {
"anyOf": [
{
"maxLength": 1000,
"type": "string"
},
{
"type": "null"
}
],
"title": "Reason"
},
"status": {
"title": "Status",
"type": "string"
}
},
"required": [
"status",
"items"
],
"title": "ModerationBulkUpdate",
"type": "object"
},
"ModerationStatus": { "ModerationStatus": {
"enum": [ "enum": [
"pending", "pending",
@@ -1879,6 +2045,37 @@
"title": "PaginatedOfficialRecordOut", "title": "PaginatedOfficialRecordOut",
"type": "object" "type": "object"
}, },
"PaginatedRigOut": {
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/RigSummaryOut"
},
"title": "Items",
"type": "array"
},
"limit": {
"title": "Limit",
"type": "integer"
},
"offset": {
"title": "Offset",
"type": "integer"
},
"total": {
"title": "Total",
"type": "integer"
}
},
"required": [
"items",
"total",
"limit",
"offset"
],
"title": "PaginatedRigOut",
"type": "object"
},
"PaginatedTackleItemOut": { "PaginatedTackleItemOut": {
"properties": { "properties": {
"items": { "items": {
@@ -2136,6 +2333,86 @@
"title": "RigOut", "title": "RigOut",
"type": "object" "type": "object"
}, },
"RigSummaryOut": {
"properties": {
"component_count": {
"title": "Component Count",
"type": "integer"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"missing_fields": {
"items": {
"type": "string"
},
"title": "Missing Fields",
"type": "array"
},
"name": {
"title": "Name",
"type": "string"
},
"source_checked_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Checked At"
},
"source_external_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source External Id"
},
"source_system": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source System"
},
"source_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Url"
}
},
"required": [
"id",
"name",
"source_system",
"source_external_id",
"source_url",
"source_checked_at",
"component_count"
],
"title": "RigSummaryOut",
"type": "object"
},
"SourceStatusOut": { "SourceStatusOut": {
"properties": { "properties": {
"last_started_at": { "last_started_at": {
@@ -2300,6 +2577,18 @@
"title": "Last Seen At", "title": "Last Seen At",
"type": "string" "type": "string"
}, },
"rig_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"title": "Rig Id"
},
"role": { "role": {
"title": "Role", "title": "Role",
"type": "string" "type": "string"
@@ -2308,6 +2597,18 @@
"title": "Status", "title": "Status",
"type": "string" "type": "string"
}, },
"tackle_item_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"title": "Tackle Item Id"
},
"unique_players": { "unique_players": {
"title": "Unique Players", "title": "Unique Players",
"type": "integer" "type": "integer"
@@ -2374,6 +2675,13 @@
"title": "Name", "title": "Name",
"type": "string" "type": "string"
}, },
"related_rigs": {
"items": {
"$ref": "#/components/schemas/TackleItemRigOut"
},
"title": "Related Rigs",
"type": "array"
},
"source_checked_at": { "source_checked_at": {
"anyOf": [ "anyOf": [
{ {
@@ -2458,6 +2766,55 @@
"title": "TackleItemOut", "title": "TackleItemOut",
"type": "object" "type": "object"
}, },
"TackleItemRigOut": {
"properties": {
"component_count": {
"title": "Component Count",
"type": "integer"
},
"id": {
"format": "uuid",
"title": "Id",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"source_checked_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Checked At"
},
"source_system": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Source System"
}
},
"required": [
"id",
"name",
"source_system",
"source_checked_at",
"component_count"
],
"title": "TackleItemRigOut",
"type": "object"
},
"ValidationError": { "ValidationError": {
"properties": { "properties": {
"loc": { "loc": {
@@ -2876,6 +3233,62 @@
"summary": "Admin Reports" "summary": "Admin Reports"
} }
}, },
"/api/v1/admin/catch-reports/bulk": {
"post": {
"operationId": "moderate_reports_bulk_api_v1_admin_catch_reports_bulk_post",
"parameters": [
{
"in": "header",
"name": "authorization",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Authorization"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModerationBulkUpdate"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ModerationBulkResult"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Moderate Reports Bulk"
}
},
"/api/v1/admin/catch-reports/{report_id}": { "/api/v1/admin/catch-reports/{report_id}": {
"delete": { "delete": {
"operationId": "delete_report_api_v1_admin_catch_reports__report_id__delete", "operationId": "delete_report_api_v1_admin_catch_reports__report_id__delete",
@@ -3204,6 +3617,118 @@
"summary": "Admin External Observations" "summary": "Admin External Observations"
} }
}, },
"/api/v1/admin/external-observations/bulk-mapping": {
"patch": {
"operationId": "admin_map_external_observations_bulk_api_v1_admin_external_observations_bulk_mapping_patch",
"parameters": [
{
"in": "header",
"name": "authorization",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Authorization"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExternalObservationBulkMapping"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExternalObservationBulkResult"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Admin Map External Observations Bulk"
}
},
"/api/v1/admin/external-observations/bulk-reject": {
"patch": {
"operationId": "admin_reject_external_observations_bulk_api_v1_admin_external_observations_bulk_reject_patch",
"parameters": [
{
"in": "header",
"name": "authorization",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Authorization"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExternalObservationBulkDecision"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExternalObservationBulkResult"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Admin Reject External Observations Bulk"
}
},
"/api/v1/admin/external-observations/{observation_id}/alias-suggestions": { "/api/v1/admin/external-observations/{observation_id}/alias-suggestions": {
"get": { "get": {
"operationId": "admin_external_alias_suggestions_api_v1_admin_external_observations__observation_id__alias_suggestions_get", "operationId": "admin_external_alias_suggestions_api_v1_admin_external_observations__observation_id__alias_suggestions_get",
@@ -4087,6 +4612,22 @@
"title": "Method" "title": "Method"
} }
}, },
{
"in": "query",
"name": "role",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role"
}
},
{ {
"in": "query", "in": "query",
"name": "hours", "name": "hours",
@@ -4580,6 +5121,23 @@
], ],
"title": "Entity Type" "title": "Entity Type"
} }
},
{
"in": "query",
"name": "media_role",
"required": false,
"schema": {
"anyOf": [
{
"pattern": "^(waterbody_cover|waterbody_map|waterbody_depth_map|waterbody_screenshot|tackle_card|tackle_detail|rig_diagram|tackle_screenshot)$",
"type": "string"
},
{
"type": "null"
}
],
"title": "Media Role"
}
} }
], ],
"responses": { "responses": {
@@ -4721,6 +5279,22 @@
"title": "Category" "title": "Category"
} }
}, },
{
"in": "query",
"name": "q",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Q"
}
},
{ {
"in": "query", "in": "query",
"name": "limit", "name": "limit",
@@ -5026,6 +5600,22 @@
"title": "Category" "title": "Category"
} }
}, },
{
"in": "query",
"name": "q",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Q"
}
},
{ {
"in": "query", "in": "query",
"name": "brand", "name": "brand",
@@ -5164,6 +5754,75 @@
"summary": "Tackle Item" "summary": "Tackle Item"
} }
}, },
"/api/v1/tackle/rigs": {
"get": {
"operationId": "tackle_rigs_api_v1_tackle_rigs_get",
"parameters": [
{
"in": "query",
"name": "q",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Q"
}
},
{
"in": "query",
"name": "limit",
"required": false,
"schema": {
"default": 48,
"maximum": 100,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"required": false,
"schema": {
"default": 0,
"minimum": 0,
"title": "Offset",
"type": "integer"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedRigOut"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Tackle Rigs"
}
},
"/api/v1/tackle/rigs/{rig_id}": { "/api/v1/tackle/rigs/{rig_id}": {
"get": { "get": {
"operationId": "rig_detail_api_v1_tackle_rigs__rig_id__get", "operationId": "rig_detail_api_v1_tackle_rigs__rig_id__get",