package smscli import ( "context" "fmt" ) // ────────────────────────────────────────────── // 用户接口 // ────────────────────────────────────────────── // CreateSignature 创建短信签名。 // POST /api/sms/signature func (c *Client) CreateSignature(ctx context.Context, req CreateSignatureReq) (SmsSignature, error) { return post[SmsSignature](c, ctx, "/api/sms/signature", req) } // ListSignatures 获取当前用户的签名列表(分页)。 // GET /api/sms/signature/list func (c *Client) ListSignatures(ctx context.Context, q PaginationQuery) (PaginationResult[SmsSignature], error) { params := paginationParams(q) return get[PaginationResult[SmsSignature]](c, ctx, "/api/sms/signature/list", buildQuery(params)) } // GetSignature 获取指定签名详情。 // GET /api/sms/signature/:id func (c *Client) GetSignature(ctx context.Context, id uint) (SmsSignature, error) { return get[SmsSignature](c, ctx, fmt.Sprintf("/api/sms/signature/%d", id), nil) } // UpdateSignature 更新指定签名。 // PUT /api/sms/signature/:id func (c *Client) UpdateSignature(ctx context.Context, id uint, req UpdateSignatureReq) (SmsSignature, error) { return put[SmsSignature](c, ctx, fmt.Sprintf("/api/sms/signature/%d", id), req) } // DeleteSignature 删除指定签名。 // DELETE /api/sms/signature/:id func (c *Client) DeleteSignature(ctx context.Context, id uint) error { _, err := del[any](c, ctx, fmt.Sprintf("/api/sms/signature/%d", id)) return err } // SubmitSignature 提交签名进入审核。 // POST /api/sms/signature/:id/submit func (c *Client) SubmitSignature(ctx context.Context, id uint) error { _, err := post[any](c, ctx, fmt.Sprintf("/api/sms/signature/%d/submit", id), nil) return err } // ────────────────────────────────────────────── // 管理员接口 // ────────────────────────────────────────────── // AdminListSignatures 管理员获取签名列表,可按 UserID、Status 筛选。 // GET /api/sms/admin/signature/list func (c *Client) AdminListSignatures(ctx context.Context, q SignatureListQuery) (PaginationResult[SmsSignature], error) { params := mergeParams(paginationParams(q.PaginationQuery), map[string]interface{}{ "user_id": q.UserID, "status": q.Status, }) return get[PaginationResult[SmsSignature]](c, ctx, "/api/sms/admin/signature/list", buildQuery(params)) } // AdminGetSignature 管理员获取指定签名详情。 // GET /api/sms/admin/signature/:id func (c *Client) AdminGetSignature(ctx context.Context, id uint) (SmsSignature, error) { return get[SmsSignature](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d", id), nil) } // AdminCreateSignature 管理员创建签名(可指定 UserID)。 // POST /api/sms/admin/signature func (c *Client) AdminCreateSignature(ctx context.Context, req AdminCreateSignatureReq) (SmsSignature, error) { return post[SmsSignature](c, ctx, "/api/sms/admin/signature", req) } // AdminUpdateSignature 管理员更新指定签名。 // PUT /api/sms/admin/signature/:id func (c *Client) AdminUpdateSignature(ctx context.Context, id uint, req AdminUpdateSignatureReq) (SmsSignature, error) { return put[SmsSignature](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d", id), req) } // AdminDeleteSignature 管理员删除指定签名。 // DELETE /api/sms/admin/signature/:id func (c *Client) AdminDeleteSignature(ctx context.Context, id uint) error { _, err := del[any](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d", id)) return err } // AdminSubmitSignature 管理员提交签名进入审核。 // POST /api/sms/admin/signature/:id/submit func (c *Client) AdminSubmitSignature(ctx context.Context, id uint) error { _, err := post[any](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d/submit", id), nil) return err } // ApproveSignature 管理员审核通过签名。 // POST /api/sms/admin/signature/:id/approve func (c *Client) ApproveSignature(ctx context.Context, id uint) error { _, err := post[any](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d/approve", id), nil) return err } // RejectSignature 管理员驳回签名,需提供驳回原因。 // POST /api/sms/admin/signature/:id/reject func (c *Client) RejectSignature(ctx context.Context, id uint, req RejectReq) error { _, err := post[any](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d/reject", id), req) return err }