36 lines
1.6 KiB
Python
36 lines
1.6 KiB
Python
import graphene
|
|
from graphene import InputObjectType
|
|
|
|
class ProfileCreateInput(InputObjectType):
|
|
"""
|
|
Input type for creating a new profile.
|
|
"""
|
|
user_id = graphene.ID(required=True, description="ID of the associated Django User")
|
|
first_name = graphene.String(required=True, description="First name of the user")
|
|
last_name = graphene.String(required=True, description="Last name of the user")
|
|
primary_phone = graphene.String(required=True, description="Primary phone number")
|
|
secondary_phone = graphene.String(description="Secondary phone number")
|
|
email = graphene.String(required=True, description="Email address")
|
|
role = graphene.String(required=True, description="Role (admin, team_leader, team_member)")
|
|
|
|
|
|
class ProfileUpdateInput(InputObjectType):
|
|
"""
|
|
Input type for updating an existing profile.
|
|
"""
|
|
id = graphene.ID(required=True, description="ID of the profile to update")
|
|
first_name = graphene.String(description="First name of the user")
|
|
last_name = graphene.String(description="Last name of the user")
|
|
primary_phone = graphene.String(description="Primary phone number")
|
|
secondary_phone = graphene.String(description="Secondary phone number")
|
|
email = graphene.String(description="Email address")
|
|
role = graphene.String(description="Role (admin, team_leader, team_member)")
|
|
|
|
|
|
class ProfileSearchInput(InputObjectType):
|
|
"""
|
|
Input type for searching profiles
|
|
"""
|
|
search_term = graphene.String(description="Search term to match against name, email, or phone")
|
|
role = graphene.String(description="Filter by role")
|
|
is_active = graphene.Boolean(description="Filter by active status") |