{
    "openapi": "3.0.3",
    "info": {
        "title": "Skhokho API",
        "version": "v1.0",
        "description": "API for the Skhokho project - Business Management Platform"
    },
    "tags": [
        {
            "name": "👤 Profile",
            "description": "Group: 👤 Profile",
            "x-displayName": "👤 Profile"
        },
        {
            "name": "🏢 Organization",
            "description": "Group: 🏢 Organization",
            "x-displayName": "🏢 Organization"
        },
        {
            "name": "🤝 Customers (CRM)",
            "description": "Group: 🤝 Customers (CRM)",
            "x-displayName": "🤝 Customers (CRM)"
        },
        {
            "name": "🏭 Assets",
            "description": "Group: 🏭 Assets",
            "x-displayName": "🏭 Assets"
        },
        {
            "name": "💰 Finance",
            "description": "Group: 💰 Finance",
            "x-displayName": "💰 Finance"
        },
        {
            "name": "My Profile",
            "description": "Authenticated user profile and personal information",
            "x-displayName": "👤 User  Profile",
            "x-parent": "👤 Profile"
        },
        {
            "name": "Organisation Management",
            "description": "Organisation, team members, and workspace management",
            "x-displayName": "🏢 Organisation Management",
            "x-parent": "🏢 Organization"
        },
        {
            "name": "Contact Groups",
            "description": "Organize contacts into groups and categories",
            "x-displayName": "📁 Contact Groups",
            "x-parent": "🏢 Organization"
        },
        {
            "name": "Contacts",
            "description": "Individual contact management and information",
            "x-displayName": "👥 Contacts",
            "x-parent": "🏢 Organization"
        },
        {
            "name": "Leads",
            "description": "Sales lead tracking and management",
            "x-displayName": "🎯 Leads",
            "x-parent": "🤝 Customers (CRM)"
        },
        {
            "name": "Sales Stages",
            "description": "Sales pipeline stages and workflow configuration",
            "x-displayName": "📊 Sales Funnel",
            "x-parent": "🤝 Customers (CRM)"
        },
        {
            "name": "Clients",
            "description": "Client and customer relationship management",
            "x-displayName": "🤝 Clients",
            "x-parent": "🤝 Customers (CRM)"
        },
        {
            "name": "Vendors",
            "description": "Vendor and supplier management",
            "x-displayName": "🏪 Vendors",
            "x-parent": "🤝 Customers (CRM)"
        },
        {
            "name": "Services",
            "description": "Service catalog and offerings management",
            "x-displayName": "⚙️ Services",
            "x-parent": "🏭 Assets"
        },
        {
            "name": "Products",
            "description": "Product inventory and stock management",
            "x-displayName": "📦 Products",
            "x-parent": "🏭 Assets"
        },
        {
            "name": "Assets",
            "description": "Company asset tracking and management",
            "x-displayName": "🏭 Assets",
            "x-parent": "🏭 Assets"
        },
        {
            "name": "Liabilities",
            "description": "Liability and obligation tracking",
            "x-displayName": "📉 Liabilities",
            "x-parent": "🏭 Assets"
        },
        {
            "name": "Accounts",
            "description": "Chart of accounts and account management",
            "x-displayName": "🏦 Accounts",
            "x-parent": "💰 Finance"
        },
        {
            "name": "Expenses",
            "description": "Expense recording and management",
            "x-displayName": "💸 Expenses",
            "x-parent": "💰 Finance"
        },
        {
            "name": "Bills",
            "description": "Accounts payable and bill management",
            "x-displayName": "💳 Bills",
            "x-parent": "💰 Finance"
        },
        {
            "name": "Invoices",
            "description": "Invoice creation, management, and tracking",
            "x-displayName": "🧾 Invoices",
            "x-parent": "💰 Finance"
        },
        {
            "name": "Quotes",
            "description": "Sales quotes and estimates",
            "x-displayName": "📝 Quotes",
            "x-parent": "💰 Finance"
        }
    ],
    "paths": {
        "/api/v1.0/me/": {
            "get": {
                "operationId": "me_retrieve",
                "description": "Retrieve the authenticated user's full profile information.",
                "summary": "Get your profile details",
                "tags": [
                    "My Profile"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Person"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            },
            "put": {
                "operationId": "me_update",
                "description": "Replace the authenticated user's profile with the provided payload. All writable fields must be supplied.",
                "summary": "Update your profile (full)",
                "tags": [
                    "My Profile"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PersonRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PersonRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PersonRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Person"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid or missing fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            },
            "patch": {
                "operationId": "me_partial_update",
                "description": "Partially update the authenticated user's profile. Only include the fields that should change.",
                "summary": "Update your profile (partial)",
                "tags": [
                    "My Profile"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedPersonRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedPersonRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedPersonRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Person"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            }
        },
        "/api/v1.0/organisations/": {
            "get": {
                "operationId": "organisations_list",
                "description": "Retrieve list of organisations where the user is a member or owner",
                "summary": "List user organisations",
                "tags": [
                    "Organisation Management"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/OrganisationOwner"
                                    }
                                }
                            }
                        },
                        "description": ""
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/": {
            "get": {
                "operationId": "organisation_retrieve",
                "description": "Get basic information about an organisation (membership required)",
                "summary": "Get organisation details",
                "parameters": [
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Organisation Management"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/OrganisationBasic"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_update_update",
                "description": "Replace all editable organisation settings. Owner permissions required.",
                "summary": "Update organisation details (full)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Organisation Management"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/OrganisationOwnerRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/OrganisationOwnerRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/OrganisationOwnerRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/OrganisationOwner"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid or missing fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_update_partial_update",
                "description": "Apply a partial update to organisation settings. Provide only the fields to change.",
                "summary": "Update organisation details (partial)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Organisation Management"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedOrganisationOwnerRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedOrganisationOwnerRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedOrganisationOwnerRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/OrganisationOwner"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/people/": {
            "get": {
                "operationId": "organisation_people_list",
                "description": "Get all members of an organisation",
                "summary": "List organisation members",
                "parameters": [
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Organisation Management"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Person"
                                    }
                                }
                            }
                        },
                        "description": ""
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/person/{user_unique_id}/": {
            "get": {
                "operationId": "organisation_person_retrieve",
                "description": "Get detailed information about a specific person in an organisation",
                "summary": "Get person details",
                "parameters": [
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "user_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Organisation Management"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Person"
                                }
                            }
                        },
                        "description": ""
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contact-groups/create/": {
            "post": {
                "operationId": "organisation_contact_groups_create_create",
                "description": "Create a new contact group in the organisation. Group Name is required.",
                "summary": "Create contact group",
                "parameters": [
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactGroupRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactGroupRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactGroupRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ContactGroup"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid or missing fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contact-groups/": {
            "get": {
                "operationId": "organisation_contact_groups_list",
                "description": "Get all contact groups for an organisation",
                "summary": "List contact groups",
                "parameters": [
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ContactGroup"
                                    }
                                }
                            }
                        },
                        "description": ""
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contact-groups/{group_unique_id}/": {
            "get": {
                "operationId": "organisation_contact_groups_retrieve",
                "description": "Retrieve full information about a specific contact group.",
                "summary": "Contact group details",
                "parameters": [
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ContactGroupDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "put": {
                "operationId": "organisation_contact_groups_update",
                "description": "Replace all editable fields of a contact group. Provide the full payload.",
                "summary": "Update contact group (full)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactGroupRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactGroupRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactGroupRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ContactGroup"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid or missing fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_contact_groups_partial_update",
                "description": "Partially update a contact group. Send only the fields that need changes.",
                "summary": "Update contact group (partial)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactGroupRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactGroupRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactGroupRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ContactGroup"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "delete": {
                "operationId": "organisation_contact_groups_destroy",
                "description": "Delete a specific contact group from the organisation.",
                "summary": "Delete contact group",
                "parameters": [
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Contact group deleted"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contact-groups/{group_unique_id}/contacts/create/": {
            "post": {
                "operationId": "organisation_contact_groups_contacts_create_create",
                "description": "Create a new contact in a contact group. First name, last name, and entity type are required.",
                "summary": "Create contact",
                "parameters": [
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Contact"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid input or missing required fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contact-groups/{group_unique_id}/contacts/": {
            "get": {
                "operationId": "organisation_contact_groups_contacts_list",
                "description": "Get all contacts in a specific contact group with optional filters",
                "summary": "List contacts",
                "parameters": [
                    {
                        "in": "query",
                        "name": "entity_type",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "client",
                                "lead",
                                "vendor"
                            ]
                        },
                        "description": "Filter by entity type"
                    },
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "is_active",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by active status (true/false)"
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search contacts by first name, last name, email, or phone"
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Contact"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contact-groups/{group_unique_id}/contacts/{contact_unique_id}/": {
            "get": {
                "operationId": "organisation_contact_groups_contacts_retrieve",
                "description": "Get a specific contact inside a group.",
                "summary": "Contact details",
                "parameters": [
                    {
                        "in": "path",
                        "name": "contact_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Contact"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contact-groups/{group_unique_id}/contacts/{contact_unique_id}/update/": {
            "put": {
                "operationId": "organisation_contact_groups_contacts_update_update",
                "description": "Update a specific contact in a contact group (full or partial update)",
                "summary": "Update contact",
                "parameters": [
                    {
                        "in": "path",
                        "name": "contact_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Contact"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_contact_groups_contacts_update_partial_update",
                "description": "Update a specific contact in a contact group (full or partial update)",
                "summary": "Update contact",
                "parameters": [
                    {
                        "in": "path",
                        "name": "contact_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Contact"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contact-groups/{group_unique_id}/contacts/{contact_unique_id}/delete/": {
            "delete": {
                "operationId": "organisation_contact_groups_contacts_delete_destroy",
                "description": "Delete a specific contact from a contact group",
                "summary": "Delete contact",
                "parameters": [
                    {
                        "in": "path",
                        "name": "contact_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "group_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contact Groups"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contacts/create/": {
            "post": {
                "operationId": "organisation_contacts_create_create",
                "description": "Create a new contact without requiring a contact group. First name, last name, and entity type are required. The contact_group field is optional.",
                "summary": "Create contact (no group)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contacts"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Contact"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid input or missing required fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contacts/": {
            "get": {
                "operationId": "organisation_contacts_list",
                "description": "Get all contacts for an organisation with optional filters",
                "summary": "List all contacts",
                "parameters": [
                    {
                        "in": "query",
                        "name": "contact_group",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by contact group name or unique_id"
                    },
                    {
                        "in": "query",
                        "name": "entity_type",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "client",
                                "lead",
                                "vendor"
                            ]
                        },
                        "description": "Filter by entity type"
                    },
                    {
                        "in": "query",
                        "name": "is_active",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by active status (true/false)"
                    },
                    {
                        "in": "query",
                        "name": "no_group",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Show only contacts without a group (true/false)"
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search contacts by first name or last name"
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contacts"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Contact"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contacts/{contact_unique_id}/": {
            "get": {
                "operationId": "organisation_contacts_retrieve",
                "description": "Get a specific contact by unique_id. Works for contacts with or without groups.",
                "summary": "Contact details (org level)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "contact_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contacts"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Contact"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contacts/{contact_unique_id}/update/": {
            "put": {
                "operationId": "organisation_contacts_update_update",
                "description": "Update a specific contact by unique_id (full or partial update). Works for contacts with or without groups.",
                "summary": "Update contact (org level)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "contact_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contacts"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Contact"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_contacts_update_partial_update",
                "description": "Update a specific contact by unique_id (full or partial update). Works for contacts with or without groups.",
                "summary": "Update contact (org level)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "contact_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contacts"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedContactRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Contact"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{unique_id}/contacts/{contact_unique_id}/delete/": {
            "delete": {
                "operationId": "organisation_contacts_delete_destroy",
                "description": "Delete a specific contact by unique_id. Works for contacts with or without groups.",
                "summary": "Delete contact (org level)",
                "parameters": [
                    {
                        "in": "path",
                        "name": "contact_unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Contacts"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/clients/": {
            "get": {
                "operationId": "organisation_clients_list",
                "description": "Get a list of all clients with optional filters",
                "summary": "List clients",
                "parameters": [
                    {
                        "in": "query",
                        "name": "company_size",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by company size"
                    },
                    {
                        "in": "query",
                        "name": "entity_type",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "client",
                                "lead",
                                "vendor"
                            ]
                        },
                        "description": "Filter by entity type"
                    },
                    {
                        "in": "query",
                        "name": "industry",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "agriculture",
                                "construction",
                                "energy",
                                "finance",
                                "healthcare",
                                "hospitality",
                                "information_technology",
                                "manufacturing",
                                "media",
                                "other",
                                "retail",
                                "services",
                                "transportation"
                            ]
                        },
                        "description": "Filter by industry"
                    },
                    {
                        "in": "query",
                        "name": "lifecycle_stage",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active_client",
                                "dormant",
                                "inactive",
                                "lost_opportunity",
                                "matured_client",
                                "prospect"
                            ]
                        },
                        "description": "Filter by client lifecycle stage"
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search clients by name"
                    }
                ],
                "tags": [
                    "Clients"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Client"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/clients/create/": {
            "post": {
                "operationId": "organisation_clients_create_create",
                "description": "Create a new client. Client name is required.",
                "summary": "Create client",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Clients"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ClientRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ClientRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ClientRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Client"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid input or missing required fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/clients/{unique_id}/": {
            "get": {
                "operationId": "organisation_clients_retrieve",
                "description": "Retrieve a specific client",
                "summary": "Get client",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Clients"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Client"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/clients/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_clients_update_update",
                "description": "Update a specific client (full or partial update)",
                "summary": "Update client",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Clients"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ClientRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ClientRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ClientRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Client"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_clients_update_partial_update",
                "description": "Update a specific client (full or partial update)",
                "summary": "Update client",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Clients"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedClientRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedClientRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedClientRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Client"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/clients/{unique_id}/delete/": {
            "delete": {
                "operationId": "organisation_clients_delete_destroy",
                "description": "Delete a specific client",
                "summary": "Delete client",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Clients"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/vendors/": {
            "get": {
                "operationId": "organisation_vendors_list",
                "description": "Get a paginated list of vendors with support for search, status, and category filters",
                "summary": "List vendors",
                "parameters": [
                    {
                        "in": "query",
                        "name": "category",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "both",
                                "consultant",
                                "contractor",
                                "goods",
                                "other",
                                "services"
                            ]
                        },
                        "description": "Filter by vendor category"
                    },
                    {
                        "in": "query",
                        "name": "entity_type",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "client",
                                "lead",
                                "vendor"
                            ]
                        },
                        "description": "Filter by entity type"
                    },
                    {
                        "in": "query",
                        "name": "industry",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "agriculture",
                                "construction",
                                "energy",
                                "finance",
                                "healthcare",
                                "hospitality",
                                "information_technology",
                                "manufacturing",
                                "media",
                                "other",
                                "retail",
                                "services",
                                "transportation"
                            ]
                        },
                        "description": "Filter by industry"
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search vendors by name or website"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active",
                                "blacklisted",
                                "inactive",
                                "on_hold",
                                "potential",
                                "preferred"
                            ]
                        },
                        "description": "Filter by vendor status"
                    }
                ],
                "tags": [
                    "Vendors"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Vendor"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/vendors/create/": {
            "post": {
                "operationId": "organisation_vendors_create_create",
                "description": "Create a new vendor. Vendor name is required.",
                "summary": "Create vendor",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Vendors"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/VendorRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/VendorRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/VendorRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Vendor"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid input or missing required fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/vendors/{unique_id}/": {
            "get": {
                "operationId": "organisation_vendors_retrieve",
                "description": "Retrieve a specific vendor by unique_id",
                "summary": "Get vendor",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Vendors"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Vendor"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/vendors/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_vendors_update_update",
                "description": "Update a specific vendor (full or partial update). For PATCH requests, only provided fields are updated.",
                "summary": "Update vendor",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Vendors"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/VendorRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/VendorRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/VendorRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Vendor"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid input"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_vendors_update_partial_update",
                "description": "Update a specific vendor (full or partial update). For PATCH requests, only provided fields are updated.",
                "summary": "Update vendor",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Vendors"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedVendorRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedVendorRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedVendorRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Vendor"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid input"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/vendors/{unique_id}/delete/": {
            "delete": {
                "operationId": "organisation_vendors_delete_destroy",
                "description": "Delete a specific vendor by unique_id",
                "summary": "Delete vendor",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Vendors"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content - Successfully deleted"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/sales-stages/": {
            "get": {
                "operationId": "organisation_sales_stages_list",
                "description": "Get a list of active sales stages",
                "summary": "List sales stages",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Sales Stages"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/SalesStage"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/sales-stages/create/": {
            "post": {
                "operationId": "organisation_sales_stages_create_create",
                "description": "Create a new sales stage. Stage name is required.",
                "summary": "Create sales stage",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Sales Stages"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SalesStageRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/SalesStageRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/SalesStageRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SalesStage"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid or missing fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/sales-stages/{unique_id}/": {
            "get": {
                "operationId": "organisation_sales_stages_retrieve",
                "description": "Retrieve a specific sales stage",
                "summary": "Get sales stage",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Sales Stages"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SalesStage"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/sales-stages/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_sales_stages_update_update",
                "description": "Update a specific sales stage (full or partial update).",
                "summary": "Update sales stage",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Sales Stages"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SalesStageRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/SalesStageRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/SalesStageRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SalesStage"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_sales_stages_update_partial_update",
                "description": "Update a specific sales stage (full or partial update).",
                "summary": "Update sales stage",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Sales Stages"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedSalesStageRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedSalesStageRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedSalesStageRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SalesStage"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/sales-stages/{unique_id}/delete/": {
            "delete": {
                "operationId": "organisation_sales_stages_delete_destroy",
                "description": "Delete a specific sales stage",
                "summary": "Delete sales stage",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Sales Stages"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/leads/": {
            "get": {
                "operationId": "organisation_leads_list",
                "description": "Get a paginated list of leads with optional filters",
                "summary": "List leads",
                "parameters": [
                    {
                        "in": "query",
                        "name": "name",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter leads by name/title (case-insensitive partial match)"
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "source",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by lead source"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "lost",
                                "open",
                                "won"
                            ]
                        },
                        "description": "Filter leads by status: won (probability=100), lost (probability=0), or open (not won/lost)"
                    }
                ],
                "tags": [
                    "Leads"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Lead"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/leads/create/": {
            "post": {
                "operationId": "organisation_leads_create_create",
                "description": "Create a new lead. Lead title, sales stage, and lead source are required.",
                "summary": "Create lead",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Leads"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/LeadRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/LeadRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/LeadRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Lead"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - invalid or missing fields"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/leads/{unique_id}/": {
            "get": {
                "operationId": "organisation_leads_retrieve",
                "description": "Retrieve a specific lead",
                "summary": "Get lead",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Leads"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Lead"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/leads/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_leads_update_update",
                "description": "Update a specific lead (full or partial update).",
                "summary": "Update lead",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Leads"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/LeadRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/LeadRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/LeadRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Lead"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_leads_update_partial_update",
                "description": "Update a specific lead (full or partial update).",
                "summary": "Update lead",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Leads"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedLeadRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedLeadRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedLeadRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Lead"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/leads/{unique_id}/delete/": {
            "delete": {
                "operationId": "organisation_leads_delete_destroy",
                "description": "Delete a specific lead",
                "summary": "Delete lead",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Leads"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/inventory/": {
            "get": {
                "operationId": "organisation_inventory_list",
                "description": "Get a paginated list of products with optional filters",
                "summary": "List products",
                "parameters": [
                    {
                        "in": "query",
                        "name": "category",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter products by category"
                    },
                    {
                        "in": "query",
                        "name": "low_stock",
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Filter only low stock products (true/false)"
                    },
                    {
                        "in": "query",
                        "name": "name",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter products by name/title (case-insensitive partial match)"
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "product_type",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter products by product type"
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search products by name, product code, or barcode"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter products by status (active, inactive, discontinued, out_of_stock)"
                    }
                ],
                "tags": [
                    "Products"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ProductList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/inventory/create/": {
            "post": {
                "operationId": "organisation_inventory_create_create",
                "description": "Create a new product",
                "summary": "Create product",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Products"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ProductRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ProductRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ProductRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/inventory/{unique_id}/": {
            "get": {
                "operationId": "organisation_inventory_retrieve",
                "description": "Get detailed information about a specific product",
                "summary": "Retrieve product",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Products"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/inventory/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_inventory_update_update",
                "description": "Update product information (PUT for full update, PATCH for partial)",
                "summary": "Update product",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Products"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ProductRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ProductRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ProductRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_inventory_update_partial_update",
                "description": "Update product information (PUT for full update, PATCH for partial)",
                "summary": "Update product",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Products"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedProductRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedProductRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedProductRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/inventory/{unique_id}/action/": {
            "get": {
                "operationId": "organisation_inventory_action_retrieve",
                "description": "Perform actions on a product (deactivate, mark_out_of_stock). Uses query parameters.",
                "summary": "Perform action on product",
                "parameters": [
                    {
                        "in": "query",
                        "name": "action",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "deactivate",
                                "mark_out_of_stock"
                            ]
                        },
                        "description": "Action to perform: deactivate or mark_out_of_stock",
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Products"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/services/": {
            "get": {
                "operationId": "organisation_services_list",
                "description": "Get a paginated list of services with optional filters",
                "summary": "List services",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Services"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ServiceList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/services/create/": {
            "post": {
                "operationId": "organisation_services_create_create",
                "description": "Create a new service. service_type is required and must be one of: hourly, fixed, subscription, project, consultation, maintenance, or other.",
                "summary": "Create service",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Services"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ServiceRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ServiceRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ServiceRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ServiceDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/services/{unique_id}/": {
            "get": {
                "operationId": "organisation_services_retrieve",
                "description": "Get detailed information about a specific service",
                "summary": "Retrieve service",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Services"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ServiceDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/services/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_services_update_update",
                "description": "Update service information (PUT for full update, PATCH for partial)",
                "summary": "Update service",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Services"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ServiceRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ServiceRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ServiceRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ServiceDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_services_update_partial_update",
                "description": "Update service information (PUT for full update, PATCH for partial)",
                "summary": "Update service",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Services"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedServiceRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedServiceRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedServiceRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ServiceDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/services/{unique_id}/action/": {
            "get": {
                "operationId": "organisation_services_action_retrieve",
                "description": "Perform actions on a service (duplicate, deactivate). Uses query parameters.",
                "summary": "Perform action on service",
                "parameters": [
                    {
                        "in": "query",
                        "name": "action",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "deactivate",
                                "duplicate"
                            ]
                        },
                        "description": "Action to perform: duplicate or deactivate",
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Services"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ServiceDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/assets/": {
            "get": {
                "operationId": "organisation_assets_list",
                "description": "Get a paginated list of assets with optional filters",
                "summary": "List assets",
                "parameters": [
                    {
                        "in": "query",
                        "name": "asset_type",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter assets by asset type"
                    },
                    {
                        "in": "query",
                        "name": "assigned_to",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter assets by assigned person unique_id"
                    },
                    {
                        "in": "query",
                        "name": "category",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter assets by category"
                    },
                    {
                        "in": "query",
                        "name": "condition",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter assets by condition"
                    },
                    {
                        "in": "query",
                        "name": "name",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter assets by name (case-insensitive partial match)"
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search assets by name, asset code, or serial number"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter assets by status (active, inactive, disposed, etc.)"
                    }
                ],
                "tags": [
                    "Assets"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/AssetList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/assets/create/": {
            "post": {
                "operationId": "organisation_assets_create_create",
                "description": "Create a new asset",
                "summary": "Create asset",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Assets"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AssetRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/AssetRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/AssetRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AssetDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/assets/{unique_id}/": {
            "get": {
                "operationId": "organisation_assets_retrieve",
                "description": "Get detailed information about a specific asset",
                "summary": "Retrieve asset",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Assets"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AssetDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/assets/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_assets_update_update",
                "description": "Update asset information (PUT for full update, PATCH for partial)",
                "summary": "Update asset",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Assets"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AssetRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/AssetRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/AssetRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AssetDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_assets_update_partial_update",
                "description": "Update asset information (PUT for full update, PATCH for partial)",
                "summary": "Update asset",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Assets"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedAssetRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedAssetRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedAssetRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AssetDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/assets/{unique_id}/action/": {
            "get": {
                "operationId": "organisation_assets_action_retrieve",
                "description": "Perform actions on an asset (deactivate, mark_disposed). Uses query parameters.",
                "summary": "Perform action on asset",
                "parameters": [
                    {
                        "in": "query",
                        "name": "action",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "deactivate",
                                "mark_disposed"
                            ]
                        },
                        "description": "Action to perform: deactivate or mark_disposed",
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Assets"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AssetDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/liabilities/": {
            "get": {
                "operationId": "organisation_liabilities_list",
                "description": "Get a paginated list of liabilities with optional filters",
                "summary": "List liabilities",
                "parameters": [
                    {
                        "in": "query",
                        "name": "classification",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter liabilities by classification"
                    },
                    {
                        "in": "query",
                        "name": "creditor",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter liabilities by creditor name"
                    },
                    {
                        "in": "query",
                        "name": "liability_type",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter liabilities by type"
                    },
                    {
                        "in": "query",
                        "name": "name",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter liabilities by name/title (case-insensitive partial match)"
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "overdue",
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Filter only overdue liabilities (true/false)"
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search liabilities by name, code, reference number, or creditor"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter liabilities by status (pending, overdue, paid, etc.)"
                    }
                ],
                "tags": [
                    "Liabilities"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/LiabilityList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/liabilities/create/": {
            "post": {
                "operationId": "organisation_liabilities_create_create",
                "description": "Create a new liability",
                "summary": "Create liability",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Liabilities"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/LiabilityRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/LiabilityRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/LiabilityRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LiabilityDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/liabilities/{unique_id}/": {
            "get": {
                "operationId": "organisation_liabilities_retrieve",
                "description": "Get detailed information about a specific liability",
                "summary": "Retrieve liability",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Liabilities"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LiabilityDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/liabilities/{unique_id}/update/": {
            "put": {
                "operationId": "organisation_liabilities_update_update",
                "description": "Update liability information (PUT for full update, PATCH for partial)",
                "summary": "Update liability",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Liabilities"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/LiabilityRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/LiabilityRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/LiabilityRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LiabilityDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_liabilities_update_partial_update",
                "description": "Update liability information (PUT for full update, PATCH for partial)",
                "summary": "Update liability",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Liabilities"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedLiabilityRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedLiabilityRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedLiabilityRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LiabilityDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_uid}/liabilities/{unique_id}/action/": {
            "get": {
                "operationId": "organisation_liabilities_action_retrieve",
                "description": "Perform actions on a liability (mark_paid, mark_overdue). Uses query parameters.",
                "summary": "Perform action on liability",
                "parameters": [
                    {
                        "in": "query",
                        "name": "action",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "mark_overdue",
                                "mark_paid"
                            ]
                        },
                        "description": "Action to perform: mark_paid or mark_overdue",
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_uid",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "unique_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Liabilities"
                ],
                "security": [
                    {
                        "cookieAuth": []
                    },
                    {
                        "basicAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LiabilityDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/accounts/": {
            "get": {
                "operationId": "organisation_accounts_list",
                "description": "List all accounts (chart of accounts) for an organization",
                "summary": "List accounts",
                "parameters": [
                    {
                        "in": "query",
                        "name": "account_category",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by account category"
                    },
                    {
                        "in": "query",
                        "name": "account_type",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asset",
                                "equity",
                                "expense",
                                "income",
                                "liability"
                            ]
                        },
                        "description": "Filter by account type"
                    },
                    {
                        "in": "query",
                        "name": "is_active",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by active status (true/false)"
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "parent_account",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by parent account unique_id (use \"null\" for top-level accounts)"
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search account_code or name"
                    }
                ],
                "tags": [
                    "Accounts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/AccountList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/accounts/create/": {
            "post": {
                "operationId": "organisation_accounts_create_create",
                "description": "Create a new account in the chart of accounts",
                "summary": "Create account",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Accounts"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AccountRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/AccountRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/AccountRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccountDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/accounts/{account_id}/": {
            "get": {
                "operationId": "organisation_accounts_retrieve",
                "description": "Retrieve a specific account by ID",
                "summary": "Get account",
                "parameters": [
                    {
                        "in": "path",
                        "name": "account_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Accounts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccountDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/accounts/{account_id}/update/": {
            "put": {
                "operationId": "organisation_accounts_update_update",
                "description": "Update an existing account",
                "summary": "Update account",
                "parameters": [
                    {
                        "in": "path",
                        "name": "account_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Accounts"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AccountRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/AccountRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/AccountRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccountDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_accounts_update_partial_update",
                "description": "Update an existing account",
                "summary": "Update account",
                "parameters": [
                    {
                        "in": "path",
                        "name": "account_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Accounts"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedAccountRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedAccountRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedAccountRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccountDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/accounts/{account_id}/action/": {
            "get": {
                "operationId": "organisation_accounts_action_retrieve",
                "description": "Perform an action on an account using query parameter.\n    \n    **Available Actions:**\n    - `activate` - Activate a deactivated account\n    - `deactivate` - Deactivate an account (soft delete, use instead of deleting accounts with transactions)\n    \n    **Examples:**\n    - `/accounts/{id}/action?action=activate`\n    - `/accounts/{id}/action?action=deactivate`\n    ",
                "summary": "Perform account action",
                "parameters": [
                    {
                        "in": "path",
                        "name": "account_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Accounts"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AccountDetail"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action or system account cannot be deactivated"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/invoices/": {
            "get": {
                "operationId": "organisation_invoices_list",
                "description": "List all invoices for an organization",
                "summary": "List invoices",
                "parameters": [
                    {
                        "in": "query",
                        "name": "client_id",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by client unique_id"
                    },
                    {
                        "in": "query",
                        "name": "from_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter invoices from this invoice_date (YYYY-MM-DD)"
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "overdue",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter overdue invoices (true/false)"
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search invoice_number or title"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "cancelled",
                                "draft",
                                "paid",
                                "partially_paid",
                                "sent",
                                "viewed"
                            ]
                        },
                        "description": "Filter by invoice status"
                    },
                    {
                        "in": "query",
                        "name": "to_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter invoices up to this invoice_date (YYYY-MM-DD)"
                    }
                ],
                "tags": [
                    "Invoices"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/InvoiceList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/invoices/create/": {
            "post": {
                "operationId": "organisation_invoices_create_create",
                "description": "Create a new invoice",
                "summary": "Create invoice",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Invoices"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoiceRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoiceRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoiceRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/invoices/{invoice_id}/": {
            "get": {
                "operationId": "organisation_invoices_retrieve",
                "description": "Retrieve a specific invoice with full details",
                "summary": "Retrieve invoice",
                "parameters": [
                    {
                        "in": "path",
                        "name": "invoice_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Invoices"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/invoices/{invoice_id}/update/": {
            "put": {
                "operationId": "organisation_invoices_update_update",
                "description": "Update an existing invoice",
                "summary": "Update invoice",
                "parameters": [
                    {
                        "in": "path",
                        "name": "invoice_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Invoices"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoiceRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoiceRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoiceRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_invoices_update_partial_update",
                "description": "Update an existing invoice",
                "summary": "Update invoice",
                "parameters": [
                    {
                        "in": "path",
                        "name": "invoice_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Invoices"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedInvoiceRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedInvoiceRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedInvoiceRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/invoices/{invoice_id}/action/": {
            "get": {
                "operationId": "organisation_invoices_action_retrieve",
                "description": "Perform an action on an invoice using query parameter.\n    \n    **Available Actions:**\n    - `send` - Mark a draft invoice as sent to the client\n    - `mark_as_paid` - Mark an invoice as fully paid\n    - `cancel` - Cancel an invoice\n    - `duplicate` - Create a duplicate of the invoice\n    - `record_payment` - Record a payment received for the invoice (requires `amount` parameter)\n    \n    **Examples:**\n    - `/invoices/{id}/action?action=send`\n    - `/invoices/{id}/action?action=mark_as_paid`\n    - `/invoices/{id}/action?action=cancel`\n    - `/invoices/{id}/action?action=duplicate`\n    - `/invoices/{id}/action?action=record_payment&amount=1000.00`\n    ",
                "summary": "Perform invoice action",
                "parameters": [
                    {
                        "in": "query",
                        "name": "action",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "cancel",
                                "duplicate",
                                "mark_as_paid",
                                "record_payment",
                                "send"
                            ]
                        },
                        "description": "The action to perform on the invoice",
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "amount",
                        "schema": {
                            "type": "number",
                            "format": "double"
                        },
                        "description": "Payment amount (required when action=record_payment)"
                    },
                    {
                        "in": "path",
                        "name": "invoice_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "payment_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Payment date in YYYY-MM-DD format (optional, defaults to today)"
                    }
                ],
                "tags": [
                    "Invoices"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action or missing required parameters"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/expenses/": {
            "get": {
                "operationId": "organisation_expenses_list",
                "description": "List all expenses for an organization",
                "summary": "List expenses",
                "parameters": [
                    {
                        "in": "query",
                        "name": "account_id",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by account unique_id"
                    },
                    {
                        "in": "query",
                        "name": "employee_id",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by employee unique_id"
                    },
                    {
                        "in": "query",
                        "name": "from_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter expenses from this expense_date (YYYY-MM-DD)"
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search expense_number or title"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "approved",
                                "draft",
                                "paid",
                                "rejected",
                                "submitted"
                            ]
                        },
                        "description": "Filter by expense status"
                    },
                    {
                        "in": "query",
                        "name": "to_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter expenses up to this expense_date (YYYY-MM-DD)"
                    },
                    {
                        "in": "query",
                        "name": "vendor_id",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by vendor unique_id"
                    }
                ],
                "tags": [
                    "Expenses"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/ExpenseList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/expenses/create/": {
            "post": {
                "operationId": "organisation_expenses_create_create",
                "description": "Create a new expense",
                "summary": "Create expense",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Expenses"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ExpenseRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ExpenseRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ExpenseRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Expense"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/expenses/{expense_id}/": {
            "get": {
                "operationId": "organisation_expenses_retrieve",
                "description": "Retrieve a specific expense with full details",
                "summary": "Retrieve expense",
                "parameters": [
                    {
                        "in": "path",
                        "name": "expense_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Expenses"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Expense"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/expenses/{expense_id}/update/": {
            "put": {
                "operationId": "organisation_expenses_update_update",
                "description": "Update an existing expense",
                "summary": "Update expense",
                "parameters": [
                    {
                        "in": "path",
                        "name": "expense_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Expenses"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ExpenseRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/ExpenseRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/ExpenseRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Expense"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_expenses_update_partial_update",
                "description": "Update an existing expense",
                "summary": "Update expense",
                "parameters": [
                    {
                        "in": "path",
                        "name": "expense_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Expenses"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedExpenseRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedExpenseRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedExpenseRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Expense"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/expenses/{expense_id}/action/": {
            "get": {
                "operationId": "organisation_expenses_action_retrieve",
                "description": "Perform an action on an expense using query parameter.\n    \n    **Available Actions:**\n    - `submit` - Submit a draft expense for approval\n    - `approve` - Approve a submitted expense\n    - `reject` - Reject a submitted expense (supports optional `reason` parameter)\n    - `mark_paid` - Mark an approved expense as paid\n    \n    **Examples:**\n    - `/expenses/{id}/action?action=submit`\n    - `/expenses/{id}/action?action=approve`\n    - `/expenses/{id}/action?action=reject&reason=Missing+receipts`\n    - `/expenses/{id}/action?action=mark_paid`\n    ",
                "summary": "Perform expense action",
                "parameters": [
                    {
                        "in": "query",
                        "name": "action",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "approve",
                                "mark_paid",
                                "reject",
                                "submit"
                            ]
                        },
                        "description": "The action to perform on the expense",
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "expense_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "reason",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Reason for rejection (only used with action=reject)"
                    }
                ],
                "tags": [
                    "Expenses"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Expense"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action or invalid state transition"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/quotes/": {
            "get": {
                "operationId": "organisation_quotes_list",
                "description": "List all quotes for an organization",
                "summary": "List quotes",
                "parameters": [
                    {
                        "in": "query",
                        "name": "client_id",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by client unique_id"
                    },
                    {
                        "in": "query",
                        "name": "expired",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter expired quotes (true/false)"
                    },
                    {
                        "in": "query",
                        "name": "from_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter quotes from this quote_date (YYYY-MM-DD)"
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search quote_number or title"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "accepted",
                                "converted",
                                "draft",
                                "rejected",
                                "sent",
                                "viewed"
                            ]
                        },
                        "description": "Filter by quote status"
                    },
                    {
                        "in": "query",
                        "name": "to_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter quotes up to this quote_date (YYYY-MM-DD)"
                    }
                ],
                "tags": [
                    "Quotes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/QuoteList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/quotes/create/": {
            "post": {
                "operationId": "organisation_quotes_create_create",
                "description": "Create a new quote",
                "summary": "Create quote",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Quotes"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/QuoteRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/QuoteRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/QuoteRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Quote"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/quotes/{quote_id}/": {
            "get": {
                "operationId": "organisation_quotes_retrieve",
                "description": "Retrieve a specific quote with full details",
                "summary": "Retrieve quote",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "quote_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Quotes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Quote"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/quotes/{quote_id}/update/": {
            "put": {
                "operationId": "organisation_quotes_update_update",
                "description": "Update an existing quote",
                "summary": "Update quote",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "quote_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Quotes"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/QuoteRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/QuoteRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/QuoteRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Quote"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_quotes_update_partial_update",
                "description": "Update an existing quote",
                "summary": "Update quote",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "quote_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Quotes"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedQuoteRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedQuoteRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedQuoteRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Quote"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/quotes/{quote_id}/action/": {
            "get": {
                "operationId": "organisation_quotes_action_retrieve",
                "description": "Perform an action on a quote using query parameter.\n    \n    **Available Actions:**\n    - `mark_as_draft` - Mark a quote as draft\n    - `mark_as_sent` - Mark a draft quote as sent to the client\n    - `mark_as_viewed` - Mark a quote as viewed by the client\n    - `mark_as_accepted` - Mark a quote as accepted by the client\n    - `mark_as_rejected` - Mark a quote as rejected\n    - `mark_as_expired` - Mark a quote as expired\n    - `duplicate` - Create a duplicate of the quote\n    - `convert_to_invoice` - Convert an accepted quote to an invoice (requires `invoice_number` and `due_date` parameters)\n    \n    **Examples:**\n    - `/quotes/{id}/action?action=mark_as_draft`\n    - `/quotes/{id}/action?action=mark_as_sent`\n    - `/quotes/{id}/action?action=mark_as_viewed`\n    - `/quotes/{id}/action?action=mark_as_accepted`\n    - `/quotes/{id}/action?action=mark_as_rejected`\n    - `/quotes/{id}/action?action=mark_as_expired`\n    - `/quotes/{id}/action?action=duplicate`\n    - `/quotes/{id}/action?action=convert_to_invoice&invoice_number=INV-001&due_date=2025-12-31`\n    ",
                "summary": "Perform quote action",
                "parameters": [
                    {
                        "in": "query",
                        "name": "action",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "convert_to_invoice",
                                "duplicate",
                                "mark_as_accepted",
                                "mark_as_draft",
                                "mark_as_expired",
                                "mark_as_rejected",
                                "mark_as_sent",
                                "mark_as_viewed"
                            ]
                        },
                        "description": "The action to perform on the quote",
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "due_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Payment due date in YYYY-MM-DD format (required when action=convert_to_invoice)"
                    },
                    {
                        "in": "query",
                        "name": "invoice_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Invoice date in YYYY-MM-DD format (optional, defaults to today)"
                    },
                    {
                        "in": "query",
                        "name": "invoice_number",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Invoice number (required when action=convert_to_invoice)"
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "quote_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Quotes"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Quote"
                                }
                            }
                        },
                        "description": ""
                    },
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Invoice"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action or missing required parameters"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/bills/": {
            "get": {
                "operationId": "organisation_bills_list",
                "description": "List all bills for an organization",
                "summary": "List bills",
                "parameters": [
                    {
                        "in": "query",
                        "name": "from_date",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "description": "Filter bills from this bill_date (YYYY-MM-DD)"
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "overdue",
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Filter overdue bills (true/false)"
                    },
                    {
                        "in": "query",
                        "name": "search",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Search bill_number, supplier_invoice_number, or bill title"
                    },
                    {
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "approved",
                                "cancelled",
                                "disputed",
                                "draft",
                                "paid",
                                "partially_paid",
                                "received"
                            ]
                        },
                        "description": "Filter by bill status"
                    },
                    {
                        "in": "query",
                        "name": "to_date",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "description": "Filter bills up to this bill_date (YYYY-MM-DD)"
                    },
                    {
                        "in": "query",
                        "name": "vendor_id",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter by vendor unique_id"
                    }
                ],
                "tags": [
                    "Bills"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BillList"
                                    }
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/bills/create/": {
            "post": {
                "operationId": "organisation_bills_create_create",
                "description": "Create a new bill",
                "summary": "Create bill",
                "parameters": [
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Bills"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BillRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/BillRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/BillRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Bill"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/bills/{bill_id}/": {
            "get": {
                "operationId": "organisation_bills_retrieve",
                "description": "Retrieve a specific bill with full details",
                "summary": "Retrieve bill",
                "parameters": [
                    {
                        "in": "path",
                        "name": "bill_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Bills"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Bill"
                                }
                            }
                        },
                        "description": ""
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/bills/{bill_id}/update/": {
            "put": {
                "operationId": "organisation_bills_update_update",
                "description": "Update an existing bill",
                "summary": "Update bill",
                "parameters": [
                    {
                        "in": "path",
                        "name": "bill_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Bills"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BillRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/BillRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/BillRequest"
                            }
                        }
                    },
                    "required": true
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Bill"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            },
            "patch": {
                "operationId": "organisation_bills_update_partial_update",
                "description": "Update an existing bill",
                "summary": "Update bill",
                "parameters": [
                    {
                        "in": "path",
                        "name": "bill_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    }
                ],
                "tags": [
                    "Bills"
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedBillRequest"
                            }
                        },
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedBillRequest"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchedBillRequest"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Bill"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        },
        "/api/v1.0/organisation/{org_id}/bills/{bill_id}/action/": {
            "get": {
                "operationId": "organisation_bills_action_retrieve",
                "description": "Perform an action on a bill using query parameter.\n    \n    **Available Actions:**\n    - `mark_received` - Mark a pending bill as received\n    - `approve` - Approve a received bill for payment\n    - `mark_paid` - Mark an approved bill as fully paid\n    - `mark_partially_paid` - Mark a bill as partially paid\n    - `mark_disputed` - Mark a bill as disputed\n    - `mark_cancelled` - Mark a bill as cancelled\n    - `record_payment` - Record a payment made for the bill (requires `amount` parameter)\n    \n    **Examples:**\n    - `/bills/{id}/action?action=mark_received`\n    - `/bills/{id}/action?action=approve`\n    - `/bills/{id}/action?action=mark_paid`\n    - `/bills/{id}/action?action=record_payment&amount=500.00`\n    ",
                "summary": "Perform bill action",
                "parameters": [
                    {
                        "in": "query",
                        "name": "action",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "approve",
                                "mark_cancelled",
                                "mark_disputed",
                                "mark_paid",
                                "mark_partially_paid",
                                "mark_received",
                                "record_payment"
                            ]
                        },
                        "description": "The action to perform on the bill",
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "amount",
                        "schema": {
                            "type": "number",
                            "format": "double"
                        },
                        "description": "Payment amount (required when action=record_payment)"
                    },
                    {
                        "in": "path",
                        "name": "bill_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "path",
                        "name": "org_id",
                        "schema": {
                            "type": "string"
                        },
                        "required": true
                    },
                    {
                        "in": "query",
                        "name": "payment_date",
                        "schema": {
                            "type": "string"
                        },
                        "description": "Payment date in YYYY-MM-DD format (optional, defaults to today)"
                    }
                ],
                "tags": [
                    "Bills"
                ],
                "security": [
                    {
                        "basicAuth": []
                    },
                    {
                        "cookieAuth": []
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Bill"
                                }
                            }
                        },
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request - Invalid action or invalid state transition"
                    },
                    "401": {
                        "description": "Unauthorized"
                    },
                    "403": {
                        "description": "Forbidden"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "AccountDetail": {
                "type": "object",
                "description": "Detailed version with transaction summary.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "account_code": {
                        "type": "string",
                        "maxLength": 20
                    },
                    "account_type": {
                        "enum": [
                            "asset",
                            "liability",
                            "equity",
                            "income",
                            "expense"
                        ],
                        "type": "string",
                        "description": "* `asset` - Asset\n* `liability` - Liability\n* `equity` - Equity\n* `income` - Income\n* `expense` - Expense",
                        "x-spec-enum-id": "25444165bec7bea9"
                    },
                    "account_type_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "account_category": {
                        "enum": [
                            "current_assets",
                            "fixed_assets",
                            "intangible_assets",
                            "current_liabilities",
                            "long_term_liabilities",
                            "owner_equity",
                            "retained_earnings",
                            "operating_income",
                            "other_income",
                            "cost_of_goods_sold",
                            "operating_expenses",
                            "administrative_expenses",
                            "financial_expenses",
                            "other_expenses"
                        ],
                        "type": "string",
                        "description": "* `current_assets` - Current Assets\n* `fixed_assets` - Fixed Assets\n* `intangible_assets` - Intangible Assets\n* `current_liabilities` - Current Liabilities\n* `long_term_liabilities` - Long-term Liabilities\n* `owner_equity` - Owner Equity\n* `retained_earnings` - Retained Earnings\n* `operating_income` - Operating Income\n* `other_income` - Other Income\n* `cost_of_goods_sold` - Cost of Goods Sold\n* `operating_expenses` - Operating Expenses\n* `administrative_expenses` - Administrative Expenses\n* `financial_expenses` - Financial Expenses\n* `other_expenses` - Other Expenses",
                        "x-spec-enum-id": "1fc2ce589e0c561c"
                    },
                    "account_category_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "parent_account": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AccountParent"
                            }
                        ],
                        "readOnly": true
                    },
                    "full_account_code": {
                        "type": "string",
                        "readOnly": true
                    },
                    "account_path": {
                        "type": "string",
                        "readOnly": true
                    },
                    "current_balance": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Current account balance (calculated from transactions)"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "is_system_account": {
                        "type": "boolean",
                        "description": "System accounts cannot be deleted"
                    },
                    "has_sub_accounts": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinancePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "sub_accounts_count": {
                        "type": "integer",
                        "readOnly": true
                    },
                    "transaction_count": {
                        "type": "integer",
                        "readOnly": true
                    }
                },
                "required": [
                    "account_category",
                    "account_category_display",
                    "account_code",
                    "account_path",
                    "account_type",
                    "account_type_display",
                    "created_by",
                    "current_balance",
                    "date_created",
                    "full_account_code",
                    "has_sub_accounts",
                    "last_updated",
                    "name",
                    "parent_account",
                    "sub_accounts_count",
                    "transaction_count"
                ]
            },
            "AccountList": {
                "type": "object",
                "description": "Lightweight version for list views.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string"
                    },
                    "account_code": {
                        "type": "string",
                        "maxLength": 20
                    },
                    "full_account_code": {
                        "type": "string",
                        "readOnly": true
                    },
                    "account_type": {
                        "enum": [
                            "asset",
                            "liability",
                            "equity",
                            "income",
                            "expense"
                        ],
                        "type": "string",
                        "description": "* `asset` - Asset\n* `liability` - Liability\n* `equity` - Equity\n* `income` - Income\n* `expense` - Expense",
                        "x-spec-enum-id": "25444165bec7bea9"
                    },
                    "account_type_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "account_category": {
                        "enum": [
                            "current_assets",
                            "fixed_assets",
                            "intangible_assets",
                            "current_liabilities",
                            "long_term_liabilities",
                            "owner_equity",
                            "retained_earnings",
                            "operating_income",
                            "other_income",
                            "cost_of_goods_sold",
                            "operating_expenses",
                            "administrative_expenses",
                            "financial_expenses",
                            "other_expenses"
                        ],
                        "type": "string",
                        "description": "* `current_assets` - Current Assets\n* `fixed_assets` - Fixed Assets\n* `intangible_assets` - Intangible Assets\n* `current_liabilities` - Current Liabilities\n* `long_term_liabilities` - Long-term Liabilities\n* `owner_equity` - Owner Equity\n* `retained_earnings` - Retained Earnings\n* `operating_income` - Operating Income\n* `other_income` - Other Income\n* `cost_of_goods_sold` - Cost of Goods Sold\n* `operating_expenses` - Operating Expenses\n* `administrative_expenses` - Administrative Expenses\n* `financial_expenses` - Financial Expenses\n* `other_expenses` - Other Expenses",
                        "x-spec-enum-id": "1fc2ce589e0c561c"
                    },
                    "account_category_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "current_balance": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Current account balance (calculated from transactions)"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "has_sub_accounts": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "account_category",
                    "account_category_display",
                    "account_code",
                    "account_type",
                    "account_type_display",
                    "current_balance",
                    "date_created",
                    "full_account_code",
                    "has_sub_accounts",
                    "name"
                ]
            },
            "AccountParent": {
                "type": "object",
                "description": "Minimal serializer for parent account references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "account_code": {
                        "type": "string",
                        "maxLength": 20
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "account_type": {
                        "enum": [
                            "asset",
                            "liability",
                            "equity",
                            "income",
                            "expense"
                        ],
                        "type": "string",
                        "description": "* `asset` - Asset\n* `liability` - Liability\n* `equity` - Equity\n* `income` - Income\n* `expense` - Expense",
                        "x-spec-enum-id": "25444165bec7bea9"
                    }
                },
                "required": [
                    "account_code",
                    "account_type",
                    "name"
                ]
            },
            "AccountParentRequest": {
                "type": "object",
                "description": "Minimal serializer for parent account references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "account_code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 20
                    },
                    "account_type": {
                        "enum": [
                            "asset",
                            "liability",
                            "equity",
                            "income",
                            "expense"
                        ],
                        "type": "string",
                        "description": "* `asset` - Asset\n* `liability` - Liability\n* `equity` - Equity\n* `income` - Income\n* `expense` - Expense",
                        "x-spec-enum-id": "25444165bec7bea9"
                    }
                },
                "required": [
                    "account_code",
                    "account_type"
                ]
            },
            "AccountRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Account model.\nHandles chart of accounts with multilingual support and hierarchy.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "account_code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 20
                    },
                    "account_type": {
                        "enum": [
                            "asset",
                            "liability",
                            "equity",
                            "income",
                            "expense"
                        ],
                        "type": "string",
                        "description": "* `asset` - Asset\n* `liability` - Liability\n* `equity` - Equity\n* `income` - Income\n* `expense` - Expense",
                        "x-spec-enum-id": "25444165bec7bea9"
                    },
                    "account_category": {
                        "enum": [
                            "current_assets",
                            "fixed_assets",
                            "intangible_assets",
                            "current_liabilities",
                            "long_term_liabilities",
                            "owner_equity",
                            "retained_earnings",
                            "operating_income",
                            "other_income",
                            "cost_of_goods_sold",
                            "operating_expenses",
                            "administrative_expenses",
                            "financial_expenses",
                            "other_expenses"
                        ],
                        "type": "string",
                        "description": "* `current_assets` - Current Assets\n* `fixed_assets` - Fixed Assets\n* `intangible_assets` - Intangible Assets\n* `current_liabilities` - Current Liabilities\n* `long_term_liabilities` - Long-term Liabilities\n* `owner_equity` - Owner Equity\n* `retained_earnings` - Retained Earnings\n* `operating_income` - Operating Income\n* `other_income` - Other Income\n* `cost_of_goods_sold` - Cost of Goods Sold\n* `operating_expenses` - Operating Expenses\n* `administrative_expenses` - Administrative Expenses\n* `financial_expenses` - Financial Expenses\n* `other_expenses` - Other Expenses",
                        "x-spec-enum-id": "1fc2ce589e0c561c"
                    },
                    "parent_account_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "is_system_account": {
                        "type": "boolean",
                        "description": "System accounts cannot be deleted"
                    }
                },
                "required": [
                    "account_category",
                    "account_code",
                    "account_type",
                    "name"
                ]
            },
            "Address": {
                "type": "object",
                "description": "Serializer for Address model with essential location fields.",
                "properties": {
                    "address_line_1": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "city": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "province_state": {
                        "type": "string",
                        "nullable": true,
                        "title": "Province/State",
                        "maxLength": 300
                    },
                    "postal_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "country_name": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "country_name"
                ]
            },
            "AddressRequest": {
                "type": "object",
                "description": "Serializer for Address model with essential location fields.",
                "properties": {
                    "address_line_1": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "city": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "province_state": {
                        "type": "string",
                        "nullable": true,
                        "title": "Province/State",
                        "maxLength": 300
                    },
                    "postal_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    }
                }
            },
            "AssetDetail": {
                "type": "object",
                "description": "Detailed serializer for single asset retrieval.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "description": {
                        "type": "string",
                        "readOnly": true
                    },
                    "asset_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "serial_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "asset_type": {
                        "enum": [
                            "ppe",
                            "equipment",
                            "furniture",
                            "vehicle",
                            "computer",
                            "software",
                            "building",
                            "land",
                            "intangible",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other",
                        "x-spec-enum-id": "2ce89150314107a5"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "brand": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "model": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "purchase_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Original purchase price"
                    },
                    "useful_life_years": {
                        "type": "integer",
                        "maximum": 100,
                        "minimum": 1,
                        "title": "Useful Life (Years)",
                        "description": "Expected useful life in years"
                    },
                    "purchase_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "warranty_expiry_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "disposal_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "disposed",
                            "sold",
                            "damaged",
                            "under_repair",
                            "stolen"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen",
                        "x-spec-enum-id": "4b25875d725a617a"
                    },
                    "condition": {
                        "enum": [
                            "excellent",
                            "good",
                            "fair",
                            "poor",
                            "damaged"
                        ],
                        "type": "string",
                        "description": "* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged",
                        "x-spec-enum-id": "4d39a675c08c1112"
                    },
                    "location": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "assigned_to": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AssetPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "image_url": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "receipt_document_url": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "supplier_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "purchase_order_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "invoice_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AssetPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "is_warranty_expired": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "years_since_purchase": {
                        "type": "integer",
                        "nullable": true,
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "assigned_to",
                    "created_by",
                    "description",
                    "image_url",
                    "is_warranty_expired",
                    "name",
                    "purchase_date",
                    "purchase_price",
                    "receipt_document_url",
                    "years_since_purchase"
                ]
            },
            "AssetList": {
                "type": "object",
                "description": "Lightweight serializer for asset lists.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "asset_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "serial_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "asset_type": {
                        "enum": [
                            "ppe",
                            "equipment",
                            "furniture",
                            "vehicle",
                            "computer",
                            "software",
                            "building",
                            "land",
                            "intangible",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other",
                        "x-spec-enum-id": "2ce89150314107a5"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "brand": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "model": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "purchase_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Original purchase price"
                    },
                    "purchase_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "disposed",
                            "sold",
                            "damaged",
                            "under_repair",
                            "stolen"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen",
                        "x-spec-enum-id": "4b25875d725a617a"
                    },
                    "condition": {
                        "enum": [
                            "excellent",
                            "good",
                            "fair",
                            "poor",
                            "damaged"
                        ],
                        "type": "string",
                        "description": "* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged",
                        "x-spec-enum-id": "4d39a675c08c1112"
                    },
                    "location": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "assigned_to": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AssetPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "image_url": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "is_warranty_expired": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "assigned_to",
                    "image_url",
                    "is_warranty_expired",
                    "name",
                    "purchase_date",
                    "purchase_price"
                ]
            },
            "AssetPersonMini": {
                "type": "object",
                "description": "Lightweight serializer for Person references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "full_name": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "full_name"
                ]
            },
            "AssetPersonMiniRequest": {
                "type": "object",
                "description": "Lightweight serializer for Person references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    }
                }
            },
            "AssetRequest": {
                "type": "object",
                "description": "Full serializer for Asset creation and updates.\nHandles translatable fields correctly.",
                "properties": {
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "asset_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "serial_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "asset_type": {
                        "enum": [
                            "ppe",
                            "equipment",
                            "furniture",
                            "vehicle",
                            "computer",
                            "software",
                            "building",
                            "land",
                            "intangible",
                            "other"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "2ce89150314107a5",
                        "description": "Asset type is required.\n\n* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "brand": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "model": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "purchase_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Purchase price is required and must be non-negative."
                    },
                    "useful_life_years": {
                        "type": "integer",
                        "maximum": 100,
                        "minimum": 1,
                        "title": "Useful Life (Years)",
                        "description": "Expected useful life in years"
                    },
                    "purchase_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Purchase date is required."
                    },
                    "warranty_expiry_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "disposal_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "disposed",
                            "sold",
                            "damaged",
                            "under_repair",
                            "stolen"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen",
                        "x-spec-enum-id": "4b25875d725a617a"
                    },
                    "condition": {
                        "enum": [
                            "excellent",
                            "good",
                            "fair",
                            "poor",
                            "damaged"
                        ],
                        "type": "string",
                        "description": "* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged",
                        "x-spec-enum-id": "4d39a675c08c1112"
                    },
                    "location": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "assigned_to_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1,
                        "description": "Unique ID of person to assign asset to"
                    },
                    "image": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "title": "Asset Image",
                        "description": "Asset image for identification"
                    },
                    "receipt_document": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "title": "Receipt/Invoice Document",
                        "description": "Upload receipt, invoice, or purchase document (PDF, DOC, DOCX, JPG, PNG)"
                    },
                    "supplier_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "purchase_order_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "invoice_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    }
                },
                "required": [
                    "asset_type",
                    "name",
                    "purchase_date",
                    "purchase_price"
                ]
            },
            "BankingInformation": {
                "type": "object",
                "description": "Serializer for BankingInformation with PII hygiene:\n- `account_number` is write-only\n- expose masked `account_number_last4` for reads",
                "properties": {
                    "bank_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "account_number_last4": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "branch_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "account_type": {
                        "enum": [
                            "checking",
                            "savings",
                            "business",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other",
                        "x-spec-enum-id": "8d7333f6a52cacfb",
                        "nullable": true
                    },
                    "routing_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "swift_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "account_type_display": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "account_number_last4",
                    "account_type_display",
                    "date_created",
                    "last_updated"
                ]
            },
            "BankingInformationRequest": {
                "type": "object",
                "description": "Serializer for BankingInformation with PII hygiene:\n- `account_number` is write-only\n- expose masked `account_number_last4` for reads",
                "properties": {
                    "bank_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "account_number": {
                        "type": "string",
                        "writeOnly": true
                    },
                    "branch_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "account_type": {
                        "enum": [
                            "checking",
                            "savings",
                            "business",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other",
                        "x-spec-enum-id": "8d7333f6a52cacfb",
                        "nullable": true
                    },
                    "routing_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "swift_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    }
                }
            },
            "Bill": {
                "type": "object",
                "description": "Comprehensive serializer for Bill model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "bill_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "supplier_invoice_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "received",
                            "approved",
                            "paid",
                            "partially_paid",
                            "overdue",
                            "disputed",
                            "cancelled"
                        ],
                        "type": "string",
                        "description": "* `received` - Received\n* `approved` - Approved for Payment\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `overdue` - Overdue\n* `disputed` - Disputed\n* `cancelled` - Cancelled",
                        "x-spec-enum-id": "9014604455f4adcc"
                    },
                    "status_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "vendor": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinanceExpenseVendorMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "bill_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "received_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "paid_date": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "subtotal": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "tax_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Tax Rate (%)"
                    },
                    "tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "remaining_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "payment_percentage": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "is_overdue": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "document": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "title": "Bill Document",
                        "description": "Scanned bill document (PDF, image)"
                    },
                    "document_url": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinancePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "bill_date",
                    "bill_number",
                    "created_by",
                    "date_created",
                    "document_url",
                    "due_date",
                    "is_overdue",
                    "last_updated",
                    "paid_date",
                    "payment_percentage",
                    "remaining_amount",
                    "status_display",
                    "subtotal",
                    "title",
                    "total_amount",
                    "vendor"
                ]
            },
            "BillList": {
                "type": "object",
                "description": "Lightweight version for list views.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "bill_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "supplier_invoice_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "received",
                            "approved",
                            "paid",
                            "partially_paid",
                            "overdue",
                            "disputed",
                            "cancelled"
                        ],
                        "type": "string",
                        "description": "* `received` - Received\n* `approved` - Approved for Payment\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `overdue` - Overdue\n* `disputed` - Disputed\n* `cancelled` - Cancelled",
                        "x-spec-enum-id": "9014604455f4adcc"
                    },
                    "status_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "vendor": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinanceExpenseVendorMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "bill_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "remaining_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "is_overdue": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "bill_date",
                    "bill_number",
                    "date_created",
                    "due_date",
                    "is_overdue",
                    "remaining_amount",
                    "status_display",
                    "title",
                    "total_amount",
                    "vendor"
                ]
            },
            "BillRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Bill model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "bill_number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                    },
                    "supplier_invoice_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "received",
                            "approved",
                            "paid",
                            "partially_paid",
                            "overdue",
                            "disputed",
                            "cancelled"
                        ],
                        "type": "string",
                        "description": "* `received` - Received\n* `approved` - Approved for Payment\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `overdue` - Overdue\n* `disputed` - Disputed\n* `cancelled` - Cancelled",
                        "x-spec-enum-id": "9014604455f4adcc"
                    },
                    "vendor_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "bill_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "received_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "subtotal": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "tax_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Tax Rate (%)"
                    },
                    "tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "document": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "title": "Bill Document",
                        "description": "Scanned bill document (PDF, image)"
                    }
                },
                "required": [
                    "bill_date",
                    "bill_number",
                    "due_date",
                    "subtotal",
                    "title",
                    "total_amount"
                ]
            },
            "Client": {
                "type": "object",
                "description": "Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "entity_type": {
                        "enum": [
                            "individual",
                            "company",
                            "non_profit",
                            "government",
                            "partnership",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other",
                        "x-spec-enum-id": "e63a18a548d49954"
                    },
                    "entity_type_display": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "lifecycle_stage": {
                        "enum": [
                            "prospect",
                            "active_client",
                            "matured_client",
                            "inactive",
                            "dormant",
                            "lost_opportunity"
                        ],
                        "type": "string",
                        "description": "* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity",
                        "x-spec-enum-id": "e11380d2c2f80e5d",
                        "title": "Client Lifecycle Stage"
                    },
                    "lifecycle_stage_display": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "industry": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "industry_display": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "company_size": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "annual_revenue": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Annual revenue in USD"
                    },
                    "default_currency": {
                        "type": "string",
                        "description": "Default currency code (ISO 4217) for this entity's transactions",
                        "maxLength": 3
                    },
                    "first_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "next_follow_up_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "assigned_to": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "account_owner": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientAddress"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientBankingInformation"
                            }
                        ],
                        "nullable": true
                    },
                    "days_since_last_contact": {
                        "type": "integer",
                        "nullable": true,
                        "readOnly": true
                    },
                    "is_follow_up_overdue": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "primary_contact": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientContactMini"
                            }
                        ],
                        "nullable": true,
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "account_owner",
                    "assigned_to",
                    "created_by",
                    "date_created",
                    "days_since_last_contact",
                    "entity_type_display",
                    "industry_display",
                    "is_follow_up_overdue",
                    "last_updated",
                    "lifecycle_stage_display",
                    "name",
                    "primary_contact"
                ]
            },
            "ClientAddress": {
                "type": "object",
                "description": "Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.",
                "properties": {
                    "address_line_1": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "address_line_2": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "city": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "province_state": {
                        "type": "string",
                        "nullable": true,
                        "title": "Province/State",
                        "maxLength": 300
                    },
                    "postal_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "country": {
                        "type": "string",
                        "nullable": true
                    },
                    "phone": {
                        "type": "string",
                        "nullable": true,
                        "title": "Phone Number",
                        "pattern": "^\\+?1?\\d{9,15}$",
                        "maxLength": 17
                    }
                }
            },
            "ClientAddressRequest": {
                "type": "object",
                "description": "Serializer for Address model.\nCountry field is explicitly defined as CharField to handle django-countries CountryField.",
                "properties": {
                    "address_line_1": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "address_line_2": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "city": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "province_state": {
                        "type": "string",
                        "nullable": true,
                        "title": "Province/State",
                        "maxLength": 300
                    },
                    "postal_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "country": {
                        "type": "string",
                        "nullable": true
                    },
                    "phone": {
                        "type": "string",
                        "nullable": true,
                        "title": "Phone Number",
                        "pattern": "^\\+?1?\\d{9,15}$",
                        "maxLength": 17
                    }
                }
            },
            "ClientBankingInformation": {
                "type": "object",
                "description": "Serializer for BankingInformation model with all banking fields.",
                "properties": {
                    "bank_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "account_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "branch_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "account_type": {
                        "enum": [
                            "checking",
                            "savings",
                            "business",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other",
                        "x-spec-enum-id": "8d7333f6a52cacfb",
                        "nullable": true
                    },
                    "routing_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "swift_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    }
                }
            },
            "ClientBankingInformationRequest": {
                "type": "object",
                "description": "Serializer for BankingInformation model with all banking fields.",
                "properties": {
                    "bank_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "account_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "branch_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "account_type": {
                        "enum": [
                            "checking",
                            "savings",
                            "business",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `checking` - Checking\n* `savings` - Savings\n* `business` - Business\n* `other` - Other",
                        "x-spec-enum-id": "8d7333f6a52cacfb",
                        "nullable": true
                    },
                    "routing_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "swift_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    }
                }
            },
            "ClientContactMini": {
                "type": "object",
                "description": "Lightweight serializer for Contact model.\nUsed for nested contact references in other serializers.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "first_name": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "last_name": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true,
                        "maxLength": 254
                    },
                    "phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 17
                    },
                    "job_title": {
                        "type": "string",
                        "readOnly": true,
                        "nullable": true
                    },
                    "primary_contact": {
                        "type": "boolean",
                        "description": "Indicates if this is the primary contact for the entity"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "entity_type": {
                        "enum": [
                            "client",
                            "vendor",
                            "lead"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "e61cac37134eb550",
                        "description": "Type of entity this contact belongs to\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"
                    },
                    "entity_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "ID of the entity this contact belongs to (optional for potential clients/vendors)",
                        "maxLength": 100
                    }
                },
                "required": [
                    "entity_type",
                    "first_name",
                    "job_title",
                    "last_name",
                    "name"
                ]
            },
            "ClientPersonMini": {
                "type": "object",
                "description": "Lightweight serializer for Person model.\nUsed for nested person references in other serializers.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "full_name": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "full_name"
                ]
            },
            "ClientPersonMiniRequest": {
                "type": "object",
                "description": "Lightweight serializer for Person model.\nUsed for nested person references in other serializers.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    }
                }
            },
            "ClientRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "entity_type": {
                        "enum": [
                            "individual",
                            "company",
                            "non_profit",
                            "government",
                            "partnership",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other",
                        "x-spec-enum-id": "e63a18a548d49954"
                    },
                    "lifecycle_stage": {
                        "enum": [
                            "prospect",
                            "active_client",
                            "matured_client",
                            "inactive",
                            "dormant",
                            "lost_opportunity"
                        ],
                        "type": "string",
                        "description": "* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity",
                        "x-spec-enum-id": "e11380d2c2f80e5d",
                        "title": "Client Lifecycle Stage"
                    },
                    "industry": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "company_size": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "annual_revenue": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Annual revenue in USD"
                    },
                    "default_currency": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Default currency code (ISO 4217) for this entity's transactions",
                        "maxLength": 3
                    },
                    "first_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "next_follow_up_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientAddressRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientBankingInformationRequest"
                            }
                        ],
                        "nullable": true
                    }
                },
                "required": [
                    "name"
                ]
            },
            "Contact": {
                "type": "object",
                "description": "Comprehensive serializer for Contact model.\nHandles contact creation, updates, and group assignment.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "translations": {
                        "type": "string"
                    },
                    "organisation_name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "created_by_name": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "contact_group": {
                        "type": "string",
                        "nullable": true,
                        "description": "Contact group unique_id (optional - can be assigned later)"
                    },
                    "contact_group_id": {
                        "type": "string",
                        "readOnly": true
                    },
                    "contact_group_name": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "entity_type": {
                        "enum": [
                            "client",
                            "vendor",
                            "lead"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "e61cac37134eb550",
                        "description": "Type of entity (client, vendor, lead)\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"
                    },
                    "entity_type_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "entity_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "ID of the entity this contact belongs to (optional for potential clients/vendors)",
                        "maxLength": 100
                    },
                    "first_name": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "last_name": {
                        "type": "string",
                        "maxLength": 150
                    },
                    "full_name": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true,
                        "maxLength": 254
                    },
                    "phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 17
                    },
                    "mobile": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 17
                    },
                    "linkedin_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "description": "LinkedIn profile URL",
                        "maxLength": 200
                    },
                    "job_title": {
                        "type": "string",
                        "nullable": true
                    },
                    "department": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "primary_contact": {
                        "type": "boolean",
                        "description": "Indicates if this is the primary contact for the entity"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "contact_group_id",
                    "contact_group_name",
                    "created_by_name",
                    "entity_type",
                    "entity_type_display",
                    "first_name",
                    "full_name",
                    "last_name",
                    "organisation_name",
                    "translations"
                ]
            },
            "ContactGroup": {
                "type": "object",
                "description": "Serializer for ContactGroup model supporting both creation and listing.\nHandles multilingual fields through parler TranslatableModelSerializer.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "maxLength": 200
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "translations": {
                        "type": "string"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "created_by_name": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "created_by_name",
                    "name",
                    "translations"
                ]
            },
            "ContactGroupDetail": {
                "type": "object",
                "description": "Serializer for ContactGroup model with minimal nested information for performance.\nHandles multilingual fields through parler TranslatableModelSerializer.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "translations": {
                        "type": "string"
                    },
                    "organisation_name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "created_by_name": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "contacts_count": {
                        "type": "integer",
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "contacts_count",
                    "created_by_name",
                    "organisation_name",
                    "translations"
                ]
            },
            "ContactGroupRequest": {
                "type": "object",
                "description": "Serializer for ContactGroup model supporting both creation and listing.\nHandles multilingual fields through parler TranslatableModelSerializer.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "translations": {
                        "type": "string"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "name",
                    "translations"
                ]
            },
            "ContactRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Contact model.\nHandles contact creation, updates, and group assignment.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "translations": {
                        "type": "string"
                    },
                    "contact_group": {
                        "type": "string",
                        "nullable": true,
                        "description": "Contact group unique_id (optional - can be assigned later)"
                    },
                    "entity_type": {
                        "enum": [
                            "client",
                            "vendor",
                            "lead"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "e61cac37134eb550",
                        "description": "Type of entity (client, vendor, lead)\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"
                    },
                    "entity_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "ID of the entity this contact belongs to (optional for potential clients/vendors)",
                        "maxLength": 100
                    },
                    "first_name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 150
                    },
                    "last_name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 150
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true,
                        "maxLength": 254
                    },
                    "phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 17
                    },
                    "mobile": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 17
                    },
                    "linkedin_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "description": "LinkedIn profile URL",
                        "maxLength": 200
                    },
                    "job_title": {
                        "type": "string",
                        "nullable": true
                    },
                    "department": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "primary_contact": {
                        "type": "boolean",
                        "description": "Indicates if this is the primary contact for the entity"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "entity_type",
                    "first_name",
                    "last_name",
                    "translations"
                ]
            },
            "EmployeeInformation": {
                "type": "object",
                "description": "Serializer for EmployeeInformation with complete employee data.",
                "properties": {
                    "id_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "employee_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "tax_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "phone_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "birthday": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "linkedin_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "title": "LinkedIn Profile",
                        "maxLength": 300
                    },
                    "emergency_contact": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "emergency_phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "medical_aid_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "medical_aid_provider": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "medical_aid_plan": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "medical_conditions": {
                        "type": "string",
                        "nullable": true
                    },
                    "allergies": {
                        "type": "string",
                        "nullable": true
                    },
                    "medications": {
                        "type": "string",
                        "nullable": true
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "end_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "is_active_employee": {
                        "type": "boolean"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    }
                },
                "required": [
                    "date_created",
                    "last_updated"
                ]
            },
            "EmployeeInformationRequest": {
                "type": "object",
                "description": "Serializer for EmployeeInformation with complete employee data.",
                "properties": {
                    "id_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "employee_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "tax_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "phone_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "birthday": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "linkedin_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "title": "LinkedIn Profile",
                        "maxLength": 300
                    },
                    "emergency_contact": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "emergency_phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "medical_aid_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "medical_aid_provider": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "medical_aid_plan": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "medical_conditions": {
                        "type": "string",
                        "nullable": true
                    },
                    "allergies": {
                        "type": "string",
                        "nullable": true
                    },
                    "medications": {
                        "type": "string",
                        "nullable": true
                    },
                    "start_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "end_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "is_active_employee": {
                        "type": "boolean"
                    }
                }
            },
            "Expense": {
                "type": "object",
                "description": "Comprehensive serializer for Expense model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "expense_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "account": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AccountParent"
                            }
                        ],
                        "readOnly": true
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "submitted",
                            "approved",
                            "paid",
                            "rejected",
                            "reimbursed"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `submitted` - Submitted for Approval\n* `approved` - Approved\n* `paid` - Paid\n* `rejected` - Rejected\n* `reimbursed` - Reimbursed",
                        "x-spec-enum-id": "253a68c32657b8eb"
                    },
                    "status_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "expense_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "submitted_date": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "approved_date": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "paid_date": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "vendor": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinanceExpenseVendorMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "employee": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinancePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "approved_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinancePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "receipt": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "description": "Receipt or supporting document"
                    },
                    "receipt_url": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "vat_processed": {
                        "type": "boolean",
                        "description": "Whether VAT has been processed for reconciliation"
                    },
                    "vat_processed_date": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinancePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "account",
                    "amount",
                    "approved_by",
                    "approved_date",
                    "created_by",
                    "date_created",
                    "employee",
                    "expense_date",
                    "expense_number",
                    "last_updated",
                    "paid_date",
                    "receipt_url",
                    "status_display",
                    "submitted_date",
                    "title",
                    "total_amount",
                    "vat_processed_date",
                    "vendor"
                ]
            },
            "ExpenseList": {
                "type": "object",
                "description": "Lightweight version for list views.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "expense_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "submitted",
                            "approved",
                            "paid",
                            "rejected",
                            "reimbursed"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `submitted` - Submitted for Approval\n* `approved` - Approved\n* `paid` - Paid\n* `rejected` - Rejected\n* `reimbursed` - Reimbursed",
                        "x-spec-enum-id": "253a68c32657b8eb"
                    },
                    "status_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "expense_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "employee": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinancePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "vendor": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinanceExpenseVendorMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "amount",
                    "date_created",
                    "employee",
                    "expense_date",
                    "expense_number",
                    "status_display",
                    "title",
                    "total_amount",
                    "vendor"
                ]
            },
            "ExpenseRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Expense model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "expense_number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                    },
                    "account_id": {
                        "type": "string",
                        "writeOnly": true,
                        "minLength": 1
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "submitted",
                            "approved",
                            "paid",
                            "rejected",
                            "reimbursed"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `submitted` - Submitted for Approval\n* `approved` - Approved\n* `paid` - Paid\n* `rejected` - Rejected\n* `reimbursed` - Reimbursed",
                        "x-spec-enum-id": "253a68c32657b8eb"
                    },
                    "expense_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "vendor_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "employee_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "receipt": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "description": "Receipt or supporting document"
                    },
                    "vat_processed": {
                        "type": "boolean",
                        "description": "Whether VAT has been processed for reconciliation"
                    }
                },
                "required": [
                    "account_id",
                    "amount",
                    "expense_date",
                    "expense_number",
                    "title"
                ]
            },
            "FinanceClientMini": {
                "type": "object",
                "description": "Lightweight serializer for Client model.\nUsed for nested client references in invoices and quotes.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "entity_type": {
                        "enum": [
                            "individual",
                            "company",
                            "non_profit",
                            "government",
                            "partnership",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other",
                        "x-spec-enum-id": "e63a18a548d49954"
                    }
                },
                "required": [
                    "name"
                ]
            },
            "FinanceClientMiniRequest": {
                "type": "object",
                "description": "Lightweight serializer for Client model.\nUsed for nested client references in invoices and quotes.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "entity_type": {
                        "enum": [
                            "individual",
                            "company",
                            "non_profit",
                            "government",
                            "partnership",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other",
                        "x-spec-enum-id": "e63a18a548d49954"
                    }
                }
            },
            "FinanceExpenseVendorMini": {
                "type": "object",
                "description": "Lightweight serializer for Vendor references.",
                "properties": {
                    "unique_id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "name",
                    "unique_id"
                ]
            },
            "FinanceExpenseVendorMiniRequest": {
                "type": "object",
                "description": "Lightweight serializer for Vendor references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "minLength": 1
                    }
                },
                "required": [
                    "unique_id"
                ]
            },
            "FinancePersonMini": {
                "type": "object",
                "description": "Lightweight serializer for Person model.\nUsed for nested person references in financial documents.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "full_name": {
                        "type": "string",
                        "readOnly": true
                    }
                },
                "required": [
                    "full_name"
                ]
            },
            "FinancePersonMiniRequest": {
                "type": "object",
                "description": "Lightweight serializer for Person model.\nUsed for nested person references in financial documents.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    }
                }
            },
            "Invoice": {
                "type": "object",
                "description": "Comprehensive serializer for Invoice model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "invoice_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "sent",
                            "viewed",
                            "paid",
                            "partially_paid",
                            "overdue",
                            "cancelled",
                            "refunded"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `sent` - Sent\n* `viewed` - Viewed by Client\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `overdue` - Overdue\n* `cancelled` - Cancelled\n* `refunded` - Refunded",
                        "x-spec-enum-id": "8e85d2eb801a372b"
                    },
                    "status_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "invoice_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "subtotal": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Calculated from line items"
                    },
                    "total_tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Total VAT/tax from all line items"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Subtotal + Total Tax Amount"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "remaining_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "is_overdue": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "currency": {
                        "type": "string",
                        "readOnly": true
                    },
                    "client": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinanceClientMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InvoiceItem"
                        }
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinancePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "client",
                    "created_by",
                    "currency",
                    "date_created",
                    "due_date",
                    "invoice_number",
                    "is_overdue",
                    "last_updated",
                    "remaining_amount",
                    "status_display",
                    "subtotal",
                    "title",
                    "total_amount",
                    "total_tax_amount"
                ]
            },
            "InvoiceItem": {
                "type": "object",
                "description": "Serializer for invoice line items.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "item_name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "quantity": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "unit_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "discount_percentage": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Discount %"
                    },
                    "vat_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "VAT Rate (%)",
                        "description": "VAT/tax rate percentage for this line item"
                    },
                    "currency": {
                        "type": "string",
                        "description": "Currency code (ISO 4217) for this line item",
                        "maxLength": 3
                    },
                    "line_subtotal": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "line_vat_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "line_total": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    }
                },
                "required": [
                    "item_name",
                    "line_subtotal",
                    "line_total",
                    "line_vat_amount",
                    "quantity",
                    "unit_price"
                ]
            },
            "InvoiceItemRequest": {
                "type": "object",
                "description": "Serializer for invoice line items.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "product_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "service_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "quantity": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "unit_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "discount_percentage": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Discount %"
                    },
                    "vat_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "VAT Rate (%)",
                        "description": "VAT/tax rate percentage for this line item"
                    },
                    "currency": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Currency code (ISO 4217) for this line item",
                        "maxLength": 3
                    }
                },
                "required": [
                    "quantity",
                    "unit_price"
                ]
            },
            "InvoiceList": {
                "type": "object",
                "description": "Lightweight version for list views.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "invoice_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "sent",
                            "viewed",
                            "paid",
                            "partially_paid",
                            "overdue",
                            "cancelled",
                            "refunded"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `sent` - Sent\n* `viewed` - Viewed by Client\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `overdue` - Overdue\n* `cancelled` - Cancelled\n* `refunded` - Refunded",
                        "x-spec-enum-id": "8e85d2eb801a372b"
                    },
                    "status_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "invoice_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Subtotal + Total Tax Amount"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "remaining_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "is_overdue": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "currency": {
                        "type": "string",
                        "readOnly": true
                    },
                    "client": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinanceClientMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "client",
                    "currency",
                    "date_created",
                    "due_date",
                    "invoice_number",
                    "is_overdue",
                    "remaining_amount",
                    "status_display",
                    "title",
                    "total_amount"
                ]
            },
            "InvoiceRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Invoice model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "invoice_number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "sent",
                            "viewed",
                            "paid",
                            "partially_paid",
                            "overdue",
                            "cancelled",
                            "refunded"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `sent` - Sent\n* `viewed` - Viewed by Client\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `overdue` - Overdue\n* `cancelled` - Cancelled\n* `refunded` - Refunded",
                        "x-spec-enum-id": "8e85d2eb801a372b"
                    },
                    "invoice_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "client_id": {
                        "type": "string",
                        "writeOnly": true,
                        "minLength": 1,
                        "description": "Client unique_id (required)"
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InvoiceItemRequest"
                        }
                    }
                },
                "required": [
                    "client_id",
                    "due_date",
                    "invoice_number",
                    "title"
                ]
            },
            "Lead": {
                "type": "object",
                "description": "Comprehensive serializer for Lead model.\nHandles multilingual fields, sales stage relationships, and computed metrics like weighted value.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "qualification_notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "priority": {
                        "enum": [
                            "low",
                            "medium",
                            "high",
                            "critical"
                        ],
                        "type": "string",
                        "description": "* `low` - Low\n* `medium` - Medium\n* `high` - High\n* `critical` - Critical",
                        "x-spec-enum-id": "e88e28221543c897"
                    },
                    "lead_source": {
                        "enum": [
                            "website",
                            "social_media",
                            "email_marketing",
                            "referral",
                            "cold_calling",
                            "trade_show",
                            "advertising",
                            "content_marketing",
                            "seo",
                            "ppc",
                            "partner",
                            "other"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "39b6f2b333a73ce3",
                        "description": "Select one of the predefined lead sources.\n\n* `website` - Website\n* `social_media` - Social Media\n* `email_marketing` - Email Marketing\n* `referral` - Referral\n* `cold_calling` - Cold Calling\n* `trade_show` - Trade Show\n* `advertising` - Advertising\n* `content_marketing` - Content Marketing\n* `seo` - SEO\n* `ppc` - Pay-per-Click\n* `partner` - Partner\n* `other` - Other"
                    },
                    "estimated_value": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,16}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "win_probability": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "weighted_value": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,16}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "readOnly": true
                    },
                    "sales_stage": {
                        "type": "string",
                        "nullable": true,
                        "description": "Unique ID of an existing sales stage."
                    },
                    "client": {
                        "type": "string",
                        "nullable": true,
                        "description": "Unique ID of an existing client."
                    },
                    "expected_close_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "follow_up_date": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true,
                        "title": "Next Follow Up Date"
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "assigned_to": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "is_closed": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    }
                },
                "required": [
                    "assigned_to",
                    "created_by",
                    "date_created",
                    "is_closed",
                    "last_updated",
                    "lead_source",
                    "sales_stage",
                    "title",
                    "weighted_value"
                ]
            },
            "LeadRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Lead model.\nHandles multilingual fields, sales stage relationships, and computed metrics like weighted value.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "qualification_notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "priority": {
                        "enum": [
                            "low",
                            "medium",
                            "high",
                            "critical"
                        ],
                        "type": "string",
                        "description": "* `low` - Low\n* `medium` - Medium\n* `high` - High\n* `critical` - Critical",
                        "x-spec-enum-id": "e88e28221543c897"
                    },
                    "lead_source": {
                        "enum": [
                            "website",
                            "social_media",
                            "email_marketing",
                            "referral",
                            "cold_calling",
                            "trade_show",
                            "advertising",
                            "content_marketing",
                            "seo",
                            "ppc",
                            "partner",
                            "other"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "39b6f2b333a73ce3",
                        "description": "Select one of the predefined lead sources.\n\n* `website` - Website\n* `social_media` - Social Media\n* `email_marketing` - Email Marketing\n* `referral` - Referral\n* `cold_calling` - Cold Calling\n* `trade_show` - Trade Show\n* `advertising` - Advertising\n* `content_marketing` - Content Marketing\n* `seo` - SEO\n* `ppc` - Pay-per-Click\n* `partner` - Partner\n* `other` - Other"
                    },
                    "estimated_value": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,16}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "win_probability": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "sales_stage": {
                        "type": "string",
                        "nullable": true,
                        "description": "Unique ID of an existing sales stage."
                    },
                    "client": {
                        "type": "string",
                        "nullable": true,
                        "description": "Unique ID of an existing client."
                    },
                    "expected_close_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "follow_up_date": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true,
                        "title": "Next Follow Up Date"
                    }
                },
                "required": [
                    "lead_source",
                    "sales_stage",
                    "title"
                ]
            },
            "LiabilityDetail": {
                "type": "object",
                "description": "Detailed serializer for single liability retrieval.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "description": {
                        "type": "string",
                        "readOnly": true
                    },
                    "liability_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "reference_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "liability_type": {
                        "enum": [
                            "accounts_payable",
                            "notes_payable",
                            "loans_payable",
                            "mortgage_payable",
                            "bonds_payable",
                            "accrued_expenses",
                            "deferred_revenue",
                            "tax_payable",
                            "salary_payable",
                            "interest_payable",
                            "rent_payable",
                            "utilities_payable",
                            "lease_obligations",
                            "warranty_obligations",
                            "legal_obligations",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `accounts_payable` - Accounts Payable\n* `notes_payable` - Notes Payable\n* `loans_payable` - Loans Payable\n* `mortgage_payable` - Mortgage Payable\n* `bonds_payable` - Bonds Payable\n* `accrued_expenses` - Accrued Expenses\n* `deferred_revenue` - Deferred Revenue\n* `tax_payable` - Tax Payable\n* `salary_payable` - Salary/Wages Payable\n* `interest_payable` - Interest Payable\n* `rent_payable` - Rent Payable\n* `utilities_payable` - Utilities Payable\n* `lease_obligations` - Lease Obligations\n* `warranty_obligations` - Warranty Obligations\n* `legal_obligations` - Legal Obligations\n* `other` - Other",
                        "x-spec-enum-id": "b359906e5a9a006f"
                    },
                    "classification": {
                        "enum": [
                            "current",
                            "non_current",
                            "contingent"
                        ],
                        "type": "string",
                        "description": "* `current` - Current Liability\n* `non_current` - Non-Current Liability\n* `contingent` - Contingent Liability",
                        "x-spec-enum-id": "2b26fca2211e25d6"
                    },
                    "original_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Original liability amount"
                    },
                    "current_balance": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Current outstanding balance"
                    },
                    "remaining_balance": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Total amount paid so far"
                    },
                    "interest_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Interest Rate (%)",
                        "description": "Annual interest rate percentage"
                    },
                    "liability_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Date when liability was incurred"
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "payment_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "maturity_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "pending",
                            "overdue",
                            "paid",
                            "partially_paid",
                            "disputed",
                            "cancelled",
                            "deferred"
                        ],
                        "type": "string",
                        "description": "* `pending` - Pending\n* `overdue` - Overdue\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `disputed` - Disputed\n* `cancelled` - Cancelled\n* `deferred` - Deferred",
                        "x-spec-enum-id": "0c04b4d59ccef33b"
                    },
                    "priority": {
                        "enum": [
                            "low",
                            "medium",
                            "high",
                            "critical"
                        ],
                        "type": "string",
                        "description": "* `low` - Low\n* `medium` - Medium\n* `high` - High\n* `critical` - Critical",
                        "x-spec-enum-id": "e88e28221543c897"
                    },
                    "creditor_name": {
                        "type": "string",
                        "nullable": true,
                        "title": "Creditor/Vendor Name",
                        "maxLength": 300
                    },
                    "creditor_contact": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "creditor_email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true,
                        "maxLength": 254
                    },
                    "creditor_phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "payment_terms": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "late_fee_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Late Fee Rate (%)",
                        "description": "Late payment fee percentage"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "department": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "project_reference": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "supporting_document_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "readOnly": true
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/LiabilityPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "is_overdue": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "days_until_due": {
                        "type": "integer",
                        "nullable": true,
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "created_by",
                    "current_balance",
                    "days_until_due",
                    "description",
                    "is_overdue",
                    "liability_date",
                    "name",
                    "original_amount",
                    "remaining_balance",
                    "supporting_document_url"
                ]
            },
            "LiabilityList": {
                "type": "object",
                "description": "Lightweight serializer for liability lists.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "liability_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "reference_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "liability_type": {
                        "enum": [
                            "accounts_payable",
                            "notes_payable",
                            "loans_payable",
                            "mortgage_payable",
                            "bonds_payable",
                            "accrued_expenses",
                            "deferred_revenue",
                            "tax_payable",
                            "salary_payable",
                            "interest_payable",
                            "rent_payable",
                            "utilities_payable",
                            "lease_obligations",
                            "warranty_obligations",
                            "legal_obligations",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `accounts_payable` - Accounts Payable\n* `notes_payable` - Notes Payable\n* `loans_payable` - Loans Payable\n* `mortgage_payable` - Mortgage Payable\n* `bonds_payable` - Bonds Payable\n* `accrued_expenses` - Accrued Expenses\n* `deferred_revenue` - Deferred Revenue\n* `tax_payable` - Tax Payable\n* `salary_payable` - Salary/Wages Payable\n* `interest_payable` - Interest Payable\n* `rent_payable` - Rent Payable\n* `utilities_payable` - Utilities Payable\n* `lease_obligations` - Lease Obligations\n* `warranty_obligations` - Warranty Obligations\n* `legal_obligations` - Legal Obligations\n* `other` - Other",
                        "x-spec-enum-id": "b359906e5a9a006f"
                    },
                    "classification": {
                        "enum": [
                            "current",
                            "non_current",
                            "contingent"
                        ],
                        "type": "string",
                        "description": "* `current` - Current Liability\n* `non_current` - Non-Current Liability\n* `contingent` - Contingent Liability",
                        "x-spec-enum-id": "2b26fca2211e25d6"
                    },
                    "original_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Original liability amount"
                    },
                    "current_balance": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Current outstanding balance"
                    },
                    "remaining_balance": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Total amount paid so far"
                    },
                    "liability_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Date when liability was incurred"
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "pending",
                            "overdue",
                            "paid",
                            "partially_paid",
                            "disputed",
                            "cancelled",
                            "deferred"
                        ],
                        "type": "string",
                        "description": "* `pending` - Pending\n* `overdue` - Overdue\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `disputed` - Disputed\n* `cancelled` - Cancelled\n* `deferred` - Deferred",
                        "x-spec-enum-id": "0c04b4d59ccef33b"
                    },
                    "priority": {
                        "enum": [
                            "low",
                            "medium",
                            "high",
                            "critical"
                        ],
                        "type": "string",
                        "description": "* `low` - Low\n* `medium` - Medium\n* `high` - High\n* `critical` - Critical",
                        "x-spec-enum-id": "e88e28221543c897"
                    },
                    "creditor_name": {
                        "type": "string",
                        "nullable": true,
                        "title": "Creditor/Vendor Name",
                        "maxLength": 300
                    },
                    "is_overdue": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "current_balance",
                    "is_overdue",
                    "liability_date",
                    "name",
                    "original_amount",
                    "remaining_balance"
                ]
            },
            "LiabilityPersonMini": {
                "type": "object",
                "description": "Lightweight serializer for Person references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "full_name": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    }
                },
                "required": [
                    "full_name"
                ]
            },
            "LiabilityPersonMiniRequest": {
                "type": "object",
                "description": "Lightweight serializer for Person references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    }
                }
            },
            "LiabilityRequest": {
                "type": "object",
                "description": "Full serializer for Liability creation and updates.\nHandles translatable fields correctly.",
                "properties": {
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "liability_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "reference_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "liability_type": {
                        "enum": [
                            "accounts_payable",
                            "notes_payable",
                            "loans_payable",
                            "mortgage_payable",
                            "bonds_payable",
                            "accrued_expenses",
                            "deferred_revenue",
                            "tax_payable",
                            "salary_payable",
                            "interest_payable",
                            "rent_payable",
                            "utilities_payable",
                            "lease_obligations",
                            "warranty_obligations",
                            "legal_obligations",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `accounts_payable` - Accounts Payable\n* `notes_payable` - Notes Payable\n* `loans_payable` - Loans Payable\n* `mortgage_payable` - Mortgage Payable\n* `bonds_payable` - Bonds Payable\n* `accrued_expenses` - Accrued Expenses\n* `deferred_revenue` - Deferred Revenue\n* `tax_payable` - Tax Payable\n* `salary_payable` - Salary/Wages Payable\n* `interest_payable` - Interest Payable\n* `rent_payable` - Rent Payable\n* `utilities_payable` - Utilities Payable\n* `lease_obligations` - Lease Obligations\n* `warranty_obligations` - Warranty Obligations\n* `legal_obligations` - Legal Obligations\n* `other` - Other",
                        "x-spec-enum-id": "b359906e5a9a006f"
                    },
                    "classification": {
                        "enum": [
                            "current",
                            "non_current",
                            "contingent"
                        ],
                        "type": "string",
                        "description": "* `current` - Current Liability\n* `non_current` - Non-Current Liability\n* `contingent` - Contingent Liability",
                        "x-spec-enum-id": "2b26fca2211e25d6"
                    },
                    "original_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Original amount is required and must be non-negative."
                    },
                    "current_balance": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Current outstanding balance"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Total amount paid so far"
                    },
                    "interest_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Interest Rate (%)",
                        "description": "Annual interest rate percentage"
                    },
                    "liability_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Liability date is required."
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "payment_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "maturity_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "pending",
                            "overdue",
                            "paid",
                            "partially_paid",
                            "disputed",
                            "cancelled",
                            "deferred"
                        ],
                        "type": "string",
                        "description": "* `pending` - Pending\n* `overdue` - Overdue\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `disputed` - Disputed\n* `cancelled` - Cancelled\n* `deferred` - Deferred",
                        "x-spec-enum-id": "0c04b4d59ccef33b"
                    },
                    "priority": {
                        "enum": [
                            "low",
                            "medium",
                            "high",
                            "critical"
                        ],
                        "type": "string",
                        "description": "* `low` - Low\n* `medium` - Medium\n* `high` - High\n* `critical` - Critical",
                        "x-spec-enum-id": "e88e28221543c897"
                    },
                    "creditor_name": {
                        "type": "string",
                        "nullable": true,
                        "title": "Creditor/Vendor Name",
                        "maxLength": 300
                    },
                    "creditor_contact": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "creditor_email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true,
                        "maxLength": 254
                    },
                    "creditor_phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "payment_terms": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "late_fee_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Late Fee Rate (%)",
                        "description": "Late payment fee percentage"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "department": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "project_reference": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "supporting_document": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "description": "Upload contract, invoice, or agreement document (PDF, DOC, DOCX, JPG, PNG)"
                    }
                },
                "required": [
                    "current_balance",
                    "liability_date",
                    "name",
                    "original_amount"
                ]
            },
            "OrganisationBasic": {
                "type": "object",
                "description": "Basic serializer for Organisation – limited information for regular members.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "language": {
                        "enum": [
                            "en",
                            "sw",
                            "de",
                            "es",
                            "hi",
                            "ar",
                            "ko",
                            "pt",
                            "af",
                            "el",
                            "fr",
                            "ta",
                            "ru",
                            "zh-hans",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `en` - English\n* `sw` - Swahili\n* `de` - German\n* `es` - Spanish\n* `hi` - Hindi\n* `ar` - Arabic\n* `ko` - Korean\n* `pt` - Portuguese\n* `af` - Afrikaans\n* `el` - Greek\n* `fr` - French\n* `ta` - Tamil\n* `ru` - Russian\n* `zh-hans` - Simplified Chinese",
                        "x-spec-enum-id": "fb7dcad8f9a9bdd1",
                        "nullable": true
                    },
                    "language_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "business_description": {
                        "type": "string",
                        "readOnly": true,
                        "nullable": true
                    },
                    "business_category": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "business_category_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "business_website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "logo_url": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "owner": {
                        "type": "object",
                        "additionalProperties": {},
                        "nullable": true,
                        "readOnly": true
                    },
                    "member_count": {
                        "type": "integer",
                        "nullable": true,
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "business_category_display",
                    "business_description",
                    "language_display",
                    "logo_url",
                    "member_count",
                    "name",
                    "owner"
                ]
            },
            "OrganisationOwner": {
                "type": "object",
                "description": "Organisation model for owners (read/write, full surface).",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "nullable": true
                    },
                    "language": {
                        "enum": [
                            "en",
                            "sw",
                            "de",
                            "es",
                            "hi",
                            "ar",
                            "ko",
                            "pt",
                            "af",
                            "el",
                            "fr",
                            "ta",
                            "ru",
                            "zh-hans",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `en` - English\n* `sw` - Swahili\n* `de` - German\n* `es` - Spanish\n* `hi` - Hindi\n* `ar` - Arabic\n* `ko` - Korean\n* `pt` - Portuguese\n* `af` - Afrikaans\n* `el` - Greek\n* `fr` - French\n* `ta` - Tamil\n* `ru` - Russian\n* `zh-hans` - Simplified Chinese",
                        "x-spec-enum-id": "fb7dcad8f9a9bdd1",
                        "nullable": true
                    },
                    "language_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "business_description": {
                        "type": "string",
                        "nullable": true
                    },
                    "business_category": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "business_category_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "other_category": {
                        "type": "string",
                        "nullable": true
                    },
                    "how_did_you_hear_about_us": {
                        "enum": [
                            "google",
                            "social_media",
                            "online_ads",
                            "word_of_mouth",
                            "email_marketing",
                            "event",
                            "blog",
                            "webinar",
                            "podcast",
                            "tv_radio",
                            "print_media",
                            "referral",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `google` - Google Search\n* `social_media` - Social Media\n* `online_ads` - Online Ads\n* `word_of_mouth` - Word of Mouth\n* `email_marketing` - Email Marketing\n* `event` - Event or Conference\n* `blog` - Blog or Article\n* `webinar` - Webinar or Online Workshop\n* `podcast` - Podcast\n* `tv_radio` - TV or Radio Advertisement\n* `print_media` - Print Media\n* `referral` - Referral Program\n* `other` - Other",
                        "x-spec-enum-id": "a2ce5e1cf82999f1",
                        "nullable": true
                    },
                    "business_website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "vat_number": {
                        "type": "string",
                        "nullable": true,
                        "description": "VAT/Tax registration number",
                        "maxLength": 100
                    },
                    "logo_url": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "setup_done": {
                        "type": "boolean"
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Address"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/BankingInformation"
                            }
                        ],
                        "nullable": true
                    },
                    "owner": {
                        "type": "object",
                        "additionalProperties": {},
                        "nullable": true,
                        "readOnly": true
                    },
                    "member_count": {
                        "type": "integer",
                        "nullable": true,
                        "readOnly": true
                    },
                    "default_currency": {
                        "type": "string",
                        "description": "Default currency code (ISO 4217) for financial transactions",
                        "maxLength": 3
                    },
                    "default_vat_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Default VAT Rate (%)",
                        "description": "Default VAT/tax rate percentage for line items"
                    },
                    "financial_year_end": {
                        "enum": [
                            "01-31",
                            "02-28",
                            "03-31",
                            "04-30",
                            "05-31",
                            "06-30",
                            "07-31",
                            "08-31",
                            "09-30",
                            "10-31",
                            "11-30",
                            "12-31"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "500abc4657d212e8",
                        "description": "Month and day when the financial year ends (MM-DD format)\n\n* `01-31` - January 31\n* `02-28` - February 28\n* `03-31` - March 31\n* `04-30` - April 30\n* `05-31` - May 31\n* `06-30` - June 30\n* `07-31` - July 31\n* `08-31` - August 31\n* `09-30` - September 30\n* `10-31` - October 31\n* `11-30` - November 30\n* `12-31` - December 31"
                    },
                    "financial_year_end_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "accounting_method": {
                        "enum": [
                            "cash",
                            "accrual"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "c4a4af6a6b29969f",
                        "description": "Accounting method for financial reporting\n\n* `cash` - Cash Basis\n* `accrual` - Accrual Basis"
                    },
                    "accounting_method_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "reporting_currency": {
                        "enum": [
                            "USD",
                            "EUR",
                            "GBP",
                            "JPY",
                            "CAD",
                            "AUD",
                            "CHF",
                            "CNY",
                            "INR",
                            "ZAR",
                            "KES",
                            "NGN",
                            "GHS",
                            "EGP",
                            "MAD",
                            "TZS",
                            "UGX",
                            "RWF",
                            "ETB",
                            "BWP"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "47bf25e5eec548be",
                        "description": "Primary currency for financial reporting and statements\n\n* `USD` - US Dollar (USD)\n* `EUR` - Euro (EUR)\n* `GBP` - British Pound (GBP)\n* `JPY` - Japanese Yen (JPY)\n* `CAD` - Canadian Dollar (CAD)\n* `AUD` - Australian Dollar (AUD)\n* `CHF` - Swiss Franc (CHF)\n* `CNY` - Chinese Yuan (CNY)\n* `INR` - Indian Rupee (INR)\n* `ZAR` - South African Rand (ZAR)\n* `KES` - Kenyan Shilling (KES)\n* `NGN` - Nigerian Naira (NGN)\n* `GHS` - Ghanaian Cedi (GHS)\n* `EGP` - Egyptian Pound (EGP)\n* `MAD` - Moroccan Dirham (MAD)\n* `TZS` - Tanzanian Shilling (TZS)\n* `UGX` - Ugandan Shilling (UGX)\n* `RWF` - Rwandan Franc (RWF)\n* `ETB` - Ethiopian Birr (ETB)\n* `BWP` - Botswana Pula (BWP)"
                    },
                    "reporting_currency_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "enable_multi_currency": {
                        "type": "boolean",
                        "description": "Enable multi-currency transactions and reporting"
                    },
                    "auto_close_financial_year": {
                        "type": "boolean",
                        "description": "Automatically close financial year and create opening balances"
                    },
                    "retain_transaction_history": {
                        "type": "boolean",
                        "description": "Keep detailed transaction history after year-end closing"
                    },
                    "financial_year_lock_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Date before which transactions cannot be modified"
                    },
                    "current_financial_year_label": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "contact_agent_active": {
                        "type": "boolean",
                        "description": "Enable Contact Agent for managing contacts and client relationships"
                    },
                    "finance_agent_active": {
                        "type": "boolean",
                        "description": "Enable Finance Agent for financial management and accounting"
                    },
                    "business_agent_active": {
                        "type": "boolean",
                        "description": "Enable Business Agent for general business operations and strategy"
                    },
                    "asset_agent_active": {
                        "type": "boolean",
                        "description": "Enable Asset Agent for asset management and inventory tracking"
                    },
                    "client_agent_active": {
                        "type": "boolean",
                        "description": "Enable Client Agent for client relationship management"
                    },
                    "docs_agent_active": {
                        "type": "boolean",
                        "description": "Enable Docs Agent for document management and file organization"
                    },
                    "notes_agent_active": {
                        "type": "boolean",
                        "description": "Enable Notes Agent for note-taking and knowledge management"
                    },
                    "project_agent_active": {
                        "type": "boolean",
                        "description": "Enable Project Agent for project management and task tracking"
                    },
                    "user_manager_agent_active": {
                        "type": "boolean",
                        "description": "Enable User Manager Agent for user management and permissions"
                    },
                    "stripe_customer_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "Stripe customer ID for billing and subscriptions",
                        "maxLength": 100
                    },
                    "monthly_ai_credits_allocated": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Allocated (USD)",
                        "description": "Monthly AI credits allocated based on pricing tier"
                    },
                    "monthly_ai_credits_used": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Used (USD)",
                        "description": "AI credits used in current month"
                    },
                    "monthly_ai_credits_remaining": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Remaining (USD)",
                        "description": "AI credits remaining in current month"
                    },
                    "last_monthly_reset_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Date when monthly AI credits were last reset"
                    },
                    "current_billing_cycle_start": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Start date of current monthly billing cycle"
                    },
                    "current_billing_cycle_end": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "End date of current monthly billing cycle"
                    },
                    "purchased_seats": {
                        "type": "integer",
                        "maximum": 2147483647,
                        "minimum": 0,
                        "description": "Number of additional seats purchased beyond the base plan"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "accounting_method_display",
                    "business_category_display",
                    "current_financial_year_label",
                    "financial_year_end_display",
                    "language_display",
                    "logo_url",
                    "member_count",
                    "owner",
                    "reporting_currency_display"
                ]
            },
            "OrganisationOwnerRequest": {
                "type": "object",
                "description": "Organisation model for owners (read/write, full surface).",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "nullable": true
                    },
                    "language": {
                        "enum": [
                            "en",
                            "sw",
                            "de",
                            "es",
                            "hi",
                            "ar",
                            "ko",
                            "pt",
                            "af",
                            "el",
                            "fr",
                            "ta",
                            "ru",
                            "zh-hans",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `en` - English\n* `sw` - Swahili\n* `de` - German\n* `es` - Spanish\n* `hi` - Hindi\n* `ar` - Arabic\n* `ko` - Korean\n* `pt` - Portuguese\n* `af` - Afrikaans\n* `el` - Greek\n* `fr` - French\n* `ta` - Tamil\n* `ru` - Russian\n* `zh-hans` - Simplified Chinese",
                        "x-spec-enum-id": "fb7dcad8f9a9bdd1",
                        "nullable": true
                    },
                    "business_description": {
                        "type": "string",
                        "nullable": true
                    },
                    "business_category": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "other_category": {
                        "type": "string",
                        "nullable": true
                    },
                    "how_did_you_hear_about_us": {
                        "enum": [
                            "google",
                            "social_media",
                            "online_ads",
                            "word_of_mouth",
                            "email_marketing",
                            "event",
                            "blog",
                            "webinar",
                            "podcast",
                            "tv_radio",
                            "print_media",
                            "referral",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `google` - Google Search\n* `social_media` - Social Media\n* `online_ads` - Online Ads\n* `word_of_mouth` - Word of Mouth\n* `email_marketing` - Email Marketing\n* `event` - Event or Conference\n* `blog` - Blog or Article\n* `webinar` - Webinar or Online Workshop\n* `podcast` - Podcast\n* `tv_radio` - TV or Radio Advertisement\n* `print_media` - Print Media\n* `referral` - Referral Program\n* `other` - Other",
                        "x-spec-enum-id": "a2ce5e1cf82999f1",
                        "nullable": true
                    },
                    "business_website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "vat_number": {
                        "type": "string",
                        "nullable": true,
                        "description": "VAT/Tax registration number",
                        "maxLength": 100
                    },
                    "setup_done": {
                        "type": "boolean"
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AddressRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/BankingInformationRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "default_currency": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Default currency code (ISO 4217) for financial transactions",
                        "maxLength": 3
                    },
                    "default_vat_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Default VAT Rate (%)",
                        "description": "Default VAT/tax rate percentage for line items"
                    },
                    "financial_year_end": {
                        "enum": [
                            "01-31",
                            "02-28",
                            "03-31",
                            "04-30",
                            "05-31",
                            "06-30",
                            "07-31",
                            "08-31",
                            "09-30",
                            "10-31",
                            "11-30",
                            "12-31"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "500abc4657d212e8",
                        "description": "Month and day when the financial year ends (MM-DD format)\n\n* `01-31` - January 31\n* `02-28` - February 28\n* `03-31` - March 31\n* `04-30` - April 30\n* `05-31` - May 31\n* `06-30` - June 30\n* `07-31` - July 31\n* `08-31` - August 31\n* `09-30` - September 30\n* `10-31` - October 31\n* `11-30` - November 30\n* `12-31` - December 31"
                    },
                    "accounting_method": {
                        "enum": [
                            "cash",
                            "accrual"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "c4a4af6a6b29969f",
                        "description": "Accounting method for financial reporting\n\n* `cash` - Cash Basis\n* `accrual` - Accrual Basis"
                    },
                    "reporting_currency": {
                        "enum": [
                            "USD",
                            "EUR",
                            "GBP",
                            "JPY",
                            "CAD",
                            "AUD",
                            "CHF",
                            "CNY",
                            "INR",
                            "ZAR",
                            "KES",
                            "NGN",
                            "GHS",
                            "EGP",
                            "MAD",
                            "TZS",
                            "UGX",
                            "RWF",
                            "ETB",
                            "BWP"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "47bf25e5eec548be",
                        "description": "Primary currency for financial reporting and statements\n\n* `USD` - US Dollar (USD)\n* `EUR` - Euro (EUR)\n* `GBP` - British Pound (GBP)\n* `JPY` - Japanese Yen (JPY)\n* `CAD` - Canadian Dollar (CAD)\n* `AUD` - Australian Dollar (AUD)\n* `CHF` - Swiss Franc (CHF)\n* `CNY` - Chinese Yuan (CNY)\n* `INR` - Indian Rupee (INR)\n* `ZAR` - South African Rand (ZAR)\n* `KES` - Kenyan Shilling (KES)\n* `NGN` - Nigerian Naira (NGN)\n* `GHS` - Ghanaian Cedi (GHS)\n* `EGP` - Egyptian Pound (EGP)\n* `MAD` - Moroccan Dirham (MAD)\n* `TZS` - Tanzanian Shilling (TZS)\n* `UGX` - Ugandan Shilling (UGX)\n* `RWF` - Rwandan Franc (RWF)\n* `ETB` - Ethiopian Birr (ETB)\n* `BWP` - Botswana Pula (BWP)"
                    },
                    "enable_multi_currency": {
                        "type": "boolean",
                        "description": "Enable multi-currency transactions and reporting"
                    },
                    "auto_close_financial_year": {
                        "type": "boolean",
                        "description": "Automatically close financial year and create opening balances"
                    },
                    "retain_transaction_history": {
                        "type": "boolean",
                        "description": "Keep detailed transaction history after year-end closing"
                    },
                    "financial_year_lock_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Date before which transactions cannot be modified"
                    },
                    "contact_agent_active": {
                        "type": "boolean",
                        "description": "Enable Contact Agent for managing contacts and client relationships"
                    },
                    "finance_agent_active": {
                        "type": "boolean",
                        "description": "Enable Finance Agent for financial management and accounting"
                    },
                    "business_agent_active": {
                        "type": "boolean",
                        "description": "Enable Business Agent for general business operations and strategy"
                    },
                    "asset_agent_active": {
                        "type": "boolean",
                        "description": "Enable Asset Agent for asset management and inventory tracking"
                    },
                    "client_agent_active": {
                        "type": "boolean",
                        "description": "Enable Client Agent for client relationship management"
                    },
                    "docs_agent_active": {
                        "type": "boolean",
                        "description": "Enable Docs Agent for document management and file organization"
                    },
                    "notes_agent_active": {
                        "type": "boolean",
                        "description": "Enable Notes Agent for note-taking and knowledge management"
                    },
                    "project_agent_active": {
                        "type": "boolean",
                        "description": "Enable Project Agent for project management and task tracking"
                    },
                    "user_manager_agent_active": {
                        "type": "boolean",
                        "description": "Enable User Manager Agent for user management and permissions"
                    },
                    "stripe_customer_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "Stripe customer ID for billing and subscriptions",
                        "maxLength": 100
                    },
                    "monthly_ai_credits_allocated": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Allocated (USD)",
                        "description": "Monthly AI credits allocated based on pricing tier"
                    },
                    "monthly_ai_credits_used": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Used (USD)",
                        "description": "AI credits used in current month"
                    },
                    "monthly_ai_credits_remaining": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Remaining (USD)",
                        "description": "AI credits remaining in current month"
                    },
                    "last_monthly_reset_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Date when monthly AI credits were last reset"
                    },
                    "current_billing_cycle_start": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Start date of current monthly billing cycle"
                    },
                    "current_billing_cycle_end": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "End date of current monthly billing cycle"
                    },
                    "purchased_seats": {
                        "type": "integer",
                        "maximum": 2147483647,
                        "minimum": 0,
                        "description": "Number of additional seats purchased beyond the base plan"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                }
            },
            "PatchedAccountRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Account model.\nHandles chart of accounts with multilingual support and hierarchy.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "account_code": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 20
                    },
                    "account_type": {
                        "enum": [
                            "asset",
                            "liability",
                            "equity",
                            "income",
                            "expense"
                        ],
                        "type": "string",
                        "description": "* `asset` - Asset\n* `liability` - Liability\n* `equity` - Equity\n* `income` - Income\n* `expense` - Expense",
                        "x-spec-enum-id": "25444165bec7bea9"
                    },
                    "account_category": {
                        "enum": [
                            "current_assets",
                            "fixed_assets",
                            "intangible_assets",
                            "current_liabilities",
                            "long_term_liabilities",
                            "owner_equity",
                            "retained_earnings",
                            "operating_income",
                            "other_income",
                            "cost_of_goods_sold",
                            "operating_expenses",
                            "administrative_expenses",
                            "financial_expenses",
                            "other_expenses"
                        ],
                        "type": "string",
                        "description": "* `current_assets` - Current Assets\n* `fixed_assets` - Fixed Assets\n* `intangible_assets` - Intangible Assets\n* `current_liabilities` - Current Liabilities\n* `long_term_liabilities` - Long-term Liabilities\n* `owner_equity` - Owner Equity\n* `retained_earnings` - Retained Earnings\n* `operating_income` - Operating Income\n* `other_income` - Other Income\n* `cost_of_goods_sold` - Cost of Goods Sold\n* `operating_expenses` - Operating Expenses\n* `administrative_expenses` - Administrative Expenses\n* `financial_expenses` - Financial Expenses\n* `other_expenses` - Other Expenses",
                        "x-spec-enum-id": "1fc2ce589e0c561c"
                    },
                    "parent_account_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "is_system_account": {
                        "type": "boolean",
                        "description": "System accounts cannot be deleted"
                    }
                }
            },
            "PatchedAssetRequest": {
                "type": "object",
                "description": "Full serializer for Asset creation and updates.\nHandles translatable fields correctly.",
                "properties": {
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "asset_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "serial_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "asset_type": {
                        "enum": [
                            "ppe",
                            "equipment",
                            "furniture",
                            "vehicle",
                            "computer",
                            "software",
                            "building",
                            "land",
                            "intangible",
                            "other"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "2ce89150314107a5",
                        "description": "Asset type is required.\n\n* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "brand": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "model": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "purchase_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Purchase price is required and must be non-negative."
                    },
                    "useful_life_years": {
                        "type": "integer",
                        "maximum": 100,
                        "minimum": 1,
                        "title": "Useful Life (Years)",
                        "description": "Expected useful life in years"
                    },
                    "purchase_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Purchase date is required."
                    },
                    "warranty_expiry_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "disposal_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "disposed",
                            "sold",
                            "damaged",
                            "under_repair",
                            "stolen"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen",
                        "x-spec-enum-id": "4b25875d725a617a"
                    },
                    "condition": {
                        "enum": [
                            "excellent",
                            "good",
                            "fair",
                            "poor",
                            "damaged"
                        ],
                        "type": "string",
                        "description": "* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged",
                        "x-spec-enum-id": "4d39a675c08c1112"
                    },
                    "location": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "assigned_to_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1,
                        "description": "Unique ID of person to assign asset to"
                    },
                    "image": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "title": "Asset Image",
                        "description": "Asset image for identification"
                    },
                    "receipt_document": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "title": "Receipt/Invoice Document",
                        "description": "Upload receipt, invoice, or purchase document (PDF, DOC, DOCX, JPG, PNG)"
                    },
                    "supplier_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "purchase_order_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "invoice_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    }
                }
            },
            "PatchedBillRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Bill model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "bill_number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                    },
                    "supplier_invoice_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "received",
                            "approved",
                            "paid",
                            "partially_paid",
                            "overdue",
                            "disputed",
                            "cancelled"
                        ],
                        "type": "string",
                        "description": "* `received` - Received\n* `approved` - Approved for Payment\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `overdue` - Overdue\n* `disputed` - Disputed\n* `cancelled` - Cancelled",
                        "x-spec-enum-id": "9014604455f4adcc"
                    },
                    "vendor_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "bill_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "received_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "subtotal": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "tax_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Tax Rate (%)"
                    },
                    "tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "document": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "title": "Bill Document",
                        "description": "Scanned bill document (PDF, image)"
                    }
                }
            },
            "PatchedClientRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Client model.\nHandles multilingual fields, nested relationships, and computed fields.\nOptimized for list and detail views with optional prefetching support.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "entity_type": {
                        "enum": [
                            "individual",
                            "company",
                            "non_profit",
                            "government",
                            "partnership",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other",
                        "x-spec-enum-id": "e63a18a548d49954"
                    },
                    "lifecycle_stage": {
                        "enum": [
                            "prospect",
                            "active_client",
                            "matured_client",
                            "inactive",
                            "dormant",
                            "lost_opportunity"
                        ],
                        "type": "string",
                        "description": "* `prospect` - Prospect\n* `active_client` - Active Client\n* `matured_client` - Matured Client\n* `inactive` - Inactive\n* `dormant` - Dormant\n* `lost_opportunity` - Lost Opportunity",
                        "x-spec-enum-id": "e11380d2c2f80e5d",
                        "title": "Client Lifecycle Stage"
                    },
                    "industry": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "company_size": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "annual_revenue": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Annual revenue in USD"
                    },
                    "default_currency": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Default currency code (ISO 4217) for this entity's transactions",
                        "maxLength": 3
                    },
                    "first_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "next_follow_up_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientAddressRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientBankingInformationRequest"
                            }
                        ],
                        "nullable": true
                    }
                }
            },
            "PatchedContactGroupRequest": {
                "type": "object",
                "description": "Serializer for ContactGroup model supporting both creation and listing.\nHandles multilingual fields through parler TranslatableModelSerializer.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "translations": {
                        "type": "string"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                }
            },
            "PatchedContactRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Contact model.\nHandles contact creation, updates, and group assignment.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "translations": {
                        "type": "string"
                    },
                    "contact_group": {
                        "type": "string",
                        "nullable": true,
                        "description": "Contact group unique_id (optional - can be assigned later)"
                    },
                    "entity_type": {
                        "enum": [
                            "client",
                            "vendor",
                            "lead"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "e61cac37134eb550",
                        "description": "Type of entity (client, vendor, lead)\n\n* `client` - Client\n* `vendor` - Vendor\n* `lead` - Lead"
                    },
                    "entity_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "ID of the entity this contact belongs to (optional for potential clients/vendors)",
                        "maxLength": 100
                    },
                    "first_name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 150
                    },
                    "last_name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 150
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true,
                        "maxLength": 254
                    },
                    "phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 17
                    },
                    "mobile": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 17
                    },
                    "linkedin_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "description": "LinkedIn profile URL",
                        "maxLength": 200
                    },
                    "job_title": {
                        "type": "string",
                        "nullable": true
                    },
                    "department": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "primary_contact": {
                        "type": "boolean",
                        "description": "Indicates if this is the primary contact for the entity"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                }
            },
            "PatchedExpenseRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Expense model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "expense_number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                    },
                    "account_id": {
                        "type": "string",
                        "writeOnly": true,
                        "minLength": 1
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "submitted",
                            "approved",
                            "paid",
                            "rejected",
                            "reimbursed"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `submitted` - Submitted for Approval\n* `approved` - Approved\n* `paid` - Paid\n* `rejected` - Rejected\n* `reimbursed` - Reimbursed",
                        "x-spec-enum-id": "253a68c32657b8eb"
                    },
                    "expense_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "vendor_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "employee_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "receipt": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "description": "Receipt or supporting document"
                    },
                    "vat_processed": {
                        "type": "boolean",
                        "description": "Whether VAT has been processed for reconciliation"
                    }
                }
            },
            "PatchedInvoiceRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Invoice model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "invoice_number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "sent",
                            "viewed",
                            "paid",
                            "partially_paid",
                            "overdue",
                            "cancelled",
                            "refunded"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `sent` - Sent\n* `viewed` - Viewed by Client\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `overdue` - Overdue\n* `cancelled` - Cancelled\n* `refunded` - Refunded",
                        "x-spec-enum-id": "8e85d2eb801a372b"
                    },
                    "invoice_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "client_id": {
                        "type": "string",
                        "writeOnly": true,
                        "minLength": 1,
                        "description": "Client unique_id (required)"
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InvoiceItemRequest"
                        }
                    }
                }
            },
            "PatchedLeadRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Lead model.\nHandles multilingual fields, sales stage relationships, and computed metrics like weighted value.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "qualification_notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "priority": {
                        "enum": [
                            "low",
                            "medium",
                            "high",
                            "critical"
                        ],
                        "type": "string",
                        "description": "* `low` - Low\n* `medium` - Medium\n* `high` - High\n* `critical` - Critical",
                        "x-spec-enum-id": "e88e28221543c897"
                    },
                    "lead_source": {
                        "enum": [
                            "website",
                            "social_media",
                            "email_marketing",
                            "referral",
                            "cold_calling",
                            "trade_show",
                            "advertising",
                            "content_marketing",
                            "seo",
                            "ppc",
                            "partner",
                            "other"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "39b6f2b333a73ce3",
                        "description": "Select one of the predefined lead sources.\n\n* `website` - Website\n* `social_media` - Social Media\n* `email_marketing` - Email Marketing\n* `referral` - Referral\n* `cold_calling` - Cold Calling\n* `trade_show` - Trade Show\n* `advertising` - Advertising\n* `content_marketing` - Content Marketing\n* `seo` - SEO\n* `ppc` - Pay-per-Click\n* `partner` - Partner\n* `other` - Other"
                    },
                    "estimated_value": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,16}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "win_probability": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "sales_stage": {
                        "type": "string",
                        "nullable": true,
                        "description": "Unique ID of an existing sales stage."
                    },
                    "client": {
                        "type": "string",
                        "nullable": true,
                        "description": "Unique ID of an existing client."
                    },
                    "expected_close_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "follow_up_date": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true,
                        "title": "Next Follow Up Date"
                    }
                }
            },
            "PatchedLiabilityRequest": {
                "type": "object",
                "description": "Full serializer for Liability creation and updates.\nHandles translatable fields correctly.",
                "properties": {
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "liability_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "reference_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "liability_type": {
                        "enum": [
                            "accounts_payable",
                            "notes_payable",
                            "loans_payable",
                            "mortgage_payable",
                            "bonds_payable",
                            "accrued_expenses",
                            "deferred_revenue",
                            "tax_payable",
                            "salary_payable",
                            "interest_payable",
                            "rent_payable",
                            "utilities_payable",
                            "lease_obligations",
                            "warranty_obligations",
                            "legal_obligations",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `accounts_payable` - Accounts Payable\n* `notes_payable` - Notes Payable\n* `loans_payable` - Loans Payable\n* `mortgage_payable` - Mortgage Payable\n* `bonds_payable` - Bonds Payable\n* `accrued_expenses` - Accrued Expenses\n* `deferred_revenue` - Deferred Revenue\n* `tax_payable` - Tax Payable\n* `salary_payable` - Salary/Wages Payable\n* `interest_payable` - Interest Payable\n* `rent_payable` - Rent Payable\n* `utilities_payable` - Utilities Payable\n* `lease_obligations` - Lease Obligations\n* `warranty_obligations` - Warranty Obligations\n* `legal_obligations` - Legal Obligations\n* `other` - Other",
                        "x-spec-enum-id": "b359906e5a9a006f"
                    },
                    "classification": {
                        "enum": [
                            "current",
                            "non_current",
                            "contingent"
                        ],
                        "type": "string",
                        "description": "* `current` - Current Liability\n* `non_current` - Non-Current Liability\n* `contingent` - Contingent Liability",
                        "x-spec-enum-id": "2b26fca2211e25d6"
                    },
                    "original_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Original amount is required and must be non-negative."
                    },
                    "current_balance": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Current outstanding balance"
                    },
                    "paid_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "description": "Total amount paid so far"
                    },
                    "interest_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Interest Rate (%)",
                        "description": "Annual interest rate percentage"
                    },
                    "liability_date": {
                        "type": "string",
                        "format": "date",
                        "description": "Liability date is required."
                    },
                    "due_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "payment_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "maturity_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "pending",
                            "overdue",
                            "paid",
                            "partially_paid",
                            "disputed",
                            "cancelled",
                            "deferred"
                        ],
                        "type": "string",
                        "description": "* `pending` - Pending\n* `overdue` - Overdue\n* `paid` - Paid\n* `partially_paid` - Partially Paid\n* `disputed` - Disputed\n* `cancelled` - Cancelled\n* `deferred` - Deferred",
                        "x-spec-enum-id": "0c04b4d59ccef33b"
                    },
                    "priority": {
                        "enum": [
                            "low",
                            "medium",
                            "high",
                            "critical"
                        ],
                        "type": "string",
                        "description": "* `low` - Low\n* `medium` - Medium\n* `high` - High\n* `critical` - Critical",
                        "x-spec-enum-id": "e88e28221543c897"
                    },
                    "creditor_name": {
                        "type": "string",
                        "nullable": true,
                        "title": "Creditor/Vendor Name",
                        "maxLength": 300
                    },
                    "creditor_contact": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "creditor_email": {
                        "type": "string",
                        "format": "email",
                        "nullable": true,
                        "maxLength": 254
                    },
                    "creditor_phone": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 50
                    },
                    "payment_terms": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "late_fee_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Late Fee Rate (%)",
                        "description": "Late payment fee percentage"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "department": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "project_reference": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "supporting_document": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "description": "Upload contract, invoice, or agreement document (PDF, DOC, DOCX, JPG, PNG)"
                    }
                }
            },
            "PatchedOrganisationOwnerRequest": {
                "type": "object",
                "description": "Organisation model for owners (read/write, full surface).",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "nullable": true
                    },
                    "language": {
                        "enum": [
                            "en",
                            "sw",
                            "de",
                            "es",
                            "hi",
                            "ar",
                            "ko",
                            "pt",
                            "af",
                            "el",
                            "fr",
                            "ta",
                            "ru",
                            "zh-hans",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `en` - English\n* `sw` - Swahili\n* `de` - German\n* `es` - Spanish\n* `hi` - Hindi\n* `ar` - Arabic\n* `ko` - Korean\n* `pt` - Portuguese\n* `af` - Afrikaans\n* `el` - Greek\n* `fr` - French\n* `ta` - Tamil\n* `ru` - Russian\n* `zh-hans` - Simplified Chinese",
                        "x-spec-enum-id": "fb7dcad8f9a9bdd1",
                        "nullable": true
                    },
                    "business_description": {
                        "type": "string",
                        "nullable": true
                    },
                    "business_category": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "other_category": {
                        "type": "string",
                        "nullable": true
                    },
                    "how_did_you_hear_about_us": {
                        "enum": [
                            "google",
                            "social_media",
                            "online_ads",
                            "word_of_mouth",
                            "email_marketing",
                            "event",
                            "blog",
                            "webinar",
                            "podcast",
                            "tv_radio",
                            "print_media",
                            "referral",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `google` - Google Search\n* `social_media` - Social Media\n* `online_ads` - Online Ads\n* `word_of_mouth` - Word of Mouth\n* `email_marketing` - Email Marketing\n* `event` - Event or Conference\n* `blog` - Blog or Article\n* `webinar` - Webinar or Online Workshop\n* `podcast` - Podcast\n* `tv_radio` - TV or Radio Advertisement\n* `print_media` - Print Media\n* `referral` - Referral Program\n* `other` - Other",
                        "x-spec-enum-id": "a2ce5e1cf82999f1",
                        "nullable": true
                    },
                    "business_website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "vat_number": {
                        "type": "string",
                        "nullable": true,
                        "description": "VAT/Tax registration number",
                        "maxLength": 100
                    },
                    "setup_done": {
                        "type": "boolean"
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AddressRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/BankingInformationRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "default_currency": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Default currency code (ISO 4217) for financial transactions",
                        "maxLength": 3
                    },
                    "default_vat_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Default VAT Rate (%)",
                        "description": "Default VAT/tax rate percentage for line items"
                    },
                    "financial_year_end": {
                        "enum": [
                            "01-31",
                            "02-28",
                            "03-31",
                            "04-30",
                            "05-31",
                            "06-30",
                            "07-31",
                            "08-31",
                            "09-30",
                            "10-31",
                            "11-30",
                            "12-31"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "500abc4657d212e8",
                        "description": "Month and day when the financial year ends (MM-DD format)\n\n* `01-31` - January 31\n* `02-28` - February 28\n* `03-31` - March 31\n* `04-30` - April 30\n* `05-31` - May 31\n* `06-30` - June 30\n* `07-31` - July 31\n* `08-31` - August 31\n* `09-30` - September 30\n* `10-31` - October 31\n* `11-30` - November 30\n* `12-31` - December 31"
                    },
                    "accounting_method": {
                        "enum": [
                            "cash",
                            "accrual"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "c4a4af6a6b29969f",
                        "description": "Accounting method for financial reporting\n\n* `cash` - Cash Basis\n* `accrual` - Accrual Basis"
                    },
                    "reporting_currency": {
                        "enum": [
                            "USD",
                            "EUR",
                            "GBP",
                            "JPY",
                            "CAD",
                            "AUD",
                            "CHF",
                            "CNY",
                            "INR",
                            "ZAR",
                            "KES",
                            "NGN",
                            "GHS",
                            "EGP",
                            "MAD",
                            "TZS",
                            "UGX",
                            "RWF",
                            "ETB",
                            "BWP"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "47bf25e5eec548be",
                        "description": "Primary currency for financial reporting and statements\n\n* `USD` - US Dollar (USD)\n* `EUR` - Euro (EUR)\n* `GBP` - British Pound (GBP)\n* `JPY` - Japanese Yen (JPY)\n* `CAD` - Canadian Dollar (CAD)\n* `AUD` - Australian Dollar (AUD)\n* `CHF` - Swiss Franc (CHF)\n* `CNY` - Chinese Yuan (CNY)\n* `INR` - Indian Rupee (INR)\n* `ZAR` - South African Rand (ZAR)\n* `KES` - Kenyan Shilling (KES)\n* `NGN` - Nigerian Naira (NGN)\n* `GHS` - Ghanaian Cedi (GHS)\n* `EGP` - Egyptian Pound (EGP)\n* `MAD` - Moroccan Dirham (MAD)\n* `TZS` - Tanzanian Shilling (TZS)\n* `UGX` - Ugandan Shilling (UGX)\n* `RWF` - Rwandan Franc (RWF)\n* `ETB` - Ethiopian Birr (ETB)\n* `BWP` - Botswana Pula (BWP)"
                    },
                    "enable_multi_currency": {
                        "type": "boolean",
                        "description": "Enable multi-currency transactions and reporting"
                    },
                    "auto_close_financial_year": {
                        "type": "boolean",
                        "description": "Automatically close financial year and create opening balances"
                    },
                    "retain_transaction_history": {
                        "type": "boolean",
                        "description": "Keep detailed transaction history after year-end closing"
                    },
                    "financial_year_lock_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Date before which transactions cannot be modified"
                    },
                    "contact_agent_active": {
                        "type": "boolean",
                        "description": "Enable Contact Agent for managing contacts and client relationships"
                    },
                    "finance_agent_active": {
                        "type": "boolean",
                        "description": "Enable Finance Agent for financial management and accounting"
                    },
                    "business_agent_active": {
                        "type": "boolean",
                        "description": "Enable Business Agent for general business operations and strategy"
                    },
                    "asset_agent_active": {
                        "type": "boolean",
                        "description": "Enable Asset Agent for asset management and inventory tracking"
                    },
                    "client_agent_active": {
                        "type": "boolean",
                        "description": "Enable Client Agent for client relationship management"
                    },
                    "docs_agent_active": {
                        "type": "boolean",
                        "description": "Enable Docs Agent for document management and file organization"
                    },
                    "notes_agent_active": {
                        "type": "boolean",
                        "description": "Enable Notes Agent for note-taking and knowledge management"
                    },
                    "project_agent_active": {
                        "type": "boolean",
                        "description": "Enable Project Agent for project management and task tracking"
                    },
                    "user_manager_agent_active": {
                        "type": "boolean",
                        "description": "Enable User Manager Agent for user management and permissions"
                    },
                    "stripe_customer_id": {
                        "type": "string",
                        "nullable": true,
                        "description": "Stripe customer ID for billing and subscriptions",
                        "maxLength": 100
                    },
                    "monthly_ai_credits_allocated": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Allocated (USD)",
                        "description": "Monthly AI credits allocated based on pricing tier"
                    },
                    "monthly_ai_credits_used": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Used (USD)",
                        "description": "AI credits used in current month"
                    },
                    "monthly_ai_credits_remaining": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,4}(?:\\.\\d{0,2})?$",
                        "title": "Monthly AI Credits Remaining (USD)",
                        "description": "AI credits remaining in current month"
                    },
                    "last_monthly_reset_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Date when monthly AI credits were last reset"
                    },
                    "current_billing_cycle_start": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "Start date of current monthly billing cycle"
                    },
                    "current_billing_cycle_end": {
                        "type": "string",
                        "format": "date",
                        "nullable": true,
                        "description": "End date of current monthly billing cycle"
                    },
                    "purchased_seats": {
                        "type": "integer",
                        "maximum": 2147483647,
                        "minimum": 0,
                        "description": "Number of additional seats purchased beyond the base plan"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                }
            },
            "PatchedPersonRequest": {
                "type": "object",
                "description": "Person model with nested user information and related data.\nSupports reading + writing nested Address/Employee/Banking.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "current_language": {
                        "enum": [
                            "en",
                            "sw",
                            "de",
                            "es",
                            "hi",
                            "ar",
                            "ko",
                            "pt",
                            "af",
                            "el",
                            "fr",
                            "ta",
                            "ru",
                            "zh-hans"
                        ],
                        "type": "string",
                        "description": "* `en` - English\n* `sw` - Swahili\n* `de` - German\n* `es` - Spanish\n* `hi` - Hindi\n* `ar` - Arabic\n* `ko` - Korean\n* `pt` - Portuguese\n* `af` - Afrikaans\n* `el` - Greek\n* `fr` - French\n* `ta` - Tamil\n* `ru` - Russian\n* `zh-hans` - Simplified Chinese",
                        "x-spec-enum-id": "fb7dcad8f9a9bdd1"
                    },
                    "job_title": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "is_owner": {
                        "type": "boolean"
                    },
                    "user_type": {
                        "enum": [
                            "user",
                            "employee"
                        ],
                        "type": "string",
                        "description": "* `user` - Regular User\n* `employee` - Employee",
                        "x-spec-enum-id": "68c56211e4ec1e64"
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AddressRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/BankingInformationRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "employee_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/EmployeeInformationRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "last_login": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                }
            },
            "PatchedProductRequest": {
                "type": "object",
                "description": "Full serializer for Product creation and updates.\nHandles translatable fields correctly.",
                "properties": {
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "short_description": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 500
                    },
                    "product_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "barcode": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "product_type": {
                        "enum": [
                            "manufacture",
                            "buy"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "4ba813202340aff4",
                        "description": "Product type is required.\n\n* `manufacture` - Manufacture\n* `buy` - Buy"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "brand": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "model_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "unit_of_measure": {
                        "enum": [
                            "piece",
                            "kg",
                            "gram",
                            "liter",
                            "meter",
                            "square_meter",
                            "cubic_meter",
                            "hour",
                            "day",
                            "month",
                            "year",
                            "box",
                            "pack",
                            "dozen",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `piece` - Piece\n* `kg` - Kilogram\n* `gram` - Gram\n* `liter` - Liter\n* `meter` - Meter\n* `square_meter` - Square Meter\n* `cubic_meter` - Cubic Meter\n* `hour` - Hour\n* `day` - Day\n* `month` - Month\n* `year` - Year\n* `box` - Box\n* `pack` - Pack\n* `dozen` - Dozen\n* `other` - Other",
                        "x-spec-enum-id": "afc5126f7b55fda1"
                    },
                    "cost_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Cost price per unit"
                    },
                    "selling_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Selling price per unit"
                    },
                    "current_stock": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "minimum_stock_level": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "maximum_stock_level": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "discontinued",
                            "out_of_stock"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `discontinued` - Discontinued\n* `out_of_stock` - Out of Stock",
                        "x-spec-enum-id": "06b238dca0833e84"
                    },
                    "image": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "title": "Product Image",
                        "description": "Product image for catalogs and invoices"
                    },
                    "supplier_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    }
                }
            },
            "PatchedQuoteRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Quote model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "terms_and_conditions": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "quote_number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "sent",
                            "viewed",
                            "accepted",
                            "rejected",
                            "expired",
                            "converted"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `sent` - Sent\n* `viewed` - Viewed by Client\n* `accepted` - Accepted\n* `rejected` - Rejected\n* `expired` - Expired\n* `converted` - Converted to Invoice",
                        "x-spec-enum-id": "558490999f1e19fb"
                    },
                    "quote_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "valid_until": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "client_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/QuoteItemRequest"
                        }
                    }
                }
            },
            "PatchedSalesStageRequest": {
                "type": "object",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "probability": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Win Probability %",
                        "description": "Probability of winning deals in this stage (0-100)"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "is_closed_won": {
                        "type": "boolean"
                    },
                    "is_closed_lost": {
                        "type": "boolean"
                    }
                }
            },
            "PatchedServiceRequest": {
                "type": "object",
                "description": "Full serializer for Service creation and updates.\nHandles translatable fields correctly.",
                "properties": {
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "short_description": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 500
                    },
                    "service_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "service_type": {
                        "enum": [
                            "hourly",
                            "fixed",
                            "subscription",
                            "project",
                            "consultation",
                            "maintenance",
                            "other"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "6282682b6910b7b0",
                        "description": "Service type: hourly, fixed, subscription, project, consultation, maintenance, or other\n\n* `hourly` - Hourly Service\n* `fixed` - Fixed Price Service\n* `subscription` - Subscription Service\n* `project` - Project-based Service\n* `consultation` - Consultation Service\n* `maintenance` - Maintenance Service\n* `other` - Other"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "hourly_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Rate per hour for hourly services"
                    },
                    "fixed_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Fixed price for the service"
                    },
                    "billing_cycle": {
                        "enum": [
                            "one_time",
                            "hourly",
                            "daily",
                            "weekly",
                            "monthly",
                            "quarterly",
                            "annually"
                        ],
                        "type": "string",
                        "description": "* `one_time` - One Time\n* `hourly` - Hourly\n* `daily` - Daily\n* `weekly` - Weekly\n* `monthly` - Monthly\n* `quarterly` - Quarterly\n* `annually` - Annually",
                        "x-spec-enum-id": "b06a983a7f5a8c6b"
                    },
                    "estimated_duration_hours": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,6}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Estimated Duration (Hours)",
                        "description": "Estimated time to complete the service"
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "discontinued"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `discontinued` - Discontinued",
                        "x-spec-enum-id": "79a8457244fbe617"
                    },
                    "requirements": {
                        "type": "string",
                        "nullable": true
                    }
                }
            },
            "PatchedVendorRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "entity_type": {
                        "enum": [
                            "individual",
                            "company",
                            "non_profit",
                            "government",
                            "partnership",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other",
                        "x-spec-enum-id": "e63a18a548d49954"
                    },
                    "vendor_status": {
                        "enum": [
                            "potential",
                            "active",
                            "preferred",
                            "on_hold",
                            "inactive",
                            "blacklisted"
                        ],
                        "type": "string",
                        "description": "* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted",
                        "x-spec-enum-id": "5dedd7da0bf1036e"
                    },
                    "vendor_category": {
                        "enum": [
                            "goods",
                            "services",
                            "both",
                            "contractor",
                            "consultant",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other",
                        "x-spec-enum-id": "199d59550e1029be"
                    },
                    "industry": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "company_size": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "annual_revenue": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Annual revenue in USD"
                    },
                    "minimum_order_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Minimum order amount required"
                    },
                    "default_currency": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Default currency code (ISO 4217) for this entity's transactions",
                        "maxLength": 3
                    },
                    "first_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "next_follow_up_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_order_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "contract_start_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "contract_end_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "quality_rating": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,1}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Quality rating out of 5.00"
                    },
                    "delivery_rating": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,1}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Delivery performance rating out of 5.00"
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientAddressRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientBankingInformationRequest"
                            }
                        ],
                        "nullable": true
                    }
                }
            },
            "Person": {
                "type": "object",
                "description": "Person model with nested user information and related data.\nSupports reading + writing nested Address/Employee/Banking.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "user": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/User"
                            }
                        ],
                        "readOnly": true
                    },
                    "current_language": {
                        "enum": [
                            "en",
                            "sw",
                            "de",
                            "es",
                            "hi",
                            "ar",
                            "ko",
                            "pt",
                            "af",
                            "el",
                            "fr",
                            "ta",
                            "ru",
                            "zh-hans"
                        ],
                        "type": "string",
                        "description": "* `en` - English\n* `sw` - Swahili\n* `de` - German\n* `es` - Spanish\n* `hi` - Hindi\n* `ar` - Arabic\n* `ko` - Korean\n* `pt` - Portuguese\n* `af` - Afrikaans\n* `el` - Greek\n* `fr` - French\n* `ta` - Tamil\n* `ru` - Russian\n* `zh-hans` - Simplified Chinese",
                        "x-spec-enum-id": "fb7dcad8f9a9bdd1"
                    },
                    "language_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "profile_picture_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "readOnly": true
                    },
                    "job_title": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "is_owner": {
                        "type": "boolean"
                    },
                    "user_type": {
                        "enum": [
                            "user",
                            "employee"
                        ],
                        "type": "string",
                        "description": "* `user` - Regular User\n* `employee` - Employee",
                        "x-spec-enum-id": "68c56211e4ec1e64"
                    },
                    "user_type_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "organisation_details": {
                        "type": "object",
                        "additionalProperties": {},
                        "nullable": true,
                        "readOnly": true
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Address"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/BankingInformation"
                            }
                        ],
                        "nullable": true
                    },
                    "employee_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/EmployeeInformation"
                            }
                        ],
                        "nullable": true
                    },
                    "last_login": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "language_display",
                    "organisation_details",
                    "profile_picture_url",
                    "user",
                    "user_type_display"
                ]
            },
            "PersonRequest": {
                "type": "object",
                "description": "Person model with nested user information and related data.\nSupports reading + writing nested Address/Employee/Banking.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "current_language": {
                        "enum": [
                            "en",
                            "sw",
                            "de",
                            "es",
                            "hi",
                            "ar",
                            "ko",
                            "pt",
                            "af",
                            "el",
                            "fr",
                            "ta",
                            "ru",
                            "zh-hans"
                        ],
                        "type": "string",
                        "description": "* `en` - English\n* `sw` - Swahili\n* `de` - German\n* `es` - Spanish\n* `hi` - Hindi\n* `ar` - Arabic\n* `ko` - Korean\n* `pt` - Portuguese\n* `af` - Afrikaans\n* `el` - Greek\n* `fr` - French\n* `ta` - Tamil\n* `ru` - Russian\n* `zh-hans` - Simplified Chinese",
                        "x-spec-enum-id": "fb7dcad8f9a9bdd1"
                    },
                    "job_title": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "is_owner": {
                        "type": "boolean"
                    },
                    "user_type": {
                        "enum": [
                            "user",
                            "employee"
                        ],
                        "type": "string",
                        "description": "* `user` - Regular User\n* `employee` - Employee",
                        "x-spec-enum-id": "68c56211e4ec1e64"
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AddressRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/BankingInformationRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "employee_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/EmployeeInformationRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "last_login": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                }
            },
            "ProductDetail": {
                "type": "object",
                "description": "Detailed serializer for single product retrieval.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "description": {
                        "type": "string",
                        "readOnly": true
                    },
                    "short_description": {
                        "type": "string",
                        "readOnly": true
                    },
                    "product_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "barcode": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "product_type": {
                        "enum": [
                            "manufacture",
                            "buy"
                        ],
                        "type": "string",
                        "description": "* `manufacture` - Manufacture\n* `buy` - Buy",
                        "x-spec-enum-id": "4ba813202340aff4"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "brand": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "model_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "unit_of_measure": {
                        "enum": [
                            "piece",
                            "kg",
                            "gram",
                            "liter",
                            "meter",
                            "square_meter",
                            "cubic_meter",
                            "hour",
                            "day",
                            "month",
                            "year",
                            "box",
                            "pack",
                            "dozen",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `piece` - Piece\n* `kg` - Kilogram\n* `gram` - Gram\n* `liter` - Liter\n* `meter` - Meter\n* `square_meter` - Square Meter\n* `cubic_meter` - Cubic Meter\n* `hour` - Hour\n* `day` - Day\n* `month` - Month\n* `year` - Year\n* `box` - Box\n* `pack` - Pack\n* `dozen` - Dozen\n* `other` - Other",
                        "x-spec-enum-id": "afc5126f7b55fda1"
                    },
                    "cost_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Cost price per unit"
                    },
                    "selling_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Selling price per unit"
                    },
                    "current_stock": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "minimum_stock_level": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "maximum_stock_level": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "discontinued",
                            "out_of_stock"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `discontinued` - Discontinued\n* `out_of_stock` - Out of Stock",
                        "x-spec-enum-id": "06b238dca0833e84"
                    },
                    "image_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "readOnly": true
                    },
                    "supplier_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ProductPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "is_low_stock": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "profit_margin": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "created_by",
                    "description",
                    "image_url",
                    "is_low_stock",
                    "name",
                    "profit_margin",
                    "short_description"
                ]
            },
            "ProductList": {
                "type": "object",
                "description": "Lightweight serializer for product lists.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "short_description": {
                        "type": "string",
                        "readOnly": true
                    },
                    "product_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "barcode": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "product_type": {
                        "enum": [
                            "manufacture",
                            "buy"
                        ],
                        "type": "string",
                        "description": "* `manufacture` - Manufacture\n* `buy` - Buy",
                        "x-spec-enum-id": "4ba813202340aff4"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "brand": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "selling_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Selling price per unit"
                    },
                    "current_stock": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "minimum_stock_level": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "unit_of_measure": {
                        "enum": [
                            "piece",
                            "kg",
                            "gram",
                            "liter",
                            "meter",
                            "square_meter",
                            "cubic_meter",
                            "hour",
                            "day",
                            "month",
                            "year",
                            "box",
                            "pack",
                            "dozen",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `piece` - Piece\n* `kg` - Kilogram\n* `gram` - Gram\n* `liter` - Liter\n* `meter` - Meter\n* `square_meter` - Square Meter\n* `cubic_meter` - Cubic Meter\n* `hour` - Hour\n* `day` - Day\n* `month` - Month\n* `year` - Year\n* `box` - Box\n* `pack` - Pack\n* `dozen` - Dozen\n* `other` - Other",
                        "x-spec-enum-id": "afc5126f7b55fda1"
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "discontinued",
                            "out_of_stock"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `discontinued` - Discontinued\n* `out_of_stock` - Out of Stock",
                        "x-spec-enum-id": "06b238dca0833e84"
                    },
                    "is_low_stock": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "image_url": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "image_url",
                    "is_low_stock",
                    "name",
                    "short_description"
                ]
            },
            "ProductPersonMini": {
                "type": "object",
                "description": "Lightweight serializer for Person references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "full_name": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    }
                },
                "required": [
                    "full_name"
                ]
            },
            "ProductPersonMiniRequest": {
                "type": "object",
                "description": "Lightweight serializer for Person references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    }
                }
            },
            "ProductRequest": {
                "type": "object",
                "description": "Full serializer for Product creation and updates.\nHandles translatable fields correctly.",
                "properties": {
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "short_description": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 500
                    },
                    "product_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "barcode": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "product_type": {
                        "enum": [
                            "manufacture",
                            "buy"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "4ba813202340aff4",
                        "description": "Product type is required.\n\n* `manufacture` - Manufacture\n* `buy` - Buy"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "brand": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "model_number": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "unit_of_measure": {
                        "enum": [
                            "piece",
                            "kg",
                            "gram",
                            "liter",
                            "meter",
                            "square_meter",
                            "cubic_meter",
                            "hour",
                            "day",
                            "month",
                            "year",
                            "box",
                            "pack",
                            "dozen",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `piece` - Piece\n* `kg` - Kilogram\n* `gram` - Gram\n* `liter` - Liter\n* `meter` - Meter\n* `square_meter` - Square Meter\n* `cubic_meter` - Cubic Meter\n* `hour` - Hour\n* `day` - Day\n* `month` - Month\n* `year` - Year\n* `box` - Box\n* `pack` - Pack\n* `dozen` - Dozen\n* `other` - Other",
                        "x-spec-enum-id": "afc5126f7b55fda1"
                    },
                    "cost_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Cost price per unit"
                    },
                    "selling_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Selling price per unit"
                    },
                    "current_stock": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "minimum_stock_level": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "maximum_stock_level": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "discontinued",
                            "out_of_stock"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `discontinued` - Discontinued\n* `out_of_stock` - Out of Stock",
                        "x-spec-enum-id": "06b238dca0833e84"
                    },
                    "image": {
                        "type": "string",
                        "format": "binary",
                        "nullable": true,
                        "title": "Product Image",
                        "description": "Product image for catalogs and invoices"
                    },
                    "supplier_name": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 300
                    }
                },
                "required": [
                    "name",
                    "product_type"
                ]
            },
            "Quote": {
                "type": "object",
                "description": "Comprehensive serializer for Quote model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "terms_and_conditions": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "quote_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "sent",
                            "viewed",
                            "accepted",
                            "rejected",
                            "expired",
                            "converted"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `sent` - Sent\n* `viewed` - Viewed by Client\n* `accepted` - Accepted\n* `rejected` - Rejected\n* `expired` - Expired\n* `converted` - Converted to Invoice",
                        "x-spec-enum-id": "558490999f1e19fb"
                    },
                    "status_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "quote_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "valid_until": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "sent_date": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "subtotal": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Calculated from line items"
                    },
                    "total_tax_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Total VAT/tax from all line items"
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Subtotal + Total Tax Amount"
                    },
                    "is_expired": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "currency": {
                        "type": "string",
                        "readOnly": true
                    },
                    "client": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinanceClientMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/QuoteItem"
                        }
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinancePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "client",
                    "created_by",
                    "currency",
                    "date_created",
                    "is_expired",
                    "last_updated",
                    "quote_number",
                    "sent_date",
                    "status_display",
                    "subtotal",
                    "title",
                    "total_amount",
                    "total_tax_amount"
                ]
            },
            "QuoteItem": {
                "type": "object",
                "description": "Serializer for quote line items.",
                "properties": {
                    "item_name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "quantity": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "unit_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "discount_percentage": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Discount %"
                    },
                    "vat_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "VAT Rate (%)",
                        "description": "VAT/tax rate percentage for this line item"
                    },
                    "currency": {
                        "type": "string",
                        "description": "Currency code (ISO 4217) for this line item",
                        "maxLength": 3
                    },
                    "line_subtotal": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "line_vat_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    },
                    "line_total": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$",
                        "readOnly": true
                    }
                },
                "required": [
                    "item_name",
                    "line_subtotal",
                    "line_total",
                    "line_vat_amount",
                    "quantity",
                    "unit_price"
                ]
            },
            "QuoteItemRequest": {
                "type": "object",
                "description": "Serializer for quote line items.",
                "properties": {
                    "product_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "service_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "quantity": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "unit_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$"
                    },
                    "discount_percentage": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Discount %"
                    },
                    "vat_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "VAT Rate (%)",
                        "description": "VAT/tax rate percentage for this line item"
                    },
                    "currency": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Currency code (ISO 4217) for this line item",
                        "maxLength": 3
                    }
                },
                "required": [
                    "quantity",
                    "unit_price"
                ]
            },
            "QuoteList": {
                "type": "object",
                "description": "Lightweight version for list views.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string"
                    },
                    "quote_number": {
                        "type": "string",
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "sent",
                            "viewed",
                            "accepted",
                            "rejected",
                            "expired",
                            "converted"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `sent` - Sent\n* `viewed` - Viewed by Client\n* `accepted` - Accepted\n* `rejected` - Rejected\n* `expired` - Expired\n* `converted` - Converted to Invoice",
                        "x-spec-enum-id": "558490999f1e19fb"
                    },
                    "status_display": {
                        "type": "string",
                        "readOnly": true
                    },
                    "quote_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "valid_until": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "total_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "readOnly": true,
                        "description": "Subtotal + Total Tax Amount"
                    },
                    "is_expired": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "currency": {
                        "type": "string",
                        "readOnly": true
                    },
                    "client": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/FinanceClientMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "client",
                    "currency",
                    "date_created",
                    "is_expired",
                    "quote_number",
                    "status_display",
                    "title",
                    "total_amount"
                ]
            },
            "QuoteRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Quote model.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "title": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "terms_and_conditions": {
                        "type": "string",
                        "nullable": true
                    },
                    "notes": {
                        "type": "string",
                        "nullable": true
                    },
                    "quote_number": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                    },
                    "status": {
                        "enum": [
                            "draft",
                            "sent",
                            "viewed",
                            "accepted",
                            "rejected",
                            "expired",
                            "converted"
                        ],
                        "type": "string",
                        "description": "* `draft` - Draft\n* `sent` - Sent\n* `viewed` - Viewed by Client\n* `accepted` - Accepted\n* `rejected` - Rejected\n* `expired` - Expired\n* `converted` - Converted to Invoice",
                        "x-spec-enum-id": "558490999f1e19fb"
                    },
                    "quote_date": {
                        "type": "string",
                        "format": "date"
                    },
                    "valid_until": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "client_id": {
                        "type": "string",
                        "writeOnly": true,
                        "nullable": true,
                        "minLength": 1
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/QuoteItemRequest"
                        }
                    }
                },
                "required": [
                    "quote_number",
                    "title"
                ]
            },
            "SalesStage": {
                "type": "object",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "probability": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Win Probability %",
                        "description": "Probability of winning deals in this stage (0-100)"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "is_closed_won": {
                        "type": "boolean"
                    },
                    "is_closed_lost": {
                        "type": "boolean"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true
                    }
                },
                "required": [
                    "date_created",
                    "last_updated",
                    "name"
                ]
            },
            "SalesStageRequest": {
                "type": "object",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "probability": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,3}(?:\\.\\d{0,2})?$",
                        "title": "Win Probability %",
                        "description": "Probability of winning deals in this stage (0-100)"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "is_closed_won": {
                        "type": "boolean"
                    },
                    "is_closed_lost": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "name"
                ]
            },
            "ServiceDetail": {
                "type": "object",
                "description": "Detailed serializer for single service retrieval.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "description": {
                        "type": "string",
                        "readOnly": true
                    },
                    "short_description": {
                        "type": "string",
                        "readOnly": true
                    },
                    "service_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "service_type": {
                        "enum": [
                            "hourly",
                            "fixed",
                            "subscription",
                            "project",
                            "consultation",
                            "maintenance",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `hourly` - Hourly Service\n* `fixed` - Fixed Price Service\n* `subscription` - Subscription Service\n* `project` - Project-based Service\n* `consultation` - Consultation Service\n* `maintenance` - Maintenance Service\n* `other` - Other",
                        "x-spec-enum-id": "6282682b6910b7b0"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "hourly_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Rate per hour for hourly services"
                    },
                    "fixed_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Fixed price for the service"
                    },
                    "effective_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "readOnly": true
                    },
                    "billing_cycle": {
                        "enum": [
                            "one_time",
                            "hourly",
                            "daily",
                            "weekly",
                            "monthly",
                            "quarterly",
                            "annually"
                        ],
                        "type": "string",
                        "description": "* `one_time` - One Time\n* `hourly` - Hourly\n* `daily` - Daily\n* `weekly` - Weekly\n* `monthly` - Monthly\n* `quarterly` - Quarterly\n* `annually` - Annually",
                        "x-spec-enum-id": "b06a983a7f5a8c6b"
                    },
                    "estimated_duration_hours": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,6}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Estimated Duration (Hours)",
                        "description": "Estimated time to complete the service"
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "discontinued"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `discontinued` - Discontinued",
                        "x-spec-enum-id": "79a8457244fbe617"
                    },
                    "requirements": {
                        "type": "string",
                        "nullable": true
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ServicePersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "created_by",
                    "description",
                    "effective_rate",
                    "name",
                    "short_description"
                ]
            },
            "ServiceList": {
                "type": "object",
                "description": "Lightweight serializer for service lists.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "short_description": {
                        "type": "string",
                        "readOnly": true
                    },
                    "service_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "service_type": {
                        "enum": [
                            "hourly",
                            "fixed",
                            "subscription",
                            "project",
                            "consultation",
                            "maintenance",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `hourly` - Hourly Service\n* `fixed` - Fixed Price Service\n* `subscription` - Subscription Service\n* `project` - Project-based Service\n* `consultation` - Consultation Service\n* `maintenance` - Maintenance Service\n* `other` - Other",
                        "x-spec-enum-id": "6282682b6910b7b0"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "hourly_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Rate per hour for hourly services"
                    },
                    "fixed_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Fixed price for the service"
                    },
                    "effective_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "readOnly": true
                    },
                    "billing_cycle": {
                        "enum": [
                            "one_time",
                            "hourly",
                            "daily",
                            "weekly",
                            "monthly",
                            "quarterly",
                            "annually"
                        ],
                        "type": "string",
                        "description": "* `one_time` - One Time\n* `hourly` - Hourly\n* `daily` - Daily\n* `weekly` - Weekly\n* `monthly` - Monthly\n* `quarterly` - Quarterly\n* `annually` - Annually",
                        "x-spec-enum-id": "b06a983a7f5a8c6b"
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "discontinued"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `discontinued` - Discontinued",
                        "x-spec-enum-id": "79a8457244fbe617"
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                    }
                },
                "required": [
                    "effective_rate",
                    "name",
                    "short_description"
                ]
            },
            "ServicePersonMini": {
                "type": "object",
                "description": "Lightweight serializer for Person references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "full_name": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    }
                },
                "required": [
                    "full_name"
                ]
            },
            "ServicePersonMiniRequest": {
                "type": "object",
                "description": "Lightweight serializer for Person references.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    }
                }
            },
            "ServiceRequest": {
                "type": "object",
                "description": "Full serializer for Service creation and updates.\nHandles translatable fields correctly.",
                "properties": {
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "short_description": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 500
                    },
                    "service_code": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "service_type": {
                        "enum": [
                            "hourly",
                            "fixed",
                            "subscription",
                            "project",
                            "consultation",
                            "maintenance",
                            "other"
                        ],
                        "type": "string",
                        "x-spec-enum-id": "6282682b6910b7b0",
                        "description": "Service type: hourly, fixed, subscription, project, consultation, maintenance, or other\n\n* `hourly` - Hourly Service\n* `fixed` - Fixed Price Service\n* `subscription` - Subscription Service\n* `project` - Project-based Service\n* `consultation` - Consultation Service\n* `maintenance` - Maintenance Service\n* `other` - Other"
                    },
                    "category": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 200
                    },
                    "hourly_rate": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Rate per hour for hourly services"
                    },
                    "fixed_price": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Fixed price for the service"
                    },
                    "billing_cycle": {
                        "enum": [
                            "one_time",
                            "hourly",
                            "daily",
                            "weekly",
                            "monthly",
                            "quarterly",
                            "annually"
                        ],
                        "type": "string",
                        "description": "* `one_time` - One Time\n* `hourly` - Hourly\n* `daily` - Daily\n* `weekly` - Weekly\n* `monthly` - Monthly\n* `quarterly` - Quarterly\n* `annually` - Annually",
                        "x-spec-enum-id": "b06a983a7f5a8c6b"
                    },
                    "estimated_duration_hours": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,6}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "title": "Estimated Duration (Hours)",
                        "description": "Estimated time to complete the service"
                    },
                    "status": {
                        "enum": [
                            "active",
                            "inactive",
                            "discontinued"
                        ],
                        "type": "string",
                        "description": "* `active` - Active\n* `inactive` - Inactive\n* `discontinued` - Discontinued",
                        "x-spec-enum-id": "79a8457244fbe617"
                    },
                    "requirements": {
                        "type": "string",
                        "nullable": true
                    }
                },
                "required": [
                    "name",
                    "service_type"
                ]
            },
            "User": {
                "type": "object",
                "properties": {
                    "first_name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "last_name": {
                        "type": "string",
                        "readOnly": true
                    },
                    "email": {
                        "type": "string",
                        "format": "email",
                        "readOnly": true,
                        "title": "Email address"
                    }
                },
                "required": [
                    "email",
                    "first_name",
                    "last_name"
                ]
            },
            "Vendor": {
                "type": "object",
                "description": "Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "entity_type": {
                        "enum": [
                            "individual",
                            "company",
                            "non_profit",
                            "government",
                            "partnership",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other",
                        "x-spec-enum-id": "e63a18a548d49954"
                    },
                    "entity_type_display": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "vendor_status": {
                        "enum": [
                            "potential",
                            "active",
                            "preferred",
                            "on_hold",
                            "inactive",
                            "blacklisted"
                        ],
                        "type": "string",
                        "description": "* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted",
                        "x-spec-enum-id": "5dedd7da0bf1036e"
                    },
                    "vendor_status_display": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "vendor_category": {
                        "enum": [
                            "goods",
                            "services",
                            "both",
                            "contractor",
                            "consultant",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other",
                        "x-spec-enum-id": "199d59550e1029be"
                    },
                    "vendor_category_display": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "industry": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "industry_display": {
                        "type": "string",
                        "nullable": true,
                        "readOnly": true
                    },
                    "website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "company_size": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "annual_revenue": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Annual revenue in USD"
                    },
                    "minimum_order_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Minimum order amount required"
                    },
                    "default_currency": {
                        "type": "string",
                        "description": "Default currency code (ISO 4217) for this entity's transactions",
                        "maxLength": 3
                    },
                    "first_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "next_follow_up_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_order_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "contract_start_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "contract_end_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "quality_rating": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,1}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Quality rating out of 5.00"
                    },
                    "delivery_rating": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,1}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Delivery performance rating out of 5.00"
                    },
                    "created_by": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "assigned_to": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "account_owner": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientPersonMini"
                            }
                        ],
                        "readOnly": true
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientAddress"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientBankingInformation"
                            }
                        ],
                        "nullable": true
                    },
                    "days_since_last_contact": {
                        "type": "integer",
                        "nullable": true,
                        "readOnly": true
                    },
                    "days_since_last_order": {
                        "type": "integer",
                        "nullable": true,
                        "readOnly": true
                    },
                    "is_follow_up_overdue": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "is_contract_active": {
                        "type": "boolean",
                        "readOnly": true
                    },
                    "date_created": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    },
                    "last_updated": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "nullable": true
                    }
                },
                "required": [
                    "account_owner",
                    "assigned_to",
                    "created_by",
                    "date_created",
                    "days_since_last_contact",
                    "days_since_last_order",
                    "entity_type_display",
                    "industry_display",
                    "is_contract_active",
                    "is_follow_up_overdue",
                    "last_updated",
                    "name",
                    "vendor_category_display",
                    "vendor_status_display"
                ]
            },
            "VendorRequest": {
                "type": "object",
                "description": "Comprehensive serializer for Vendor model.\nHandles multilingual fields, nested relationships, computed fields, and vendor-specific metrics.",
                "properties": {
                    "unique_id": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 300
                    },
                    "description": {
                        "type": "string",
                        "nullable": true
                    },
                    "entity_type": {
                        "enum": [
                            "individual",
                            "company",
                            "non_profit",
                            "government",
                            "partnership",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `individual` - Individual\n* `company` - Company\n* `non_profit` - Non-Profit Organization\n* `government` - Government Entity\n* `partnership` - Partnership\n* `other` - Other",
                        "x-spec-enum-id": "e63a18a548d49954"
                    },
                    "vendor_status": {
                        "enum": [
                            "potential",
                            "active",
                            "preferred",
                            "on_hold",
                            "inactive",
                            "blacklisted"
                        ],
                        "type": "string",
                        "description": "* `potential` - Potential Vendor\n* `active` - Active Vendor\n* `preferred` - Preferred Vendor\n* `on_hold` - On Hold\n* `inactive` - Inactive\n* `blacklisted` - Blacklisted",
                        "x-spec-enum-id": "5dedd7da0bf1036e"
                    },
                    "vendor_category": {
                        "enum": [
                            "goods",
                            "services",
                            "both",
                            "contractor",
                            "consultant",
                            "other"
                        ],
                        "type": "string",
                        "description": "* `goods` - Goods Supplier\n* `services` - Service Provider\n* `both` - Goods & Services\n* `contractor` - Contractor\n* `consultant` - Consultant\n* `other` - Other",
                        "x-spec-enum-id": "199d59550e1029be"
                    },
                    "industry": {
                        "enum": [
                            "agriculture",
                            "cleaning",
                            "construction",
                            "consulting",
                            "creative",
                            "education",
                            "events",
                            "handyman",
                            "health",
                            "home_based",
                            "hospitality",
                            "it_support",
                            "legal",
                            "logistics",
                            "manufacturing",
                            "marketing",
                            "music",
                            "non_profit",
                            "online_retail",
                            "photography",
                            "printing",
                            "professional",
                            "travel",
                            "utilities",
                            "wholesale",
                            "writing",
                            "virtual_assistance",
                            "other",
                            "",
                            null
                        ],
                        "type": "string",
                        "description": "* `agriculture` - Agriculture and Farming\n* `cleaning` - Cleaning Services\n* `construction` - Construction and Real Estate Services\n* `consulting` - Consulting and Freelancing\n* `creative` - Creative and Design Services\n* `education` - Education and Tutoring Services\n* `events` - Entertainment and Events Planning\n* `handyman` - Handyman and Home Repair Services\n* `health` - Health and Wellness\n* `home_based` - Home-Based Businesses\n* `hospitality` - Hospitality and Tourism\n* `it_support` - IT and Software Support Services\n* `legal` - Legal and Financial Services\n* `logistics` - Logistics and Delivery Services\n* `manufacturing` - Manufacturing and Small-Scale Production\n* `marketing` - Marketing and Advertising Services\n* `music` - Music and Entertainment Services\n* `non_profit` - Non-Profit and Social Enterprises\n* `online_retail` - Online Retail and E-commerce\n* `photography` - Photography and Videography Services\n* `printing` - Printing and Copy Services\n* `professional` - Professional Services\n* `travel` - Travel Agencies\n* `utilities` - Utilities and Renewable Energy Services\n* `wholesale` - Wholesale and Distribution\n* `writing` - Writing and Editing Services\n* `virtual_assistance` - Virtual Assistance and Admin Support\n* `other` - Other",
                        "x-spec-enum-id": "3a3d41026cd5f5ce",
                        "nullable": true
                    },
                    "website": {
                        "type": "string",
                        "format": "uri",
                        "nullable": true,
                        "maxLength": 300
                    },
                    "company_size": {
                        "type": "string",
                        "nullable": true,
                        "maxLength": 100
                    },
                    "annual_revenue": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Annual revenue in USD"
                    },
                    "minimum_order_amount": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,13}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Minimum order amount required"
                    },
                    "default_currency": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Default currency code (ISO 4217) for this entity's transactions",
                        "maxLength": 3
                    },
                    "first_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_contact_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "next_follow_up_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "last_order_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "contract_start_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "contract_end_date": {
                        "type": "string",
                        "format": "date",
                        "nullable": true
                    },
                    "quality_rating": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,1}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Quality rating out of 5.00"
                    },
                    "delivery_rating": {
                        "type": "string",
                        "format": "decimal",
                        "pattern": "^-?\\d{0,1}(?:\\.\\d{0,2})?$",
                        "nullable": true,
                        "description": "Delivery performance rating out of 5.00"
                    },
                    "address": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientAddressRequest"
                            }
                        ],
                        "nullable": true
                    },
                    "banking_information": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/ClientBankingInformationRequest"
                            }
                        ],
                        "nullable": true
                    }
                },
                "required": [
                    "name"
                ]
            }
        },
        "securitySchemes": {
            "basicAuth": {
                "type": "http",
                "scheme": "basic"
            },
            "cookieAuth": {
                "type": "apiKey",
                "in": "cookie",
                "name": "sessionid"
            }
        }
    },
    "servers": [
        {
            "url": "https://skhokho.ai",
            "description": "Production"
        },
        {
            "url": "http://102.209.118.152:8000/",
            "description": "Local"
        },
        {
            "url": "https://dev.skhokho.ai",
            "description": "Development"
        }
    ]
}