refactor(community): rename Community Connections → Community Ecology
Simplify the feature to pure discovery (filter by topic, see matching members, copy Slack handle). Drop the connection request/confirm flow entirely — Connection model, 7 API endpoints, useConnections composable, and TagInput component deleted. - Rename communityConnections → communityEcology in schema, API, pages - Delete legacy fields: offering, lookingFor, peerSupport - New /ecology page, /api/ecology/suggestions, community-ecology.patch - Nav: "Connections" → "Ecology", remove pending-count badge - Fix auth/member.get.js missing craftTags + communityEcology - Add community_ecology_updated activity log type - Expose slackHandle conditionally when offerPeerSupport is true - Add migration script at scripts/migrate-to-ecology.js (run before deploy)
This commit is contained in:
parent
9577929e0d
commit
0b3896d984
33 changed files with 1002 additions and 2635 deletions
|
|
@ -27,20 +27,10 @@ export const memberProfileUpdateSchema = z.object({
|
|||
website: z.string().max(300).optional(),
|
||||
other: z.string().max(300).optional()
|
||||
}).optional(),
|
||||
offering: z.object({
|
||||
text: z.string().max(2000).optional(),
|
||||
tags: z.array(z.string().max(100)).max(20).optional()
|
||||
}).optional(),
|
||||
lookingFor: z.object({
|
||||
text: z.string().max(2000).optional(),
|
||||
tags: z.array(z.string().max(100)).max(20).optional()
|
||||
}).optional(),
|
||||
showInDirectory: z.boolean().optional(),
|
||||
notifications: z.object({
|
||||
events: z.boolean().optional(),
|
||||
updates: z.boolean().optional(),
|
||||
peerRequests: z.boolean().optional(),
|
||||
connectionRequests: z.boolean().optional()
|
||||
updates: z.boolean().optional()
|
||||
}).optional(),
|
||||
pronounsPrivacy: privacyEnum.optional(),
|
||||
timeZonePrivacy: privacyEnum.optional(),
|
||||
|
|
@ -49,11 +39,9 @@ export const memberProfileUpdateSchema = z.object({
|
|||
bioPrivacy: privacyEnum.optional(),
|
||||
locationPrivacy: privacyEnum.optional(),
|
||||
socialLinksPrivacy: privacyEnum.optional(),
|
||||
offeringPrivacy: privacyEnum.optional(),
|
||||
lookingForPrivacy: privacyEnum.optional(),
|
||||
craftTags: z.array(z.string().max(100)).max(16).optional(),
|
||||
craftTagsPrivacy: privacyEnum.optional(),
|
||||
communityConnectionsPrivacy: privacyEnum.optional()
|
||||
communityEcologyPrivacy: privacyEnum.optional()
|
||||
})
|
||||
|
||||
export const eventRegistrationSchema = z.object({
|
||||
|
|
@ -168,15 +156,6 @@ export const updateCircleSchema = z.object({
|
|||
circle: z.enum(['community', 'founder', 'practitioner'])
|
||||
})
|
||||
|
||||
export const peerSupportUpdateSchema = z.object({
|
||||
enabled: z.boolean().optional(),
|
||||
skillTopics: z.array(z.string().max(200)).max(20).optional(),
|
||||
supportTopics: z.array(z.string().max(200)).max(20).optional(),
|
||||
availability: z.string().max(500).optional(),
|
||||
personalMessage: z.string().max(2000).optional(),
|
||||
slackUsername: z.string().max(200).optional()
|
||||
})
|
||||
|
||||
// --- Series ticket schemas ---
|
||||
|
||||
export const seriesTicketPurchaseSchema = z.object({
|
||||
|
|
@ -392,7 +371,7 @@ export const tagSuggestionSchema = z.object({
|
|||
pool: z.enum(['craft', 'cooperative'])
|
||||
})
|
||||
|
||||
export const communityConnectionsUpdateSchema = z.object({
|
||||
export const communityEcologyUpdateSchema = z.object({
|
||||
topics: z.array(z.object({
|
||||
tagSlug: z.string().min(1).max(100),
|
||||
state: z.enum(['help', 'interested', 'seeking'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue