34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from sqlalchemy import Column, Integer, String, Float, DateTime, Text
|
|
from sqlalchemy.sql import func
|
|
from app.core.database import Base
|
|
|
|
class Work(Base):
|
|
__tablename__ = "works"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
title = Column(String(255), nullable=False, index=True)
|
|
category = Column(String(100), index=True)
|
|
designer = Column(String(100))
|
|
level = Column(Integer, default=1)
|
|
level_text = Column(String(50))
|
|
|
|
# 文件路径
|
|
original_image = Column(String(500)) # 原图(高清)
|
|
watermarked_image = Column(String(500)) # 带水印图(详情页显示)
|
|
thumbnail_image = Column(String(500)) # 缩略图(列表显示)
|
|
|
|
# 价格
|
|
price = Column(Float, default=0.0) # 下载价格(元)
|
|
|
|
# 统计
|
|
views = Column(Integer, default=0) # 浏览量
|
|
downloads = Column(Integer, default=0) # 下载量
|
|
collects = Column(Integer, default=0) # 收藏量
|
|
|
|
# 描述
|
|
description = Column(Text, nullable=True)
|
|
tags = Column(String(500), nullable=True) # JSON 格式存储标签
|
|
|
|
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
|
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
|