mirror of
https://github.com/henry4682/linebot_finance.git
synced 2026-05-16 04:41:52 +00:00
feat: linbot
restruct the project
This commit is contained in:
59
app/DB/Models.py
Normal file
59
app/DB/Models.py
Normal file
@@ -0,0 +1,59 @@
|
||||
from sqlalchemy import Column, String, Numeric, Date, DateTime, BigInteger
|
||||
from sqlalchemy.orm import declarative_base
|
||||
from datetime import datetime
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
|
||||
class User(Base):
|
||||
__tablename__ = "users"
|
||||
id = Column(BigInteger, primary_key=True)
|
||||
name = Column(String)
|
||||
email = Column(String, unique=True)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
|
||||
class LineUser(Base):
|
||||
__tablename__ = "line_users"
|
||||
id = Column(BigInteger, primary_key=True)
|
||||
line_user_id = Column(String, unique=True)
|
||||
user_id = Column(BigInteger)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
|
||||
class Category(Base):
|
||||
__tablename__ = "categories"
|
||||
id = Column(BigInteger, primary_key=True)
|
||||
user_id = Column(BigInteger)
|
||||
parent_id = Column(BigInteger, nullable=True)
|
||||
name = Column(String)
|
||||
color = Column(String, default='#3B82F6')
|
||||
icon = Column(String, nullable=True)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
|
||||
class CategoryRule(Base):
|
||||
__tablename__ = "category_rules"
|
||||
id = Column(BigInteger, primary_key=True)
|
||||
user_id = Column(BigInteger)
|
||||
category_id = Column(BigInteger)
|
||||
keyword = Column(String)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
|
||||
class Expense(Base):
|
||||
__tablename__ = "expenses"
|
||||
id = Column(BigInteger, primary_key=True)
|
||||
user_id = Column(BigInteger)
|
||||
category_id = Column(BigInteger, nullable=True)
|
||||
amount = Column(Numeric(10, 2))
|
||||
note = Column(String, nullable=True)
|
||||
invoice_number = Column(String, nullable=True)
|
||||
seller_name = Column(String, nullable=True)
|
||||
item_name = Column(String, nullable=True)
|
||||
date = Column(Date)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now)
|
||||
Reference in New Issue
Block a user