Hp137's picture
fix:notification data modified
b1da44c
from sqlalchemy.event.api import CANCEL
from pydantic import BaseModel, EmailStr, Field
from typing import Optional, List
import uuid
from enum import Enum
from datetime import date
from enum import Enum
class LeaveType(str, Enum):
SICK = "Sick"
CASUAL = "Casual"
EMERGENCY = "Emergency"
class LeaveStatus(str, Enum):
APPROVED = "Approved"
REJECTED = "Rejected"
PENDING = "Pending"
CANCELLED = "Cancelled"
class CreateLeaveRequest(BaseModel):
leave_type: LeaveType
from_date: date
to_date: date
days: int
reason: str
class ApproveRejectRequest(BaseModel):
status: LeaveStatus # APPROVED / REJECTED
comment: Optional[str] = None # optional for approve, required for reject
class LeaveDetail(BaseModel):
id: str
user_id: str
user_name: str # 👈 NEW FIELD
mentor_id: Optional[str]
lead_id: Optional[str]
leave_type: str
from_date: str
to_date: str
days: int
reason: str
status: str
reject_reason: Optional[str]
updated_at: Optional[str]
class LeaveDetailResponse(BaseModel):
code: int
data: LeaveDetail
class LeaveResponse(BaseModel):
id: str
leave_type: LeaveType
from_date: date
to_date: date
days: int
reason: str
status: LeaveStatus
mentor_id: str
lead_id: str
user_name: Optional[str] = None
updated_at: Optional[str] = None
requested_at: Optional[str] = None
class DeviceTokenIn(BaseModel):
device_token: str
device_type: Optional[str] = None
class AssetStatus(str, Enum):
ACTIVE = "Active"
UNAVAILABLE = "Unavailable"
ON_REQUEST = "On Request"
IN_SERVICE = "In Service"
class AssetCreateRequest(BaseModel):
name: str
type: str
status: Optional[AssetStatus] = AssetStatus.UNAVAILABLE
class AssetUpdateRequest(BaseModel):
name: Optional[str] = None
type: Optional[str] = None
status: Optional[AssetStatus] = None
class AssetResponse(BaseModel):
id: str
user_id: uuid.UUID
asset_id: str
type: str
status: AssetStatus
class BaseResponse(BaseModel):
code: int
data: dict
class UpdateProfileRequest(BaseModel):
name: Optional[str] = None
email: Optional[EmailStr] = None
dob: Optional[str] = None
address: Optional[str] = None
current_password: Optional[str] = None
new_password: Optional[str] = None
class SendMailRequest(BaseModel):
user_id: str
to: EmailStr
subject: str
body: str
from_name: Optional[str] = None