Spaces:
Sleeping
Sleeping
shri-jai
commited on
Commit
·
679dfd8
1
Parent(s):
a5b469a
chore: added is_read on leave table
Browse files- alembic/versions/d9bb355538fd_add_is_read_to_leave_table.py +34 -0
- src/main.py +3 -8
- src/profile/models.py +2 -0
- src/profile/router.py +1 -1
alembic/versions/d9bb355538fd_add_is_read_to_leave_table.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""add is_read to leave table
|
| 2 |
+
|
| 3 |
+
Revision ID: d9bb355538fd
|
| 4 |
+
Revises: e95f62f91348
|
| 5 |
+
Create Date: 2025-11-25 16:43:45.584602
|
| 6 |
+
|
| 7 |
+
"""
|
| 8 |
+
from typing import Sequence, Union
|
| 9 |
+
|
| 10 |
+
from alembic import op
|
| 11 |
+
import sqlalchemy as sa
|
| 12 |
+
import sqlmodel.sql.sqltypes
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
# revision identifiers, used by Alembic.
|
| 16 |
+
revision: str = 'd9bb355538fd'
|
| 17 |
+
down_revision: Union[str, Sequence[str], None] = 'e95f62f91348'
|
| 18 |
+
branch_labels: Union[str, Sequence[str], None] = None
|
| 19 |
+
depends_on: Union[str, Sequence[str], None] = None
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
def upgrade():
|
| 23 |
+
op.add_column(
|
| 24 |
+
"leave",
|
| 25 |
+
sa.Column(
|
| 26 |
+
"is_read",
|
| 27 |
+
sa.Boolean(),
|
| 28 |
+
nullable=False,
|
| 29 |
+
server_default=sa.false()
|
| 30 |
+
)
|
| 31 |
+
)
|
| 32 |
+
|
| 33 |
+
def downgrade():
|
| 34 |
+
op.drop_column("leave", "is_read")
|
src/main.py
CHANGED
|
@@ -2,11 +2,11 @@ from fastapi import FastAPI
|
|
| 2 |
|
| 3 |
import os
|
| 4 |
from src.auth.router import router as auth_router
|
| 5 |
-
from src.chatbot.router import router as
|
| 6 |
from src.core.database import init_db
|
| 7 |
from src.home.router import router as home_router
|
| 8 |
from src.notifications.router import router as notifications_router
|
| 9 |
-
|
| 10 |
from fastapi.staticfiles import StaticFiles
|
| 11 |
|
| 12 |
|
|
@@ -17,16 +17,11 @@ app.include_router(home_router, prefix="/home", tags=["Home"])
|
|
| 17 |
|
| 18 |
# init_db()
|
| 19 |
|
| 20 |
-
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
| 21 |
-
AUDIO_DIR = os.path.join(BASE_DIR, "static", "audio")
|
| 22 |
-
|
| 23 |
app.include_router(profile)
|
| 24 |
-
app.mount("/static/audio", StaticFiles(directory=AUDIO_DIR), name="audio")
|
| 25 |
-
print("Serving audio from:", AUDIO_DIR)
|
| 26 |
|
| 27 |
app.include_router(auth_router)
|
| 28 |
|
| 29 |
-
app.include_router(
|
| 30 |
|
| 31 |
app.include_router(notifications_router)
|
| 32 |
|
|
|
|
| 2 |
|
| 3 |
import os
|
| 4 |
from src.auth.router import router as auth_router
|
| 5 |
+
from src.chatbot.router import router as chatbot_router
|
| 6 |
from src.core.database import init_db
|
| 7 |
from src.home.router import router as home_router
|
| 8 |
from src.notifications.router import router as notifications_router
|
| 9 |
+
from src.profile.router import router as profile
|
| 10 |
from fastapi.staticfiles import StaticFiles
|
| 11 |
|
| 12 |
|
|
|
|
| 17 |
|
| 18 |
# init_db()
|
| 19 |
|
|
|
|
|
|
|
|
|
|
| 20 |
app.include_router(profile)
|
|
|
|
|
|
|
| 21 |
|
| 22 |
app.include_router(auth_router)
|
| 23 |
|
| 24 |
+
app.include_router(chatbot_router)
|
| 25 |
|
| 26 |
app.include_router(notifications_router)
|
| 27 |
|
src/profile/models.py
CHANGED
|
@@ -15,6 +15,7 @@ class LeaveType(str, Enum):
|
|
| 15 |
class LeaveStatus(str, Enum):
|
| 16 |
APPROVED = "Approved"
|
| 17 |
REJECTED = "Rejected"
|
|
|
|
| 18 |
PENDING = "Pending"
|
| 19 |
|
| 20 |
class Leave(SQLModel, table=True):
|
|
@@ -30,6 +31,7 @@ class Leave(SQLModel, table=True):
|
|
| 30 |
reason: str = Field(nullable=True)
|
| 31 |
status: LeaveStatus = Field(default=LeaveStatus.PENDING)
|
| 32 |
is_delivered: bool = Field(default= False)
|
|
|
|
| 33 |
requested_at: date = Field(default_factory=date.today)
|
| 34 |
updated_at: date = Field(default_factory=date.today)
|
| 35 |
reject_reason: Optional[str] = None
|
|
|
|
| 15 |
class LeaveStatus(str, Enum):
|
| 16 |
APPROVED = "Approved"
|
| 17 |
REJECTED = "Rejected"
|
| 18 |
+
CANCELLED = "Cancelled"
|
| 19 |
PENDING = "Pending"
|
| 20 |
|
| 21 |
class Leave(SQLModel, table=True):
|
|
|
|
| 31 |
reason: str = Field(nullable=True)
|
| 32 |
status: LeaveStatus = Field(default=LeaveStatus.PENDING)
|
| 33 |
is_delivered: bool = Field(default= False)
|
| 34 |
+
is_read: bool = Field(default=False)
|
| 35 |
requested_at: date = Field(default_factory=date.today)
|
| 36 |
updated_at: date = Field(default_factory=date.today)
|
| 37 |
reject_reason: Optional[str] = None
|
src/profile/router.py
CHANGED
|
@@ -25,7 +25,7 @@ from src.profile.schemas import (
|
|
| 25 |
from src.profile.service import create_leave, mentor_decide_leave
|
| 26 |
|
| 27 |
|
| 28 |
-
|
| 29 |
|
| 30 |
|
| 31 |
@router.post("/request", response_model=LeaveResponse)
|
|
|
|
| 25 |
from src.profile.service import create_leave, mentor_decide_leave
|
| 26 |
|
| 27 |
|
| 28 |
+
router = APIRouter(prefix="/profile", tags=["Profile"])
|
| 29 |
|
| 30 |
|
| 31 |
@router.post("/request", response_model=LeaveResponse)
|