Commit Graph

59 Commits

Author SHA1 Message Date
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