146 lines
3.1 KiB
JSON
146 lines
3.1 KiB
JSON
{
|
|
"name": "Team",
|
|
"type": "object",
|
|
"properties": {
|
|
"team_name": {
|
|
"type": "string",
|
|
"description": "Name of the team"
|
|
},
|
|
"owner_id": {
|
|
"type": "string",
|
|
"description": "ID of the team owner (user)"
|
|
},
|
|
"owner_name": {
|
|
"type": "string",
|
|
"description": "Name of the team owner"
|
|
},
|
|
"owner_role": {
|
|
"type": "string",
|
|
"enum": [
|
|
"admin",
|
|
"procurement",
|
|
"operator",
|
|
"sector",
|
|
"client",
|
|
"vendor",
|
|
"workforce"
|
|
],
|
|
"description": "Role of the team owner"
|
|
},
|
|
"company_logo": {
|
|
"type": "string",
|
|
"description": "URL to company logo"
|
|
},
|
|
"full_name": {
|
|
"type": "string",
|
|
"description": "Full name of primary contact"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"format": "email",
|
|
"description": "Contact email"
|
|
},
|
|
"phone": {
|
|
"type": "string",
|
|
"description": "Contact phone"
|
|
},
|
|
"address": {
|
|
"type": "string",
|
|
"description": "Company address"
|
|
},
|
|
"city": {
|
|
"type": "string",
|
|
"description": "City"
|
|
},
|
|
"zip_code": {
|
|
"type": "string",
|
|
"description": "ZIP code"
|
|
},
|
|
"vendor_id": {
|
|
"type": "string",
|
|
"description": "Vendor ID if applicable"
|
|
},
|
|
"departments": {
|
|
"type": "array",
|
|
"description": "List of departments available for this team",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"total_members": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "Total team members"
|
|
},
|
|
"active_members": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "Active team members"
|
|
},
|
|
"total_hubs": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "Total hubs"
|
|
},
|
|
"favorite_staff": {
|
|
"type": "array",
|
|
"description": "Array of favorite staff IDs",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"staff_id": {
|
|
"type": "string"
|
|
},
|
|
"staff_name": {
|
|
"type": "string"
|
|
},
|
|
"position": {
|
|
"type": "string"
|
|
},
|
|
"added_date": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"blocked_staff": {
|
|
"type": "array",
|
|
"description": "Array of blocked staff IDs",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"staff_id": {
|
|
"type": "string"
|
|
},
|
|
"staff_name": {
|
|
"type": "string"
|
|
},
|
|
"reason": {
|
|
"type": "string"
|
|
},
|
|
"blocked_date": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"favorite_staff_count": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "Number of favorite staff"
|
|
},
|
|
"blocked_staff_count": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "Number of blocked staff"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_name",
|
|
"owner_id",
|
|
"owner_name",
|
|
"owner_role"
|
|
]
|
|
} |