feat: add creator member management

This commit is contained in:
2026-01-17 20:42:43 +08:00
parent 984a404b5f
commit 7fca7a40e7
14 changed files with 2915 additions and 81 deletions

View File

@@ -70,6 +70,91 @@ func (c *Creator) CreateMemberInvite(
return services.Tenant.CreateInvite(ctx, tenantID, user.ID, form)
}
// List tenant members
//
// @Router /t/:tenantCode/v1/creator/members [get]
// @Summary List tenant members
// @Description List tenant members with filters
// @Tags CreatorCenter
// @Accept json
// @Produce json
// @Param filter query dto.TenantMemberListFilter false "Member list filter"
// @Success 200 {object} requests.Pager{items=[]dto.TenantMemberItem}
// @Bind user local key(__ctx_user)
// @Bind filter query
func (c *Creator) ListMembers(ctx fiber.Ctx, user *models.User, filter *dto.TenantMemberListFilter) (*requests.Pager, error) {
tenantID := getTenantID(ctx)
return services.Tenant.ListMembers(ctx, tenantID, user.ID, filter)
}
// List member invites
//
// @Router /t/:tenantCode/v1/creator/members/invites [get]
// @Summary List member invites
// @Description List member invites with filters
// @Tags CreatorCenter
// @Accept json
// @Produce json
// @Param filter query dto.TenantInviteListFilter false "Invite list filter"
// @Success 200 {object} requests.Pager{items=[]dto.TenantInviteListItem}
// @Bind user local key(__ctx_user)
// @Bind filter query
func (c *Creator) ListMemberInvites(ctx fiber.Ctx, user *models.User, filter *dto.TenantInviteListFilter) (*requests.Pager, error) {
tenantID := getTenantID(ctx)
return services.Tenant.ListInvites(ctx, tenantID, user.ID, filter)
}
// Disable member invite
//
// @Router /t/:tenantCode/v1/creator/members/invites/:id<int> [delete]
// @Summary Disable member invite
// @Description Disable a member invite by ID
// @Tags CreatorCenter
// @Accept json
// @Produce json
// @Param id path int64 true "Invite ID"
// @Success 200 {string} string "Disabled"
// @Bind user local key(__ctx_user)
// @Bind id path
func (c *Creator) DisableMemberInvite(ctx fiber.Ctx, user *models.User, id int64) error {
tenantID := getTenantID(ctx)
return services.Tenant.DisableInvite(ctx, tenantID, user.ID, id)
}
// List member join requests
//
// @Router /t/:tenantCode/v1/creator/members/join-requests [get]
// @Summary List member join requests
// @Description List tenant join requests
// @Tags CreatorCenter
// @Accept json
// @Produce json
// @Param filter query dto.TenantJoinRequestListFilter false "Join request list filter"
// @Success 200 {object} requests.Pager{items=[]dto.TenantJoinRequestItem}
// @Bind user local key(__ctx_user)
// @Bind filter query
func (c *Creator) ListMemberJoinRequests(ctx fiber.Ctx, user *models.User, filter *dto.TenantJoinRequestListFilter) (*requests.Pager, error) {
tenantID := getTenantID(ctx)
return services.Tenant.ListJoinRequests(ctx, tenantID, user.ID, filter)
}
// Remove tenant member
//
// @Router /t/:tenantCode/v1/creator/members/:id<int> [delete]
// @Summary Remove tenant member
// @Description Remove a tenant member by relation ID
// @Tags CreatorCenter
// @Accept json
// @Produce json
// @Param id path int64 true "Member ID"
// @Success 200 {string} string "Removed"
// @Bind user local key(__ctx_user)
// @Bind id path
func (c *Creator) RemoveMember(ctx fiber.Ctx, user *models.User, id int64) error {
tenantID := getTenantID(ctx)
return services.Tenant.RemoveMember(ctx, tenantID, user.ID, id)
}
// Get report overview
//
// @Router /t/:tenantCode/v1/creator/reports/overview [get]