package app import ( "github.com/gin-gonic/gin" "simple-memo/utils" ) type ConstantsHandler interface { GetBillCategories(c *gin.Context) GetTodoCategories(c *gin.Context) GetMoodList(c *gin.Context) GetPayChannels(c *gin.Context) GetAllConstants(c *gin.Context) } type constantsHandler struct{} func NewConstantsHandler() ConstantsHandler { return &constantsHandler{} } var DEFAULT_CATE_LIST = []map[string]interface{}{ {"value": "food", "label": "餐饮", "icon": "🍚", "color": "#ff6b6b", "type": 1}, {"value": "transport", "label": "交通", "icon": "🚇", "color": "#4ecdc4", "type": 1}, {"value": "shopping", "label": "购物", "icon": "🛍️", "color": "#ffe66d", "type": 1}, {"value": "entertainment", "label": "娱乐", "icon": "🎮", "color": "#a855f7", "type": 1}, {"value": "home", "label": "居家", "icon": "🏠", "color": "#84b3d9", "type": 1}, {"value": "medical", "label": "医疗", "icon": "🏥", "color": "#ef4444", "type": 1}, {"value": "education", "label": "教育", "icon": "📚", "color": "#22c55e", "type": 1}, {"value": "social", "label": "社交", "icon": "👥", "color": "#f97316", "type": 1}, {"value": "digital", "label": "数码", "icon": "📱", "color": "#3b82f6", "type": 1}, {"value": "clothing", "label": "服饰", "icon": "👔", "color": "#ec4899", "type": 1}, {"value": "beauty", "label": "美容", "icon": "💄", "color": "#d946ef", "type": 1}, {"value": "sports", "label": "运动", "icon": "⚽", "color": "#10b981", "type": 1}, {"value": "pet", "label": "宠物", "icon": "🐶", "color": "#fbbf24", "type": 1}, {"value": "baby", "label": "育儿", "icon": "🍼", "color": "#fb7185", "type": 1}, {"value": "travel", "label": "旅游", "icon": "✈️", "color": "#06b6d4", "type": 1}, {"value": "other_expense", "label": "其他", "icon": "📦", "color": "#9ca3af", "type": 1}, {"value": "salary", "label": "工资", "icon": "💼", "color": "#22c55e", "type": 2}, {"value": "bonus", "label": "奖金", "icon": "🎁", "color": "#fbbf24", "type": 2}, {"value": "side_hustle", "label": "副业", "icon": "💻", "color": "#3b82f6", "type": 2}, {"value": "investment", "label": "理财", "icon": "📈", "color": "#a855f7", "type": 2}, {"value": "transfer", "label": "转账", "icon": "💳", "color": "#84b3d9", "type": 2}, {"value": "red_packet", "label": "红包", "icon": "🧧", "color": "#ef4444", "type": 2}, {"value": "other_income", "label": "其他", "icon": "🎯", "color": "#6b7280", "type": 2}, } var TODO_BASE_CATE = []map[string]interface{}{ {"value": "work", "label": "工作", "color": "#84b3d9"}, {"value": "life", "label": "生活", "color": "#a0d0e0"}, {"value": "study", "label": "学习", "color": "#b8d8e6"}, } var TODO_PRIORITY_LIST = []map[string]interface{}{ {"label": "高", "value": 1, "icon": "🔴"}, {"label": "中", "value": 2, "icon": "🟡"}, {"label": "低", "value": 3, "icon": "🟢"}, } var MOOD_LIST = []map[string]interface{}{ {"emoji": "😊", "label": "开心", "phrases": []string{"今天心情真好", "阳光灿烂的一天", "嘴角不自觉上扬", "满心欢喜"}}, {"emoji": "😌", "label": "平静", "phrases": []string{"岁月静好", "内心一片安宁", "享受这份宁静", "平和自在"}}, {"emoji": "😔", "label": "低落", "phrases": []string{"有点小忧伤", "心情沉沉的", "需要一点温暖", "静待花开"}}, {"emoji": "😤", "label": "生气", "phrases": []string{"有点烦躁呢", "深呼吸冷静一下", "需要冷静片刻", "平复一下心情"}}, {"emoji": "😴", "label": "疲惫", "phrases": []string{"有点累了", "好好休息一下", "给自己放个假", "累并快乐着"}}, {"emoji": "😰", "label": "焦虑", "phrases": []string{"有点担心", "相信一切会好", "慢慢来不着急", "放宽心"}}, {"emoji": "😄", "label": "兴奋", "phrases": []string{"超级开心!", "激动人心的时刻", "迫不及待了", "满心期待"}}, {"emoji": "🤔", "label": "思考", "phrases": []string{"正在思考中", "让我想想", "深思熟虑", "思绪万千"}}, {"emoji": "😢", "label": "难过", "phrases": []string{"有点难过", "需要一个拥抱", "一切都会过去", "明天会更好"}}, {"emoji": "😎", "label": "酷", "phrases": []string{"今天超酷的", "自信满满", "做自己就好", "洒脱自在"}}, {"emoji": "🥰", "label": "幸福", "phrases": []string{"被幸福包围", "甜蜜的感觉", "幸福感爆棚", "满心欢喜"}}, {"emoji": "😠", "label": "愤怒", "phrases": []string{"真的生气了", "需要冷静一下", "平复一下情绪", "深呼吸"}}, {"emoji": "🥳", "label": "庆祝", "phrases": []string{"值得庆祝!", "太棒了!", "举杯庆祝", "喜笑颜开"}}, {"emoji": "😱", "label": "惊讶", "phrases": []string{"哇!好惊喜", "太意外了", "不可思议", "令人震惊"}}, {"emoji": "😇", "label": "感恩", "phrases": []string{"心怀感恩", "感谢生活", "感恩遇见", "心存感激"}}, {"emoji": "💪", "label": "加油", "phrases": []string{"加油加油!", "相信自己", "勇往直前", "全力以赴"}}, {"emoji": "😘", "label": "害羞", "phrases": []string{"有点害羞", "不好意思啦", "脸红心跳", "羞涩一笑"}}, {"emoji": "🤩", "label": "崇拜", "phrases": []string{"超级崇拜!", "偶像光芒", "闪闪发光", "心生敬意"}}, {"emoji": "😪", "label": "困倦", "phrases": []string{"好困呀", "眼皮打架了", "需要小憩", "睡个好觉"}}, {"emoji": "😋", "label": "满足", "phrases": []string{"心满意足", "幸福感满满", "知足常乐", "十分满足"}}, } var PAY_CHANNELS = []map[string]interface{}{ {"value": "wechat", "label": "微信", "types": []int{1, 2}}, {"value": "alipay", "label": "支付宝", "types": []int{1, 2}}, {"value": "unionpay", "label": "云闪付", "types": []int{1, 2}}, {"value": "bank", "label": "银行卡", "types": []int{1, 2}}, {"value": "cash", "label": "现金", "types": []int{1, 2}}, {"value": "online_banking", "label": "网银", "types": []int{1, 2}}, {"value": "pos", "label": "POS机", "types": []int{1, 2}}, {"value": "other", "label": "其他", "types": []int{1, 2}}, {"value": "salary", "label": "工资", "types": []int{2}}, {"value": "red_packet", "label": "红包", "types": []int{2}}, {"value": "transfer_in", "label": "转账", "types": []int{2}}, {"value": "corporate", "label": "对公转账", "types": []int{2}}, {"value": "credit", "label": "信用卡", "types": []int{1}}, {"value": "huawei", "label": "花呗", "types": []int{1}}, {"value": "white", "label": "白条", "types": []int{1}}, {"value": "jd_pay", "label": "京东支付", "types": []int{1}}, {"value": "meituan_pay", "label": "美团支付", "types": []int{1}}, {"value": "gift_card", "label": "储值卡", "types": []int{1}}, } // AVATAR_BASE_URL 头像基础URL const AVATAR_BASE_URL = "/static/avatar/" // DEFAULT_AVATARS 默认头像列表 var DEFAULT_AVATARS = []map[string]interface{}{ {"url": AVATAR_BASE_URL + "ginger_cat.jpg", "name": "ginger_cat", "label": "橘猫"}, {"url": AVATAR_BASE_URL + "ragdoll.jpg", "name": "ragdoll", "label": "布偶猫"}, {"url": AVATAR_BASE_URL + "hamster.jpg", "name": "hamster", "label": "小仓鼠"}, {"url": AVATAR_BASE_URL + "dragon.jpg", "name": "dragon", "label": "龙"}, {"url": AVATAR_BASE_URL + "pony.jpg", "name": "pony", "label": "小马"}, {"url": AVATAR_BASE_URL + "lamb.jpg", "name": "lamb", "label": "小羊"}, {"url": AVATAR_BASE_URL + "corgi.jpg", "name": "corgi", "label": "柯基"}, {"url": AVATAR_BASE_URL + "piglet.jpg", "name": "piglet", "label": "小猪"}, } func (h *constantsHandler) GetBillCategories(c *gin.Context) { utils.Ok(c, DEFAULT_CATE_LIST) } func (h *constantsHandler) GetTodoCategories(c *gin.Context) { data := map[string]interface{}{ "categories": TODO_BASE_CATE, "priorities": TODO_PRIORITY_LIST, } utils.Ok(c, data) } func (h *constantsHandler) GetMoodList(c *gin.Context) { utils.Ok(c, MOOD_LIST) } func (h *constantsHandler) GetPayChannels(c *gin.Context) { utils.Ok(c, PAY_CHANNELS) } func (h *constantsHandler) GetAllConstants(c *gin.Context) { data := map[string]interface{}{ "billCategories": DEFAULT_CATE_LIST, "todoCategories": TODO_BASE_CATE, "todoPriorities": TODO_PRIORITY_LIST, "moodList": MOOD_LIST, "payChannels": PAY_CHANNELS, "avatars": DEFAULT_AVATARS, } utils.Ok(c, data) }