Spaces:
Sleeping
Sleeping
File size: 2,534 Bytes
9797175 d7cc4ba 20d48af 5dc2d03 d7cc4ba 5dc2d03 d7cc4ba 9797175 d7cc4ba 5dc2d03 d7cc4ba 5dc2d03 d7cc4ba 5dc2d03 5c780f1 5dc2d03 d7cc4ba 5dc2d03 d7cc4ba 5c780f1 b1da44c d7cc4ba 5dc2d03 20d48af 5078e89 20d48af 5078e89 20d48af 5078e89 20d48af 7d3bfe5 20d48af 618461c 20d48af 5078e89 20d48af 66536b4 5078e89 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | 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
|