admin
b6fdc912ae
feat(chat): sync multi-role backend APIs
2026-07-20 11:29:54 +08:00
admin
b3ebd5cf3b
feat(characters): use local character catalog
2026-07-17 16:03:18 +08:00
admin
ae97366a4a
refactor(data): replace schema classes with readonly models
2026-07-17 13:21:40 +08:00
admin
eac3d8f0a7
refactor(data): merge DTO models into schemas
2026-07-17 12:47:18 +08:00
admin
2796010971
feat(characters): support character-scoped conversations
2026-07-17 11:42:31 +08:00
admin
37f45f0736
feat(feedback): add problem reporting flow
2026-07-16 18:30:34 +08:00
admin
7dce1b5d4c
feat(subscription): highlight popular plans
2026-07-15 18:30:18 +08:00
admin
078774f9b9
refactor(chat): remove legacy unlock response fields
2026-07-15 15:06:09 +08:00
admin
ca55723e48
fix(chat): sync paid voice audio unlock flow
2026-07-14 15:20:56 +08:00
admin
759481b621
refactor(schemas): group network schemas by direction
...
Move request and response schemas into matching subdirectories, extract the shared chat lock type, and update barrels and imports without changing wire formats.
2026-07-14 15:12:19 +08:00
admin
538af6d45f
feat(private-room): migrate to album APIs
2026-07-14 12:30:22 +08:00
admin
3a4f24cb06
feat(payment): implement coffee tip plans and update payment flow
2026-07-14 11:48:46 +08:00
admin
4682b4bf3f
refactor(chat): simplify paid message lock state
2026-07-13 15:20:07 +08:00
admin
3752b3b729
feat(chat): add promotional external entry flow
2026-07-13 12:43:18 +08:00
admin
53801490e5
feat(auth): add facebook identity psid login
2026-07-10 17:10:55 +08:00
admin
dfcb06f5a9
feat(auth): add psid field to various login request DTOs and schemas
2026-07-10 16:33:29 +08:00
admin
8312d08653
fix(chat): apply unlocked voice audio url
2026-07-10 11:15:59 +08:00
admin
c46b9b4cdd
feat(private-room): connect moments feed
Docker Image / Build and Push Docker Image (push) Successful in 9m29s
2026-07-08 16:29:08 +08:00
admin
b5bf81de59
refactor(api): remove unused network endpoints
2026-07-07 16:29:21 +08:00
admin
e10e65d2f3
refactor(user): persist compact user cache
2026-07-07 15:36:17 +08:00
admin
473f6a3726
refactor(dto): centralize backend schema defaults
2026-07-06 11:14:56 +08:00
admin
d17ab6c23d
feat(profile): surface daily free quotas
2026-07-03 16:56:06 +08:00
admin
f6932357c6
fix(payment): default nullable first recharge offer
2026-07-02 15:48:06 +08:00
admin
d4de1370e8
feat(payment): implement first recharge offer functionality and UI updates
2026-07-02 14:39:09 +08:00
admin
c477737c0d
fix(chat): allow nullable credit fields
2026-07-01 16:25:59 +08:00
admin
b7bccaa4cf
test(chat): add test for defaulting nullable credit fields to zero
2026-06-30 19:33:34 +08:00
admin
a105820b88
test(chat): add test for defaulting nullable content to an empty string
2026-06-30 19:29:41 +08:00
admin
5f94105bc6
fix(chat): update unlock response contract
2026-06-30 18:15:39 +08:00
admin
e254c93078
feat(subscription): default pay channel by country
2026-06-30 16:49:47 +08:00
admin
958a0f8ffd
feat(chat): handle credit-gated send responses
2026-06-30 14:17:14 +08:00
admin
e372d58b4c
feat(payment): sync plans and add coins rules
2026-06-29 14:11:50 +08:00
admin
6e51cb7d16
Refactor: Remove original Dart references from comments across multiple files
...
- Updated comments in various components, schemas, and repositories to remove references to original Dart files.
- Ensured consistency in documentation while maintaining the context of the code.
2026-06-29 11:31:21 +08:00
admin
58cd2a7545
feat(user): sync entitlement snapshot
2026-06-29 10:37:37 +08:00
admin
455204e1e4
feat(chat): add history unlock api
2026-06-26 19:27:56 +08:00
admin
49b67064f7
feat(subscription): load vip and credit plans from api
2026-06-26 15:09:27 +08:00
admin
abf6d5ae88
feat(auth): mark test accounts in login requests
2026-06-26 14:05:53 +08:00
admin
94fb3ed19b
fix(user): align dto with latest payload
2026-06-25 17:40:41 +08:00
admin
42c03f8901
feat(chat): migrate chat protocol to lock detail
2026-06-24 14:06:30 +08:00
admin
3e766a0ecd
fix(chat): preserve private send response fields
2026-06-24 11:02:15 +08:00
admin
18617ac7e5
refactor(payment): remove websocket event dto
2026-06-23 18:11:26 +08:00
admin
24e52d6ead
fix(payment): support updated plan pricing fields
2026-06-23 15:47:09 +08:00
admin
f14b8a48d2
fix(chat): handle guest total limit
2026-06-23 15:14:17 +08:00
admin
ebd44c4980
feat(chat): add private message unlock flow
2026-06-23 13:21:57 +08:00
admin
6bcc070ba1
refactor(chat): rely on server message limits
2026-06-23 11:20:48 +08:00
admin
d81abd6efd
feat(chat): support ai photo viewing
2026-06-23 10:34:02 +08:00
admin
890c955712
fix(payment): support ezpay cashier urls
2026-06-22 16:35:06 +08:00
admin
a347b39001
feat(payment): connect payment service flow
2026-06-18 15:40:59 +08:00
admin
35c30ac31e
feat(data): add paywall payment APIs
2026-06-18 14:55:54 +08:00
admin
56b2c39ca5
fix(user): normalize last message timestamp
2026-06-17 17:47:07 +08:00
admin
d41b3c4473
refactor(schemas): extract nullable-default helpers to shared file
...
The three defensive Zod helpers (stringOrEmpty, numberOrZero,
booleanOrFalse) used by user.ts are general-purpose Zod utilities
that any schema may need — they're not user-specific. The original
inline declaration in user.ts had two downsides:
1. Any new schema (chat, auth, metrics, etc.) that needs the same
'null | undefined → default scalar' pattern would have to
duplicate the helper.
2. The long defensive-parse comment block (11 lines) lived inside
user.ts and didn't explain the helpers' general purpose.
Move them to src/data/schemas/nullable-defaults.ts (top-level
sibling of auth/, chat/, metrics/, user/ subdirs) so any schema
can import them. Keep the original explanation verbatim at the
top of the new file.
Bundled in this commit:
- user.ts imports the helpers from the new file (drops 11 lines
of comment + 3 const declarations)
- 3 auto-generated barrel index files regenerated by barrelsby
to pick up the new exports (chat/, subscription/, stores/user/)
2026-06-17 12:05:09 +08:00