Skip to content

Product Type Shot Types Endpoints

Product Type Shot Types API endpoints.


Overview

Method Endpoint Description
GET /api/v1/product-type-shot-types/ Get Product Type Shot Types
POST /api/v1/product-type-shot-types/ Create Product Type Shot Type
GET /api/v1/product-type-shot-types/admin/ Get Product Type Shot Types Admin
POST /api/v1/product-type-shot-types/admin/ Create Product Type Shot Type Admin
POST /api/v1/product-type-shot-types/admin/bulk Create Product Type Shot Types Bulk Admin
DELETE /api/v1/product-type-shot-types/admin/by-product-type/{product_type} Delete Product Type Mappings Admin
POST /api/v1/product-type-shot-types/bulk Create Product Type Shot Types Bulk
GET /api/v1/product-type-shot-types/by-product-type/{product_type} Get Shot Types For Product Type
PUT /api/v1/product-type-shot-types/by-product-type/{product_type} Update Product Type Shot Types
DELETE /api/v1/product-type-shot-types/by-product-type/{product_type} Delete Product Type Mappings
GET /api/v1/product-type-shot-types/grouped Get Product Type Mappings Grouped
GET /api/v1/product-type-shot-types/product-types Get Mapped Product Types
DELETE /api/v1/product-type-shot-types/{id} Delete Product Type Shot Type

API Reference

Sartiq Backend Server - Product Type Shot Types 0.1.0

product-type-shot-types


GET /api/v1/product-type-shot-types/

Get Product Type Shot Types

Description

Get all product type to shot type mappings for the current user.

When organization_id query param is provided, returns mappings belonging to that organization. Without organization_id, returns only personal mappings (not belonging to any organization).

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No
skip query integer 0 No

Responses

