Aryan Jain commited on
Commit
a17ec0b
·
1 Parent(s): f8067b7

add flag in rfp table

Browse files
alembic/versions/7fb86c16841c_add_flag_in_rfp_table.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """add flag in rfp table
2
+
3
+ Revision ID: 7fb86c16841c
4
+ Revises: b5d2f8b83d7e
5
+ Create Date: 2025-06-06 11:06:57.084499
6
+
7
+ """
8
+ from typing import Sequence, Union
9
+
10
+ from alembic import op
11
+ import sqlalchemy as sa
12
+
13
+
14
+ # revision identifiers, used by Alembic.
15
+ revision: str = '7fb86c16841c'
16
+ down_revision: Union[str, None] = 'b5d2f8b83d7e'
17
+ branch_labels: Union[str, Sequence[str], None] = None
18
+ depends_on: Union[str, Sequence[str], None] = None
19
+
20
+
21
+ def upgrade() -> None:
22
+ """Upgrade schema."""
23
+ op.add_column("rfps", sa.Column("flag", sa.Boolean(), nullable=True, server_default=sa.text("FALSE")))
24
+ op.execute("UPDATE rfps SET flag = FALSE")
25
+ op.alter_column(
26
+ "rfps",
27
+ "flag",
28
+ existing_type=sa.Boolean(),
29
+ nullable=False,
30
+ server_default=sa.text("FALSE"),
31
+ )
32
+
33
+
34
+ def downgrade() -> None:
35
+ """Downgrade schema."""
36
+ op.drop_column("rfps", "flag")
src/controllers/_rfp_controller.py CHANGED
@@ -23,6 +23,7 @@ class RFP(BaseModel):
23
  award_type: Optional[str] = None
24
  google_drive_id: Optional[str] = None
25
  status: RFPStatus
 
26
  created_at: datetime
27
  updated_at: datetime
28
 
@@ -42,6 +43,7 @@ class RFPRequest(BaseModel):
42
  award_type: Optional[str] = None
43
  google_drive_id: Optional[str] = None
44
  status: RFPStatus
 
45
  awaiting_evaluation: int
46
 
47
 
@@ -55,6 +57,7 @@ class RFPUpdateRequest(BaseModel):
55
  award_type: Optional[str] = None
56
  google_drive_id: Optional[str] = None
57
  status: Optional[RFPStatus] = None
 
58
  awaiting_evaluation: Optional[int] = None
59
 
60
 
@@ -129,7 +132,7 @@ class RFPController:
129
  async def create_rfp(self, rfp: RFPRequest):
130
  async with self.__rfp_service() as service:
131
  try:
132
- rfp = await service.create_rfp(rfp.model_dump())
133
  return ResponseRFP(status="success", data=[RFP(**rfp)])
134
  except HTTPException as e:
135
  logger.warning(e)
 
23
  award_type: Optional[str] = None
24
  google_drive_id: Optional[str] = None
25
  status: RFPStatus
26
+ flag: Optional[bool] = False
27
  created_at: datetime
28
  updated_at: datetime
29
 
 
43
  award_type: Optional[str] = None
44
  google_drive_id: Optional[str] = None
45
  status: RFPStatus
46
+ flag: Optional[bool] = False
47
  awaiting_evaluation: int
48
 
49
 
 
57
  award_type: Optional[str] = None
58
  google_drive_id: Optional[str] = None
59
  status: Optional[RFPStatus] = None
60
+ flag: Optional[bool] = None
61
  awaiting_evaluation: Optional[int] = None
62
 
63
 
 
132
  async def create_rfp(self, rfp: RFPRequest):
133
  async with self.__rfp_service() as service:
134
  try:
135
+ rfp = await service.create_rfp(rfp.model_dump(exclude_unset=True))
136
  return ResponseRFP(status="success", data=[RFP(**rfp)])
137
  except HTTPException as e:
138
  logger.warning(e)
src/models/_rfp.py CHANGED
@@ -1,6 +1,7 @@
1
  from enum import Enum as PyEnum
2
 
3
  from sqlalchemy import (
 
4
  Column,
5
  DateTime,
6
  Enum,
@@ -39,6 +40,7 @@ class RFP(Base):
39
  award_type = Column(String, nullable=True)
40
  google_drive_id = Column(String, nullable=True)
41
  status = Column(Enum(RFPStatus), nullable=False)
 
42
  created_at = Column(DateTime, nullable=False, default=func.now())
43
  updated_at = Column(
44
  DateTime, nullable=False, default=func.now(), onupdate=func.now()
 
1
  from enum import Enum as PyEnum
2
 
3
  from sqlalchemy import (
4
+ Boolean,
5
  Column,
6
  DateTime,
7
  Enum,
 
40
  award_type = Column(String, nullable=True)
41
  google_drive_id = Column(String, nullable=True)
42
  status = Column(Enum(RFPStatus), nullable=False)
43
+ flag = Column(Boolean(), nullable=True, default=False)
44
  created_at = Column(DateTime, nullable=False, default=func.now())
45
  updated_at = Column(
46
  DateTime, nullable=False, default=func.now(), onupdate=func.now()