<models.py>
from database import Base
from sqlalchemy import Column, Integer, Float, String, ForeignKey, DateTime
from sqlalchemy.orm import relationship
import datetime
class User(Base):
__tablename__ = "user"
id = Column(Integer, primary_key=True, index=True)
user_name = Column(String(32))
user_email = Column(String(32))
memos = relationship("Memo", back_populates="writer")
class Point(Base):
__tablename__ = 'point'
id = Column(Integer, primary_key=True, index=True)
postal_code = Column(String(32))
memos = relationship("Memo", back_populates="postbox")
class Memo(Base):
__tablename__ = 'memo'
id = Column(Integer, primary_key=True, index=True)
user_id = Column(Integer, ForeignKey("user.id"))
point_id = Column(Integer, ForeignKey("point.id"))
memo_type = Column(Integer) #0:public 1:private
memo_content = Column(String(32))
created_at = Column(DateTime, default=datetime.datetime.utcnow)
writer = relationship("User", back_populates="memos")
postbox = relationship("Point", back_populates="memos")
<schemas.py>
from typing import List
import datetime
from pydantic import BaseModel
class Memo(BaseModel):
user_id : int
point_id : int
memo_type : int
memo_content : str
created_at : datetime.datetime
class Config:
orm_mode = True
class User(BaseModel):
user_name : str
user_email : str
memos : List[Memo] = []
class Config:
orm_mode = True
class Point(BaseModel):
postal_code : str
memos : List[Memo] = []
class Config:
orm_mode = True