{
    "data": [
        {
            "id": "328b9612-e94e-4c5e-b032-71c8d14e188a",
            "owner_id": "a08f3f29-1519-4c30-9ce4-c2f85f392295",
            "organization_id": null,
            "product_type": "string",
            "shot_type_id": "c756b68a-93db-4c0b-afc5-ff9b58f1824e",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z"
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ProductTypeShotTypePublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ProductTypeShotTypesPublic",
    "description": "Collection of ProductTypeShotType mappings."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/product-type-shot-types/

Create Product Type Shot Type

Description

Create a single product type to shot type mapping.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "product_type": "tshirt",
    "shot_type_id": "123e4567-e89b-12d3-a456-426614174000"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_type_id": {
            "type": "string",
            "format": "uuid",
            "title": "Shot Type Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this mapping belongs to"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_type_id"
    ],
    "title": "ProductTypeShotTypeCreate",
    "description": "Schema for creating a single mapping.",
    "example": {
        "product_type": "tshirt",
        "shot_type_id": "123e4567-e89b-12d3-a456-426614174000"
    }
}

Responses

{
    "id": "e2676ada-9fe7-4600-9b4b-b073eb52d059",
    "owner_id": "fdffe015-78a9-40ba-971a-da2981b379d4",
    "organization_id": null,
    "product_type": "string",
    "shot_type_id": "83cefa2d-769a-45e0-a659-d942e27efad9",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_type_id": {
            "type": "string",
            "format": "uuid",
            "title": "Shot Type Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "owner_id",
        "product_type",
        "shot_type_id",
        "created_at",
        "updated_at"
    ],
    "title": "ProductTypeShotTypePublic",
    "description": "Public schema for a single mapping."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/product-type-shot-types/product-types

Get Mapped Product Types

Description

Get list of distinct product types that have shot type mappings for the current user.

When organization_id query param is provided, returns product types from that organization. Without organization_id, returns only personal product types.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Responses

{
    "product_types": [
        "string"
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "product_types": {
            "items": {
                "type": "string"
            },
            "type": "array",
            "title": "Product Types"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "product_types",
        "count"
    ],
    "title": "ProductTypesListPublic",
    "description": "List of distinct product types that have mappings."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/product-type-shot-types/grouped

Get Product Type Mappings Grouped

Description

Get all mappings grouped by product type with shot type details. Returns a list of product types, each with their associated shot types.

When organization_id query param is provided, returns mappings from that organization. Without organization_id, returns only personal mappings.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Responses

{
    "data": [
        {
            "product_type": "string",
            "shot_types": [
                {
                    "name": "string",
                    "view_angle": "front",
                    "framing": "full_body",
                    "shot_type_ref_image_url": null,
                    "shot_type_prompt_instruction": null,
                    "file_naming_convention": null,
                    "reference_image_url": null,
                    "prompt": null,
                    "prompt_builder_section": null,
                    "core_focus": true,
                    "default_shot_type": null,
                    "margins": null,
                    "owner_id": null,
                    "public": true,
                    "organization_id": null,
                    "id": "76bc74ce-d4ad-4968-9855-471cb1f93f86",
                    "created_at": "2022-04-13T15:42:05.901Z",
                    "updated_at": "2022-04-13T15:42:05.901Z",
                    "reference_image": null
                }
            ]
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ProductTypeMappingPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ProductTypeMappingsPublic",
    "description": "Collection of product type mappings grouped by product type."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/product-type-shot-types/by-product-type/{product_type}

Get Shot Types For Product Type

Description

Get all shot types mapped to a specific product type for the current user.

When organization_id query param is provided, returns mappings from that organization. Without organization_id, returns only personal mappings.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
product_type path string No

Responses

{
    "product_type": "string",
    "shot_types": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "cd9b9438-664c-4cc2-bcfd-c762ab2f5011",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "reference_image": null
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_types": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Shot Types"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_types"
    ],
    "title": "ProductTypeMappingPublic",
    "description": "Schema showing a product type with all its shot types."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/product-type-shot-types/by-product-type/{product_type}

Update Product Type Shot Types

Description

Replace all shot type mappings for a specific product type. This will delete existing mappings and create new ones.

When organization_id query param is provided, updates mappings for that organization. Without organization_id, updates only personal mappings.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
product_type path string No

Request body

{
    "product_type": "tshirt",
    "shot_type_ids": [
        "123e4567-e89b-12d3-a456-426614174000",
        "223e4567-e89b-12d3-a456-426614174001"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_type_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "title": "Shot Type Ids"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this mapping belongs to"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_type_ids"
    ],
    "title": "ProductTypeShotTypeBulkCreate",
    "description": "Schema for creating/updating multiple mappings for a product type.",
    "example": {
        "product_type": "tshirt",
        "shot_type_ids": [
            "123e4567-e89b-12d3-a456-426614174000",
            "223e4567-e89b-12d3-a456-426614174001"
        ]
    }
}

Responses

{
    "product_type": "string",
    "shot_types": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "1cb7a26d-e45d-4424-a9c9-4921078561f5",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "reference_image": null
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_types": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Shot Types"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_types"
    ],
    "title": "ProductTypeMappingPublic",
    "description": "Schema showing a product type with all its shot types."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/product-type-shot-types/by-product-type/{product_type}

Delete Product Type Mappings

Description

Delete all shot type mappings for a specific product type.

When organization_id query param is provided, deletes mappings for that organization. Without organization_id, deletes only personal mappings.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No
product_type path string No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/product-type-shot-types/bulk

Create Product Type Shot Types Bulk

Description

Create multiple shot type mappings for a product type at once. If mappings already exist for this product type, they will be replaced.

When organization_id query param is provided, creates mappings for that organization. Without organization_id, creates personal mappings.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No

Request body

{
    "product_type": "tshirt",
    "shot_type_ids": [
        "123e4567-e89b-12d3-a456-426614174000",
        "223e4567-e89b-12d3-a456-426614174001"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_type_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "title": "Shot Type Ids"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this mapping belongs to"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_type_ids"
    ],
    "title": "ProductTypeShotTypeBulkCreate",
    "description": "Schema for creating/updating multiple mappings for a product type.",
    "example": {
        "product_type": "tshirt",
        "shot_type_ids": [
            "123e4567-e89b-12d3-a456-426614174000",
            "223e4567-e89b-12d3-a456-426614174001"
        ]
    }
}

Responses

{
    "product_type": "string",
    "shot_types": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "16cf9ff1-f036-4c90-bccd-7b1d52977ae8",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "reference_image": null
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_types": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Shot Types"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_types"
    ],
    "title": "ProductTypeMappingPublic",
    "description": "Schema showing a product type with all its shot types."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/product-type-shot-types/{id}

Delete Product Type Shot Type

Description

Delete a single product type to shot type mapping by ID. Users can only delete their own mappings or mappings in their organization. Superusers can delete any mapping.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
id path string No
organization_id query No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/product-type-shot-types/admin/

Get Product Type Shot Types Admin

Description

Admin only: Get all product type to shot type mappings for a specific user. Optionally filter by organization_id.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id query No Organization ID to filter by
owner_id query string No Owner ID to get mappings for
skip query integer 0 No

Responses

{
    "data": [
        {
            "id": "58228633-6b72-4523-8c90-043523636061",
            "owner_id": "86a9a625-fc7e-41fe-850d-be677f825bda",
            "organization_id": null,
            "product_type": "string",
            "shot_type_id": "06ad736f-32dd-43eb-a60f-f3308a4e9d44",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z"
        }
    ],
    "count": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "data": {
            "items": {
                "$ref": "#/components/schemas/ProductTypeShotTypePublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "ProductTypeShotTypesPublic",
    "description": "Collection of ProductTypeShotType mappings."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/product-type-shot-types/admin/

Create Product Type Shot Type Admin

Description

Admin only: Create a product type to shot type mapping for a specific user. Optionally assign to an organization.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No Organization ID for the mapping
owner_id query string No Owner ID to create mapping for

Request body

{
    "product_type": "tshirt",
    "shot_type_id": "123e4567-e89b-12d3-a456-426614174000"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_type_id": {
            "type": "string",
            "format": "uuid",
            "title": "Shot Type Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this mapping belongs to"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_type_id"
    ],
    "title": "ProductTypeShotTypeCreate",
    "description": "Schema for creating a single mapping.",
    "example": {
        "product_type": "tshirt",
        "shot_type_id": "123e4567-e89b-12d3-a456-426614174000"
    }
}

Responses

{
    "id": "00ec72b1-25a0-43de-8f8f-cada4a41f69a",
    "owner_id": "6ab8612b-fed6-4055-a0db-b6f509313782",
    "organization_id": null,
    "product_type": "string",
    "shot_type_id": "a566f620-4dcd-4ba7-99d6-1075ce3686d8",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id"
        },
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_type_id": {
            "type": "string",
            "format": "uuid",
            "title": "Shot Type Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        }
    },
    "type": "object",
    "required": [
        "id",
        "owner_id",
        "product_type",
        "shot_type_id",
        "created_at",
        "updated_at"
    ],
    "title": "ProductTypeShotTypePublic",
    "description": "Public schema for a single mapping."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/product-type-shot-types/admin/bulk

Create Product Type Shot Types Bulk Admin

Description

Admin only: Create multiple shot type mappings for a product type for a specific user. If mappings already exist for this product type, they will be replaced. Optionally assign to an organization.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No Organization ID for the mappings
owner_id query string No Owner ID to create mappings for

Request body

{
    "product_type": "tshirt",
    "shot_type_ids": [
        "123e4567-e89b-12d3-a456-426614174000",
        "223e4567-e89b-12d3-a456-426614174001"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_type_ids": {
            "items": {
                "type": "string",
                "format": "uuid"
            },
            "type": "array",
            "title": "Shot Type Ids"
        },
        "organization_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Organization Id",
            "description": "Organization this mapping belongs to"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_type_ids"
    ],
    "title": "ProductTypeShotTypeBulkCreate",
    "description": "Schema for creating/updating multiple mappings for a product type.",
    "example": {
        "product_type": "tshirt",
        "shot_type_ids": [
            "123e4567-e89b-12d3-a456-426614174000",
            "223e4567-e89b-12d3-a456-426614174001"
        ]
    }
}

Responses

{
    "product_type": "string",
    "shot_types": [
        {
            "name": "string",
            "view_angle": "front",
            "framing": "full_body",
            "shot_type_ref_image_url": null,
            "shot_type_prompt_instruction": null,
            "file_naming_convention": null,
            "reference_image_url": null,
            "prompt": null,
            "prompt_builder_section": null,
            "core_focus": true,
            "default_shot_type": null,
            "margins": null,
            "owner_id": null,
            "public": true,
            "organization_id": null,
            "id": "d9b61035-af4d-4da7-a310-e9c65f0dd82d",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "reference_image": null
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "product_type": {
            "type": "string",
            "title": "Product Type"
        },
        "shot_types": {
            "items": {
                "$ref": "#/components/schemas/ShotTypePublic"
            },
            "type": "array",
            "title": "Shot Types"
        }
    },
    "type": "object",
    "required": [
        "product_type",
        "shot_types"
    ],
    "title": "ProductTypeMappingPublic",
    "description": "Schema showing a product type with all its shot types."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/product-type-shot-types/admin/by-product-type/{product_type}

Delete Product Type Mappings Admin

Description

Admin only: Delete all shot type mappings for a specific product type for a specific user. Optionally filter by organization_id.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id query No Organization ID to filter by
owner_id query string No Owner ID to delete mappings for
product_type path string No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

Schemas

DefaultShotTypes

Type: string

HTTPValidationError

Name Type Description
detail Array<ValidationError>

MediaInput

Name Type Description
alt_text
caption
color_profile
dominant_color
duration
height
media_resource_id
protected boolean
url
width

MediaResourcePublic

Name Type Description
alt_text
aspect_ratio
caption
color_profile
content_hash string
created_at string(date-time)
dominant_color
duration
extension string
file_size integer
height
id string(uuid)
orientation
protected boolean
resource_type MediaResourceType
url string
width

MediaResourceType

Type: string

Message

Name Type Description
message string

ProductTypeMappingPublic

Name Type Description
product_type string
shot_types Array<ShotTypePublic>

ProductTypeMappingsPublic

Name Type Description
count integer
data Array<ProductTypeMappingPublic>

ProductTypeShotTypeBulkCreate

Name Type Description
organization_id Organization this mapping belongs to
product_type string
shot_type_ids Array<string(uuid)>

ProductTypeShotTypeCreate

Name Type Description
organization_id Organization this mapping belongs to
product_type string
shot_type_id string(uuid)

ProductTypeShotTypePublic

Name Type Description
created_at string(date-time)
id string(uuid)
organization_id
owner_id string(uuid)
product_type string
shot_type_id string(uuid)
updated_at string(date-time)

ProductTypeShotTypesPublic

Name Type Description
count integer
data Array<ProductTypeShotTypePublic>

ProductTypesListPublic

Name Type Description
count integer
product_types Array<string>

ShotTypeFraming

Type: string

ShotTypePublic

Name Type Description
core_focus boolean
created_at string(date-time)
default_shot_type
file_naming_convention
framing ShotTypeFraming
id string(uuid)
margins
name string
organization_id
owner_id
prompt
prompt_builder_section
public boolean
reference_image
reference_image_url
shot_type_prompt_instruction
shot_type_ref_image_url
updated_at string(date-time)
view_angle ViewAngle

ValidationError

Name Type Description
ctx
input
loc Array<>
msg string
type string

ViewAngle

Type: string

Security schemes

Name Type Scheme Description
OAuth2PasswordBearer oauth2