From b2f5c4194443969ab276a3ad130609f9f481ae2f Mon Sep 17 00:00:00 2001 From: tiankaima <91816094+tiankaima@users.noreply.github.com> Date: Wed, 23 Sep 2026 14:36:34 +0000 Subject: [PATCH 1/2] chore: sync OpenAPI contract --- api/openapi.json | 45 ++++++-- api/openapi.provenance.json | 4 +- internal/openapi/client.gen.go | 190 ++++++++++++++++----------------- 3 files changed, 133 insertions(+), 106 deletions(-) diff --git a/api/openapi.json b/api/openapi.json index 361f93e..650edf6 100644 --- a/api/openapi.json +++ b/api/openapi.json @@ -15750,11 +15750,18 @@ "nullable": true, "type": "string" }, - "registrationStatus": { + "activityStatusCode": { "nullable": true, - "description": "Deprecated: always null. Upstream never populates it; use status for the signup state.", "type": "string" }, + "signupStatusCode": { + "nullable": true, + "type": "string" + }, + "requiresSignup": { + "nullable": true, + "type": "boolean" + }, "location": { "nullable": true, "type": "string" @@ -15939,7 +15946,9 @@ "organizer", "organizerId", "status", - "registrationStatus", + "activityStatusCode", + "signupStatusCode", + "requiresSignup", "location", "imageUrl", "hours", @@ -23684,11 +23693,18 @@ "nullable": true, "type": "string" }, - "registrationStatus": { + "activityStatusCode": { + "nullable": true, + "type": "string" + }, + "signupStatusCode": { "nullable": true, - "description": "Deprecated: always null. Upstream never populates it; use status for the signup state.", "type": "string" }, + "requiresSignup": { + "nullable": true, + "type": "boolean" + }, "location": { "nullable": true, "type": "string" @@ -23873,7 +23889,9 @@ "organizer", "organizerId", "status", - "registrationStatus", + "activityStatusCode", + "signupStatusCode", + "requiresSignup", "location", "imageUrl", "hours", @@ -29127,11 +29145,18 @@ "nullable": true, "type": "string" }, - "registrationStatus": { + "activityStatusCode": { "nullable": true, - "description": "Deprecated: always null. Upstream never populates it; use status for the signup state.", "type": "string" }, + "signupStatusCode": { + "nullable": true, + "type": "string" + }, + "requiresSignup": { + "nullable": true, + "type": "boolean" + }, "location": { "nullable": true, "type": "string" @@ -29325,7 +29350,9 @@ "organizer", "organizerId", "status", - "registrationStatus", + "activityStatusCode", + "signupStatusCode", + "requiresSignup", "location", "imageUrl", "hours", diff --git a/api/openapi.provenance.json b/api/openapi.provenance.json index 4d8606f..ca535df 100644 --- a/api/openapi.provenance.json +++ b/api/openapi.provenance.json @@ -1,5 +1,5 @@ { "repository": "Life-USTC/server", - "commit": "4651fd9f20aa64873bcd0844e116da9bfb84a17b", - "sha256": "4c1265b490519bc921fbab91495043adb8b54d2b9e67462d109ec9d6a783a422" + "commit": "35b508432a35bcaa3f234ed58167d7f36707f981", + "sha256": "7bed8b549a3ecc39ba880b4d3182ae8de5be30b98f1be6d821b7622beba9376a" } diff --git a/internal/openapi/client.gen.go b/internal/openapi/client.gen.go index 6e84468..112f7fd 100644 --- a/internal/openapi/client.gen.go +++ b/internal/openapi/client.gen.go @@ -7268,51 +7268,51 @@ type PaginatedTeacherResponseSchema struct { // PaginatedYoungEventResponseSchema defines model for paginatedYoungEventResponseSchema. type PaginatedYoungEventResponseSchema struct { Data []struct { - ActivityLevel *string `json:"activityLevel"` - AppliedCount *int `json:"appliedCount"` - ApplyEndAt *time.Time `json:"applyEndAt"` - ApplyStartAt *time.Time `json:"applyStartAt"` - AuditedAt *time.Time `json:"auditedAt"` - Capacity *int `json:"capacity"` - Category *string `json:"category"` - ContactName *string `json:"contactName"` - ContactTel *string `json:"contactTel"` - CreatedAt *time.Time `json:"createdAt"` - CreatedAtUpstream *time.Time `json:"createdAtUpstream"` - Department *string `json:"department"` - Duration *float32 `json:"duration"` - EndAt *time.Time `json:"endAt"` - FavCount *int `json:"favCount"` - Form *string `json:"form"` - Grades *string `json:"grades"` - Hours *float32 `json:"hours"` - ImageUrl *string `json:"imageUrl"` - IsActive bool `json:"isActive"` - LastSeenAt *time.Time `json:"lastSeenAt"` - LimitNum *int `json:"limitNum"` - Location *string `json:"location"` - Module *string `json:"module"` - Name string `json:"name"` - Organizer *string `json:"organizer"` - OrganizerId *string `json:"organizerId"` - PartakeNum *int `json:"partakeNum"` - Places *[]struct { + ActivityLevel *string `json:"activityLevel"` + ActivityStatusCode *string `json:"activityStatusCode"` + AppliedCount *int `json:"appliedCount"` + ApplyEndAt *time.Time `json:"applyEndAt"` + ApplyStartAt *time.Time `json:"applyStartAt"` + AuditedAt *time.Time `json:"auditedAt"` + Capacity *int `json:"capacity"` + Category *string `json:"category"` + ContactName *string `json:"contactName"` + ContactTel *string `json:"contactTel"` + CreatedAt *time.Time `json:"createdAt"` + CreatedAtUpstream *time.Time `json:"createdAtUpstream"` + Department *string `json:"department"` + Duration *float32 `json:"duration"` + EndAt *time.Time `json:"endAt"` + FavCount *int `json:"favCount"` + Form *string `json:"form"` + Grades *string `json:"grades"` + Hours *float32 `json:"hours"` + ImageUrl *string `json:"imageUrl"` + IsActive bool `json:"isActive"` + LastSeenAt *time.Time `json:"lastSeenAt"` + LimitNum *int `json:"limitNum"` + Location *string `json:"location"` + Module *string `json:"module"` + Name string `json:"name"` + Organizer *string `json:"organizer"` + OrganizerId *string `json:"organizerId"` + PartakeNum *int `json:"partakeNum"` + Places *[]struct { PlaceEt *string `json:"placeEt"` PlaceInfo *string `json:"placeInfo"` PlaceSt *string `json:"placeSt"` } `json:"places"` - - // RegistrationStatus Deprecated: always null. Upstream never populates it; use status for the signup state. - RegistrationStatus *string `json:"registrationStatus"` - ServiceHour *float32 `json:"serviceHour"` - SourceMissing bool `json:"sourceMissing"` - Sponsor *string `json:"sponsor"` - StartAt *time.Time `json:"startAt"` - Status *string `json:"status"` - SumHours *float32 `json:"sumHours"` - SumPersons *int `json:"sumPersons"` - UpdatedAtUpstream *time.Time `json:"updatedAtUpstream"` - YoungId string `json:"youngId"` + RequiresSignup *bool `json:"requiresSignup"` + ServiceHour *float32 `json:"serviceHour"` + SignupStatusCode *string `json:"signupStatusCode"` + SourceMissing bool `json:"sourceMissing"` + Sponsor *string `json:"sponsor"` + StartAt *time.Time `json:"startAt"` + Status *string `json:"status"` + SumHours *float32 `json:"sumHours"` + SumPersons *int `json:"sumPersons"` + UpdatedAtUpstream *time.Time `json:"updatedAtUpstream"` + YoungId string `json:"youngId"` } `json:"data"` Pagination struct { Page int `json:"page"` @@ -8768,6 +8768,7 @@ type WorkspaceLinkPinResponseSchema struct { // YoungEventDetailSchema defines model for youngEventDetailSchema. type YoungEventDetailSchema struct { ActivityLevel *string `json:"activityLevel"` + ActivityStatusCode *string `json:"activityStatusCode"` AppliedCount *int `json:"appliedCount"` ApplyEndAt *time.Time `json:"applyEndAt"` ApplyStartAt *time.Time `json:"applyStartAt"` @@ -8802,19 +8803,18 @@ type YoungEventDetailSchema struct { PlaceInfo *string `json:"placeInfo"` PlaceSt *string `json:"placeSt"` } `json:"places"` - RawJson interface{} `json:"rawJson"` - - // RegistrationStatus Deprecated: always null. Upstream never populates it; use status for the signup state. - RegistrationStatus *string `json:"registrationStatus"` - ServiceHour *float32 `json:"serviceHour"` - SourceMissing bool `json:"sourceMissing"` - Sponsor *string `json:"sponsor"` - StartAt *time.Time `json:"startAt"` - Status *string `json:"status"` - SumHours *float32 `json:"sumHours"` - SumPersons *int `json:"sumPersons"` - UpdatedAtUpstream *time.Time `json:"updatedAtUpstream"` - YoungId string `json:"youngId"` + RawJson interface{} `json:"rawJson"` + RequiresSignup *bool `json:"requiresSignup"` + ServiceHour *float32 `json:"serviceHour"` + SignupStatusCode *string `json:"signupStatusCode"` + SourceMissing bool `json:"sourceMissing"` + Sponsor *string `json:"sponsor"` + StartAt *time.Time `json:"startAt"` + Status *string `json:"status"` + SumHours *float32 `json:"sumHours"` + SumPersons *int `json:"sumPersons"` + UpdatedAtUpstream *time.Time `json:"updatedAtUpstream"` + YoungId string `json:"youngId"` } // YoungEventSubscriptionListSchema defines model for youngEventSubscriptionListSchema. @@ -8822,51 +8822,51 @@ type YoungEventSubscriptionListSchema struct { Data []struct { CreatedAt time.Time `json:"createdAt"` Event struct { - ActivityLevel *string `json:"activityLevel"` - AppliedCount *int `json:"appliedCount"` - ApplyEndAt *time.Time `json:"applyEndAt"` - ApplyStartAt *time.Time `json:"applyStartAt"` - AuditedAt *time.Time `json:"auditedAt"` - Capacity *int `json:"capacity"` - Category *string `json:"category"` - ContactName *string `json:"contactName"` - ContactTel *string `json:"contactTel"` - CreatedAt *time.Time `json:"createdAt"` - CreatedAtUpstream *time.Time `json:"createdAtUpstream"` - Department *string `json:"department"` - Duration *float32 `json:"duration"` - EndAt *time.Time `json:"endAt"` - FavCount *int `json:"favCount"` - Form *string `json:"form"` - Grades *string `json:"grades"` - Hours *float32 `json:"hours"` - ImageUrl *string `json:"imageUrl"` - IsActive bool `json:"isActive"` - LastSeenAt *time.Time `json:"lastSeenAt"` - LimitNum *int `json:"limitNum"` - Location *string `json:"location"` - Module *string `json:"module"` - Name string `json:"name"` - Organizer *string `json:"organizer"` - OrganizerId *string `json:"organizerId"` - PartakeNum *int `json:"partakeNum"` - Places *[]struct { + ActivityLevel *string `json:"activityLevel"` + ActivityStatusCode *string `json:"activityStatusCode"` + AppliedCount *int `json:"appliedCount"` + ApplyEndAt *time.Time `json:"applyEndAt"` + ApplyStartAt *time.Time `json:"applyStartAt"` + AuditedAt *time.Time `json:"auditedAt"` + Capacity *int `json:"capacity"` + Category *string `json:"category"` + ContactName *string `json:"contactName"` + ContactTel *string `json:"contactTel"` + CreatedAt *time.Time `json:"createdAt"` + CreatedAtUpstream *time.Time `json:"createdAtUpstream"` + Department *string `json:"department"` + Duration *float32 `json:"duration"` + EndAt *time.Time `json:"endAt"` + FavCount *int `json:"favCount"` + Form *string `json:"form"` + Grades *string `json:"grades"` + Hours *float32 `json:"hours"` + ImageUrl *string `json:"imageUrl"` + IsActive bool `json:"isActive"` + LastSeenAt *time.Time `json:"lastSeenAt"` + LimitNum *int `json:"limitNum"` + Location *string `json:"location"` + Module *string `json:"module"` + Name string `json:"name"` + Organizer *string `json:"organizer"` + OrganizerId *string `json:"organizerId"` + PartakeNum *int `json:"partakeNum"` + Places *[]struct { PlaceEt *string `json:"placeEt"` PlaceInfo *string `json:"placeInfo"` PlaceSt *string `json:"placeSt"` } `json:"places"` - - // RegistrationStatus Deprecated: always null. Upstream never populates it; use status for the signup state. - RegistrationStatus *string `json:"registrationStatus"` - ServiceHour *float32 `json:"serviceHour"` - SourceMissing bool `json:"sourceMissing"` - Sponsor *string `json:"sponsor"` - StartAt *time.Time `json:"startAt"` - Status *string `json:"status"` - SumHours *float32 `json:"sumHours"` - SumPersons *int `json:"sumPersons"` - UpdatedAtUpstream *time.Time `json:"updatedAtUpstream"` - YoungId string `json:"youngId"` + RequiresSignup *bool `json:"requiresSignup"` + ServiceHour *float32 `json:"serviceHour"` + SignupStatusCode *string `json:"signupStatusCode"` + SourceMissing bool `json:"sourceMissing"` + Sponsor *string `json:"sponsor"` + StartAt *time.Time `json:"startAt"` + Status *string `json:"status"` + SumHours *float32 `json:"sumHours"` + SumPersons *int `json:"sumPersons"` + UpdatedAtUpstream *time.Time `json:"updatedAtUpstream"` + YoungId string `json:"youngId"` } `json:"event"` RemindDeadline bool `json:"remindDeadline"` RemindSignup bool `json:"remindSignup"` From 8211f298abf9985c8adb6e4fa06cb05f44910d4b Mon Sep 17 00:00:00 2001 From: Tiankai Ma Date: Wed, 23 Sep 2026 23:10:03 +0800 Subject: [PATCH 2/2] fix(young): read the current signup status fields --- internal/cmd/young_event/young_event.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/cmd/young_event/young_event.go b/internal/cmd/young_event/young_event.go index 151476f..0d3e2de 100644 --- a/internal/cmd/young_event/young_event.go +++ b/internal/cmd/young_event/young_event.go @@ -228,7 +228,9 @@ func newCmdGet() *cobra.Command { {Key: "hours", Label: "Hours", SkipEmpty: true}, {Key: "capacity", Label: "Capacity", SkipEmpty: true}, {Key: "appliedCount", Label: "Applied", SkipEmpty: true}, - {Key: "registrationStatus", Label: "Registration", SkipEmpty: true}, + {Key: "activityStatusCode", Label: "Activity status code", SkipEmpty: true}, + {Key: "signupStatusCode", Label: "Signup status code", SkipEmpty: true}, + {Key: "requiresSignup", Label: "Requires signup", SkipEmpty: true}, {Key: "status", Label: "Status", SkipEmpty: true}, {Key: "isActive", Label: "Active"}, {Key: "sourceMissing", Label: "Source missing", SkipEmpty: true},