Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, Field, EmailStr | |
| from typing import Optional | |
| from datetime import datetime | |
| class LoginRequest(BaseModel): | |
| """Request model for user login""" | |
| jira_email: EmailStr = Field(..., description="Jira account email") | |
| jira_api_token: str = Field(..., description="Jira API token") | |
| jira_server_url: str = Field(..., description="Jira server URL (e.g., https://yourcompany.atlassian.net)") | |
| class LoginResponse(BaseModel): | |
| """Response model after successful login""" | |
| access_token: str = Field(..., description="JWT access token") | |
| token_type: str = Field(default="bearer", description="Token type") | |
| expires_in: int = Field(..., description="Token expiration time in seconds") | |
| class UserCredentials(BaseModel): | |
| """User credentials stored in JWT token""" | |
| jira_email: str | |
| jira_server_url: str | |
| jira_api_token: str | |
| exp: Optional[datetime] = None | |
| class TokenData(BaseModel): | |
| """Data extracted from JWT token""" | |
| jira_email: Optional[str] = None | |
| jira_server_url: Optional[str] = None | |