package emailcli import ( "context" "fmt" ) // CreateSignature 创建签名,新建签名默认 Status=0(待审核),需要调用 AuditSignature 审核后方可使用。 // // POST /api/v1/signatures ServiceAuth func (c *Client) CreateSignature(ctx context.Context, req CreateSignatureReq) (*Signature, error) { return post[*Signature](c, ctx, "/api/v1/signatures", req) } // ListSignatures 分页查询签名。 // // GET /api/v1/signatures?page=&page_size=&user_id=&account_id=&status=&keyword= ServiceAuth func (c *Client) ListSignatures(ctx context.Context, q SignatureListQuery) (*PaginationResult[Signature], error) { params := mergeParams(paginationParams(q.PaginationQuery), map[string]interface{}{ "account_id": q.AccountID, "status": q.Status, "user_id": q.UserID, "keyword": q.Keyword, }) return get[*PaginationResult[Signature]](c, ctx, "/api/v1/signatures", buildQuery(params)) } // GetSignature 获取签名详情。 // // GET /api/v1/signatures/{id} ServiceAuth func (c *Client) GetSignature(ctx context.Context, id uint) (*Signature, error) { return get[*Signature](c, ctx, fmt.Sprintf("/api/v1/signatures/%d", id), nil) } // UpdateSignature 局部更新签名。更新后若已通过,建议重新提交审核。 // // PUT /api/v1/signatures/{id} ServiceAuth func (c *Client) UpdateSignature(ctx context.Context, id uint, req UpdateSignatureReq) (*Signature, error) { return put[*Signature](c, ctx, fmt.Sprintf("/api/v1/signatures/%d", id), req) } // DeleteSignature 删除签名(软删除)。 // // DELETE /api/v1/signatures/{id} ServiceAuth func (c *Client) DeleteSignature(ctx context.Context, id uint) error { _, err := del[any](c, ctx, fmt.Sprintf("/api/v1/signatures/%d", id)) return err } // AuditSignature 审核签名。Status 使用 SignatureStatusApproved/SignatureStatusRejected 常量。 // 驳回时建议在 req.RejectReason 中填写原因。 // // POST /api/v1/signatures/{id}/audit ServiceAuth func (c *Client) AuditSignature(ctx context.Context, id uint, req AuditSignatureReq) error { _, err := post[any](c, ctx, fmt.Sprintf("/api/v1/signatures/%d/audit", id), req) return err }