185 lines
4.1 KiB
JSON
185 lines
4.1 KiB
JSON
{
|
|
"name": "User",
|
|
"type": "object",
|
|
"properties": {
|
|
"full_name": {
|
|
"type": "string",
|
|
"description": "Full name of the user"
|
|
},
|
|
"user_role": {
|
|
"type": "string",
|
|
"enum": [
|
|
"admin",
|
|
"procurement",
|
|
"operator",
|
|
"sector",
|
|
"client",
|
|
"vendor",
|
|
"workforce"
|
|
],
|
|
"description": "User's role in the system"
|
|
},
|
|
"company_name": {
|
|
"type": "string",
|
|
"description": "Company or organization name"
|
|
},
|
|
"profile_picture": {
|
|
"type": "string",
|
|
"description": "URL to profile picture"
|
|
},
|
|
"phone": {
|
|
"type": "string",
|
|
"description": "Phone number"
|
|
},
|
|
"address": {
|
|
"type": "string",
|
|
"description": "Address"
|
|
},
|
|
"preferred_vendor_id": {
|
|
"type": "string",
|
|
"description": "ID of the client's preferred/default vendor"
|
|
},
|
|
"preferred_vendor_name": {
|
|
"type": "string",
|
|
"description": "Name of the client's preferred vendor"
|
|
},
|
|
"backup_vendor_ids": {
|
|
"type": "array",
|
|
"description": "List of backup vendor IDs",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"dashboard_layout": {
|
|
"type": "object",
|
|
"description": "User's customized dashboard layout preferences (legacy, kept for backward compatibility)",
|
|
"properties": {
|
|
"widgets": {
|
|
"type": "array",
|
|
"description": "Ordered list of visible widgets",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hidden_widgets": {
|
|
"type": "array",
|
|
"description": "List of hidden widgets",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"layout_version": {
|
|
"type": "string",
|
|
"description": "Layout version for migration"
|
|
}
|
|
}
|
|
},
|
|
"dashboard_layout_client": {
|
|
"type": "object",
|
|
"description": "Client dashboard layout",
|
|
"properties": {
|
|
"widgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hidden_widgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"layout_version": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dashboard_layout_vendor": {
|
|
"type": "object",
|
|
"description": "Vendor dashboard layout",
|
|
"properties": {
|
|
"widgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hidden_widgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"layout_version": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dashboard_layout_operator": {
|
|
"type": "object",
|
|
"description": "Operator dashboard layout",
|
|
"properties": {
|
|
"widgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hidden_widgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"layout_version": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"dashboard_layout_workforce": {
|
|
"type": "object",
|
|
"description": "Workforce dashboard layout",
|
|
"properties": {
|
|
"widgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hidden_widgets": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"layout_version": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"preferences": {
|
|
"type": "object",
|
|
"description": "User preferences and settings",
|
|
"properties": {
|
|
"theme": {
|
|
"type": "string",
|
|
"enum": [
|
|
"light",
|
|
"dark"
|
|
],
|
|
"default": "light"
|
|
},
|
|
"notifications_enabled": {
|
|
"type": "boolean",
|
|
"default": true
|
|
},
|
|
"email_notifications": {
|
|
"type": "boolean",
|
|
"default": true
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": []
|
|
} |