gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/okr/v1/model.go (about) 1 // Package okr code generated by oapi sdk gen 2 /* 3 * MIT License 4 * 5 * Copyright (c) 2022 Lark Technologies Pte. Ltd. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 * 9 * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 */ 13 14 package larkokr 15 16 import ( 17 "io" 18 19 "bytes" 20 21 "fmt" 22 23 "gitee.com/larksuite/oapi-sdk-go/v3/core" 24 ) 25 26 const ( 27 TargetTypeOkr的O = 2 // okr的O 28 TargetTypeOkr的KR = 3 // okr的KR 29 30 ) 31 32 const ( 33 UserIdTypeUserId = "user_id" // 以user_id来识别用户 34 UserIdTypeUnionId = "union_id" // 以union_id来识别用户 35 UserIdTypeOpenId = "open_id" // 以open_id来识别用户 36 UserIdTypePeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户 37 ) 38 39 const ( 40 TargetTypeCreateProgressRecordOkr的O = 2 // okr的O 41 TargetTypeCreateProgressRecordOkr的KR = 3 // okr的KR 42 43 ) 44 45 const ( 46 UserIdTypeListUserOkrUserId = "user_id" // 以user_id来识别用户 47 UserIdTypeListUserOkrUnionId = "union_id" // 以union_id来识别用户 48 UserIdTypeListUserOkrOpenId = "open_id" // 以open_id来识别用户 49 UserIdTypeListUserOkrPeopleAdminId = "people_admin_id" // 以people_admin_id来识别用户 50 ) 51 52 type AlignObjective struct { 53 Id *string `json:"id,omitempty"` // Objective ID 54 OkrId *string `json:"okr_id,omitempty"` // OKR ID 55 UserId *string `json:"user_id,omitempty"` // 用户 UUID 56 } 57 58 type AlignObjectiveBuilder struct { 59 id string // Objective ID 60 idFlag bool 61 okrId string // OKR ID 62 okrIdFlag bool 63 userId string // 用户 UUID 64 userIdFlag bool 65 } 66 67 func NewAlignObjectiveBuilder() *AlignObjectiveBuilder { 68 builder := &AlignObjectiveBuilder{} 69 return builder 70 } 71 72 // Objective ID 73 // 74 // 示例值: 75 func (builder *AlignObjectiveBuilder) Id(id string) *AlignObjectiveBuilder { 76 builder.id = id 77 builder.idFlag = true 78 return builder 79 } 80 81 // OKR ID 82 // 83 // 示例值: 84 func (builder *AlignObjectiveBuilder) OkrId(okrId string) *AlignObjectiveBuilder { 85 builder.okrId = okrId 86 builder.okrIdFlag = true 87 return builder 88 } 89 90 // 用户 UUID 91 // 92 // 示例值: 93 func (builder *AlignObjectiveBuilder) UserId(userId string) *AlignObjectiveBuilder { 94 builder.userId = userId 95 builder.userIdFlag = true 96 return builder 97 } 98 99 func (builder *AlignObjectiveBuilder) Build() *AlignObjective { 100 req := &AlignObjective{} 101 if builder.idFlag { 102 req.Id = &builder.id 103 104 } 105 if builder.okrIdFlag { 106 req.OkrId = &builder.okrId 107 108 } 109 if builder.userIdFlag { 110 req.UserId = &builder.userId 111 112 } 113 return req 114 } 115 116 type ContentBlock struct { 117 Blocks []*ContentBlockElement `json:"blocks,omitempty"` // 文档结构是按行排列的,每行内容是一个 Block 118 } 119 120 type ContentBlockBuilder struct { 121 blocks []*ContentBlockElement // 文档结构是按行排列的,每行内容是一个 Block 122 blocksFlag bool 123 } 124 125 func NewContentBlockBuilder() *ContentBlockBuilder { 126 builder := &ContentBlockBuilder{} 127 return builder 128 } 129 130 // 文档结构是按行排列的,每行内容是一个 Block 131 // 132 // 示例值: 133 func (builder *ContentBlockBuilder) Blocks(blocks []*ContentBlockElement) *ContentBlockBuilder { 134 builder.blocks = blocks 135 builder.blocksFlag = true 136 return builder 137 } 138 139 func (builder *ContentBlockBuilder) Build() *ContentBlock { 140 req := &ContentBlock{} 141 if builder.blocksFlag { 142 req.Blocks = builder.blocks 143 } 144 return req 145 } 146 147 type ContentBlockElement struct { 148 Type *string `json:"type,omitempty"` // 文档元素类型 149 Paragraph *ContentParagraph `json:"paragraph,omitempty"` // 文本段落 150 Gallery *ContentGallery `json:"gallery,omitempty"` // 图片 151 } 152 153 type ContentBlockElementBuilder struct { 154 type_ string // 文档元素类型 155 typeFlag bool 156 paragraph *ContentParagraph // 文本段落 157 paragraphFlag bool 158 gallery *ContentGallery // 图片 159 galleryFlag bool 160 } 161 162 func NewContentBlockElementBuilder() *ContentBlockElementBuilder { 163 builder := &ContentBlockElementBuilder{} 164 return builder 165 } 166 167 // 文档元素类型 168 // 169 // 示例值:paragraph 170 func (builder *ContentBlockElementBuilder) Type(type_ string) *ContentBlockElementBuilder { 171 builder.type_ = type_ 172 builder.typeFlag = true 173 return builder 174 } 175 176 // 文本段落 177 // 178 // 示例值: 179 func (builder *ContentBlockElementBuilder) Paragraph(paragraph *ContentParagraph) *ContentBlockElementBuilder { 180 builder.paragraph = paragraph 181 builder.paragraphFlag = true 182 return builder 183 } 184 185 // 图片 186 // 187 // 示例值: 188 func (builder *ContentBlockElementBuilder) Gallery(gallery *ContentGallery) *ContentBlockElementBuilder { 189 builder.gallery = gallery 190 builder.galleryFlag = true 191 return builder 192 } 193 194 func (builder *ContentBlockElementBuilder) Build() *ContentBlockElement { 195 req := &ContentBlockElement{} 196 if builder.typeFlag { 197 req.Type = &builder.type_ 198 199 } 200 if builder.paragraphFlag { 201 req.Paragraph = builder.paragraph 202 } 203 if builder.galleryFlag { 204 req.Gallery = builder.gallery 205 } 206 return req 207 } 208 209 type ContentColor struct { 210 Red *int `json:"red,omitempty"` // 红 取值范围[0,255] 211 Green *int `json:"green,omitempty"` // 绿 取值范围[0,255] 212 Blue *int `json:"blue,omitempty"` // 蓝 取值范围[0,255] 213 Alpha *float64 `json:"alpha,omitempty"` // 透明度 取值范围[0,1] 214 } 215 216 type ContentColorBuilder struct { 217 red int // 红 取值范围[0,255] 218 redFlag bool 219 green int // 绿 取值范围[0,255] 220 greenFlag bool 221 blue int // 蓝 取值范围[0,255] 222 blueFlag bool 223 alpha float64 // 透明度 取值范围[0,1] 224 alphaFlag bool 225 } 226 227 func NewContentColorBuilder() *ContentColorBuilder { 228 builder := &ContentColorBuilder{} 229 return builder 230 } 231 232 // 红 取值范围[0,255] 233 // 234 // 示例值:216 235 func (builder *ContentColorBuilder) Red(red int) *ContentColorBuilder { 236 builder.red = red 237 builder.redFlag = true 238 return builder 239 } 240 241 // 绿 取值范围[0,255] 242 // 243 // 示例值:191 244 func (builder *ContentColorBuilder) Green(green int) *ContentColorBuilder { 245 builder.green = green 246 builder.greenFlag = true 247 return builder 248 } 249 250 // 蓝 取值范围[0,255] 251 // 252 // 示例值:188 253 func (builder *ContentColorBuilder) Blue(blue int) *ContentColorBuilder { 254 builder.blue = blue 255 builder.blueFlag = true 256 return builder 257 } 258 259 // 透明度 取值范围[0,1] 260 // 261 // 示例值:0.1 262 func (builder *ContentColorBuilder) Alpha(alpha float64) *ContentColorBuilder { 263 builder.alpha = alpha 264 builder.alphaFlag = true 265 return builder 266 } 267 268 func (builder *ContentColorBuilder) Build() *ContentColor { 269 req := &ContentColor{} 270 if builder.redFlag { 271 req.Red = &builder.red 272 273 } 274 if builder.greenFlag { 275 req.Green = &builder.green 276 277 } 278 if builder.blueFlag { 279 req.Blue = &builder.blue 280 281 } 282 if builder.alphaFlag { 283 req.Alpha = &builder.alpha 284 285 } 286 return req 287 } 288 289 type ContentDocsLink struct { 290 Url *string `json:"url,omitempty"` // 飞书云文档链接地址 291 Title *string `json:"title,omitempty"` // 飞书云文档标题 292 } 293 294 type ContentDocsLinkBuilder struct { 295 url string // 飞书云文档链接地址 296 urlFlag bool 297 title string // 飞书云文档标题 298 titleFlag bool 299 } 300 301 func NewContentDocsLinkBuilder() *ContentDocsLinkBuilder { 302 builder := &ContentDocsLinkBuilder{} 303 return builder 304 } 305 306 // 飞书云文档链接地址 307 // 308 // 示例值:https://xxx.feishu.cn/docx/xxxxxxxx 309 func (builder *ContentDocsLinkBuilder) Url(url string) *ContentDocsLinkBuilder { 310 builder.url = url 311 builder.urlFlag = true 312 return builder 313 } 314 315 // 飞书云文档标题 316 // 317 // 示例值:项目说明文档 318 func (builder *ContentDocsLinkBuilder) Title(title string) *ContentDocsLinkBuilder { 319 builder.title = title 320 builder.titleFlag = true 321 return builder 322 } 323 324 func (builder *ContentDocsLinkBuilder) Build() *ContentDocsLink { 325 req := &ContentDocsLink{} 326 if builder.urlFlag { 327 req.Url = &builder.url 328 329 } 330 if builder.titleFlag { 331 req.Title = &builder.title 332 333 } 334 return req 335 } 336 337 type ContentGallery struct { 338 ImageList []*ContentImageItem `json:"imageList,omitempty"` // 图片元素 339 } 340 341 type ContentGalleryBuilder struct { 342 imageList []*ContentImageItem // 图片元素 343 imageListFlag bool 344 } 345 346 func NewContentGalleryBuilder() *ContentGalleryBuilder { 347 builder := &ContentGalleryBuilder{} 348 return builder 349 } 350 351 // 图片元素 352 // 353 // 示例值: 354 func (builder *ContentGalleryBuilder) ImageList(imageList []*ContentImageItem) *ContentGalleryBuilder { 355 builder.imageList = imageList 356 builder.imageListFlag = true 357 return builder 358 } 359 360 func (builder *ContentGalleryBuilder) Build() *ContentGallery { 361 req := &ContentGallery{} 362 if builder.imageListFlag { 363 req.ImageList = builder.imageList 364 } 365 return req 366 } 367 368 type ContentImageItem struct { 369 FileToken *string `json:"fileToken,omitempty"` // 图片 token,通过上传图片接口获取 370 Url *string `json:"url,omitempty"` // 图片链接,通过上传图片接口获取 371 Width *float64 `json:"width,omitempty"` // 图片宽,单位px 372 Height *float64 `json:"height,omitempty"` // 图片高,单位px 373 } 374 375 type ContentImageItemBuilder struct { 376 fileToken string // 图片 token,通过上传图片接口获取 377 fileTokenFlag bool 378 url string // 图片链接,通过上传图片接口获取 379 urlFlag bool 380 width float64 // 图片宽,单位px 381 widthFlag bool 382 height float64 // 图片高,单位px 383 heightFlag bool 384 } 385 386 func NewContentImageItemBuilder() *ContentImageItemBuilder { 387 builder := &ContentImageItemBuilder{} 388 return builder 389 } 390 391 // 图片 token,通过上传图片接口获取 392 // 393 // 示例值:boxcnOj88GDkmWGm2zsTyCBqoLb 394 func (builder *ContentImageItemBuilder) FileToken(fileToken string) *ContentImageItemBuilder { 395 builder.fileToken = fileToken 396 builder.fileTokenFlag = true 397 return builder 398 } 399 400 // 图片链接,通过上传图片接口获取 401 // 402 // 示例值:https://internal-api-okr.feishu-boe.cn/stream/api/downloadFile/?file_token=boxbcMTBQO9ofLjWkDuPxkxOA2c\&ticket=eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJ0YXJnZXRfaWQiOiI3MDQxNDMwMzc3NjQyMDgyMzIzIiwidGFyZ2V0X3R5cGUiOjMsImFjdGlvbiI6MiwiZmlsZV90b2tlbiI6ImJveGJjTVRCUU85b2ZMaldrRHVQeGt4T0EyYyIsInVzZXJfaWQiOiI2OTY5ODU1NTAxNzQ0ODM0MDkyIiwidGVuYW50X2lkIjoiNjg3NzUwMjY4NzYwOTQwNjk5MCIsImV4cCI6MTY0MDE1NTk2M30.yc4qV2pkGUVwSO53-N_XGgeMucjmDn9iso1Ez_8vpghFz8YdeSDf4NHQpxOHYHc8RURvwI0a5UTNKKJ9CWagTQ 403 func (builder *ContentImageItemBuilder) Url(url string) *ContentImageItemBuilder { 404 builder.url = url 405 builder.urlFlag = true 406 return builder 407 } 408 409 // 图片宽,单位px 410 // 411 // 示例值:458 412 func (builder *ContentImageItemBuilder) Width(width float64) *ContentImageItemBuilder { 413 builder.width = width 414 builder.widthFlag = true 415 return builder 416 } 417 418 // 图片高,单位px 419 // 420 // 示例值:372 421 func (builder *ContentImageItemBuilder) Height(height float64) *ContentImageItemBuilder { 422 builder.height = height 423 builder.heightFlag = true 424 return builder 425 } 426 427 func (builder *ContentImageItemBuilder) Build() *ContentImageItem { 428 req := &ContentImageItem{} 429 if builder.fileTokenFlag { 430 req.FileToken = &builder.fileToken 431 432 } 433 if builder.urlFlag { 434 req.Url = &builder.url 435 436 } 437 if builder.widthFlag { 438 req.Width = &builder.width 439 440 } 441 if builder.heightFlag { 442 req.Height = &builder.height 443 444 } 445 return req 446 } 447 448 type ContentLink struct { 449 Url *string `json:"url,omitempty"` // 链接地址 450 } 451 452 type ContentLinkBuilder struct { 453 url string // 链接地址 454 urlFlag bool 455 } 456 457 func NewContentLinkBuilder() *ContentLinkBuilder { 458 builder := &ContentLinkBuilder{} 459 return builder 460 } 461 462 // 链接地址 463 // 464 // 示例值:https://www.xxxxx.com/ 465 func (builder *ContentLinkBuilder) Url(url string) *ContentLinkBuilder { 466 builder.url = url 467 builder.urlFlag = true 468 return builder 469 } 470 471 func (builder *ContentLinkBuilder) Build() *ContentLink { 472 req := &ContentLink{} 473 if builder.urlFlag { 474 req.Url = &builder.url 475 476 } 477 return req 478 } 479 480 type ContentList struct { 481 Type *string `json:"type,omitempty"` // 列表类型 482 IndentLevel *int `json:"indentLevel,omitempty"` // 列表的缩进级别,支持指定一行的缩进 除代码块以外的列表都支持设置缩进,支持 1-16 级缩进,取值范围:[1,16] 483 Number *int `json:"number,omitempty"` // 用于指定列表的行号,仅对有序列表和代码块生效 如果为有序列表设置了缩进,行号可能会显示为字母或者罗马数字 484 } 485 486 type ContentListBuilder struct { 487 type_ string // 列表类型 488 typeFlag bool 489 indentLevel int // 列表的缩进级别,支持指定一行的缩进 除代码块以外的列表都支持设置缩进,支持 1-16 级缩进,取值范围:[1,16] 490 indentLevelFlag bool 491 number int // 用于指定列表的行号,仅对有序列表和代码块生效 如果为有序列表设置了缩进,行号可能会显示为字母或者罗马数字 492 numberFlag bool 493 } 494 495 func NewContentListBuilder() *ContentListBuilder { 496 builder := &ContentListBuilder{} 497 return builder 498 } 499 500 // 列表类型 501 // 502 // 示例值:number 503 func (builder *ContentListBuilder) Type(type_ string) *ContentListBuilder { 504 builder.type_ = type_ 505 builder.typeFlag = true 506 return builder 507 } 508 509 // 列表的缩进级别,支持指定一行的缩进 除代码块以外的列表都支持设置缩进,支持 1-16 级缩进,取值范围:[1,16] 510 // 511 // 示例值:1 512 func (builder *ContentListBuilder) IndentLevel(indentLevel int) *ContentListBuilder { 513 builder.indentLevel = indentLevel 514 builder.indentLevelFlag = true 515 return builder 516 } 517 518 // 用于指定列表的行号,仅对有序列表和代码块生效 如果为有序列表设置了缩进,行号可能会显示为字母或者罗马数字 519 // 520 // 示例值:1 521 func (builder *ContentListBuilder) Number(number int) *ContentListBuilder { 522 builder.number = number 523 builder.numberFlag = true 524 return builder 525 } 526 527 func (builder *ContentListBuilder) Build() *ContentList { 528 req := &ContentList{} 529 if builder.typeFlag { 530 req.Type = &builder.type_ 531 532 } 533 if builder.indentLevelFlag { 534 req.IndentLevel = &builder.indentLevel 535 536 } 537 if builder.numberFlag { 538 req.Number = &builder.number 539 540 } 541 return req 542 } 543 544 type ContentParagraph struct { 545 Style *ContentParagraphStyle `json:"style,omitempty"` // 段落样式 546 Elements []*ContentParagraphElement `json:"elements,omitempty"` // 段落元素组成一个段落 547 } 548 549 type ContentParagraphBuilder struct { 550 style *ContentParagraphStyle // 段落样式 551 styleFlag bool 552 elements []*ContentParagraphElement // 段落元素组成一个段落 553 elementsFlag bool 554 } 555 556 func NewContentParagraphBuilder() *ContentParagraphBuilder { 557 builder := &ContentParagraphBuilder{} 558 return builder 559 } 560 561 // 段落样式 562 // 563 // 示例值: 564 func (builder *ContentParagraphBuilder) Style(style *ContentParagraphStyle) *ContentParagraphBuilder { 565 builder.style = style 566 builder.styleFlag = true 567 return builder 568 } 569 570 // 段落元素组成一个段落 571 // 572 // 示例值: 573 func (builder *ContentParagraphBuilder) Elements(elements []*ContentParagraphElement) *ContentParagraphBuilder { 574 builder.elements = elements 575 builder.elementsFlag = true 576 return builder 577 } 578 579 func (builder *ContentParagraphBuilder) Build() *ContentParagraph { 580 req := &ContentParagraph{} 581 if builder.styleFlag { 582 req.Style = builder.style 583 } 584 if builder.elementsFlag { 585 req.Elements = builder.elements 586 } 587 return req 588 } 589 590 type ContentParagraphElement struct { 591 Type *string `json:"type,omitempty"` // 元素类型 592 TextRun *ContentTextRun `json:"textRun,omitempty"` // 文本 593 DocsLink *ContentDocsLink `json:"docsLink,omitempty"` // 飞书云文档 594 Person *ContentPerson `json:"person,omitempty"` // 艾特用户 595 } 596 597 type ContentParagraphElementBuilder struct { 598 type_ string // 元素类型 599 typeFlag bool 600 textRun *ContentTextRun // 文本 601 textRunFlag bool 602 docsLink *ContentDocsLink // 飞书云文档 603 docsLinkFlag bool 604 person *ContentPerson // 艾特用户 605 personFlag bool 606 } 607 608 func NewContentParagraphElementBuilder() *ContentParagraphElementBuilder { 609 builder := &ContentParagraphElementBuilder{} 610 return builder 611 } 612 613 // 元素类型 614 // 615 // 示例值:textRun 616 func (builder *ContentParagraphElementBuilder) Type(type_ string) *ContentParagraphElementBuilder { 617 builder.type_ = type_ 618 builder.typeFlag = true 619 return builder 620 } 621 622 // 文本 623 // 624 // 示例值: 625 func (builder *ContentParagraphElementBuilder) TextRun(textRun *ContentTextRun) *ContentParagraphElementBuilder { 626 builder.textRun = textRun 627 builder.textRunFlag = true 628 return builder 629 } 630 631 // 飞书云文档 632 // 633 // 示例值: 634 func (builder *ContentParagraphElementBuilder) DocsLink(docsLink *ContentDocsLink) *ContentParagraphElementBuilder { 635 builder.docsLink = docsLink 636 builder.docsLinkFlag = true 637 return builder 638 } 639 640 // 艾特用户 641 // 642 // 示例值: 643 func (builder *ContentParagraphElementBuilder) Person(person *ContentPerson) *ContentParagraphElementBuilder { 644 builder.person = person 645 builder.personFlag = true 646 return builder 647 } 648 649 func (builder *ContentParagraphElementBuilder) Build() *ContentParagraphElement { 650 req := &ContentParagraphElement{} 651 if builder.typeFlag { 652 req.Type = &builder.type_ 653 654 } 655 if builder.textRunFlag { 656 req.TextRun = builder.textRun 657 } 658 if builder.docsLinkFlag { 659 req.DocsLink = builder.docsLink 660 } 661 if builder.personFlag { 662 req.Person = builder.person 663 } 664 return req 665 } 666 667 type ContentParagraphStyle struct { 668 List []*ContentList `json:"list,omitempty"` // 有序列表/无序列表/任务列表 669 } 670 671 type ContentParagraphStyleBuilder struct { 672 list []*ContentList // 有序列表/无序列表/任务列表 673 listFlag bool 674 } 675 676 func NewContentParagraphStyleBuilder() *ContentParagraphStyleBuilder { 677 builder := &ContentParagraphStyleBuilder{} 678 return builder 679 } 680 681 // 有序列表/无序列表/任务列表 682 // 683 // 示例值: 684 func (builder *ContentParagraphStyleBuilder) List(list []*ContentList) *ContentParagraphStyleBuilder { 685 builder.list = list 686 builder.listFlag = true 687 return builder 688 } 689 690 func (builder *ContentParagraphStyleBuilder) Build() *ContentParagraphStyle { 691 req := &ContentParagraphStyle{} 692 if builder.listFlag { 693 req.List = builder.list 694 } 695 return req 696 } 697 698 type ContentPerson struct { 699 OpenId *string `json:"openId,omitempty"` // 员工的OpenID 700 } 701 702 type ContentPersonBuilder struct { 703 openId string // 员工的OpenID 704 openIdFlag bool 705 } 706 707 func NewContentPersonBuilder() *ContentPersonBuilder { 708 builder := &ContentPersonBuilder{} 709 return builder 710 } 711 712 // 员工的OpenID 713 // 714 // 示例值:ou_3bbe8a09c20e89cce9bff989ed840674 715 func (builder *ContentPersonBuilder) OpenId(openId string) *ContentPersonBuilder { 716 builder.openId = openId 717 builder.openIdFlag = true 718 return builder 719 } 720 721 func (builder *ContentPersonBuilder) Build() *ContentPerson { 722 req := &ContentPerson{} 723 if builder.openIdFlag { 724 req.OpenId = &builder.openId 725 726 } 727 return req 728 } 729 730 type ContentTextRun struct { 731 Text *string `json:"text,omitempty"` // 具体的文本内容 732 Style *ContentTextStyle `json:"style,omitempty"` // 文本内容的样式,支持 BIUS、颜色等 733 } 734 735 type ContentTextRunBuilder struct { 736 text string // 具体的文本内容 737 textFlag bool 738 style *ContentTextStyle // 文本内容的样式,支持 BIUS、颜色等 739 styleFlag bool 740 } 741 742 func NewContentTextRunBuilder() *ContentTextRunBuilder { 743 builder := &ContentTextRunBuilder{} 744 return builder 745 } 746 747 // 具体的文本内容 748 // 749 // 示例值:周报内容 750 func (builder *ContentTextRunBuilder) Text(text string) *ContentTextRunBuilder { 751 builder.text = text 752 builder.textFlag = true 753 return builder 754 } 755 756 // 文本内容的样式,支持 BIUS、颜色等 757 // 758 // 示例值: 759 func (builder *ContentTextRunBuilder) Style(style *ContentTextStyle) *ContentTextRunBuilder { 760 builder.style = style 761 builder.styleFlag = true 762 return builder 763 } 764 765 func (builder *ContentTextRunBuilder) Build() *ContentTextRun { 766 req := &ContentTextRun{} 767 if builder.textFlag { 768 req.Text = &builder.text 769 770 } 771 if builder.styleFlag { 772 req.Style = builder.style 773 } 774 return req 775 } 776 777 type ContentTextStyle struct { 778 Bold *bool `json:"bold,omitempty"` // 是否加粗 779 StrikeThrough *bool `json:"strikeThrough,omitempty"` // 是否删除 780 BackColor *ContentColor `json:"backColor,omitempty"` // 背景颜色 781 TextColor *ContentColor `json:"textColor,omitempty"` // 字体颜色 782 Link *ContentLink `json:"link,omitempty"` // 链接地址 783 } 784 785 type ContentTextStyleBuilder struct { 786 bold bool // 是否加粗 787 boldFlag bool 788 strikeThrough bool // 是否删除 789 strikeThroughFlag bool 790 backColor *ContentColor // 背景颜色 791 backColorFlag bool 792 textColor *ContentColor // 字体颜色 793 textColorFlag bool 794 link *ContentLink // 链接地址 795 linkFlag bool 796 } 797 798 func NewContentTextStyleBuilder() *ContentTextStyleBuilder { 799 builder := &ContentTextStyleBuilder{} 800 return builder 801 } 802 803 // 是否加粗 804 // 805 // 示例值:true 806 func (builder *ContentTextStyleBuilder) Bold(bold bool) *ContentTextStyleBuilder { 807 builder.bold = bold 808 builder.boldFlag = true 809 return builder 810 } 811 812 // 是否删除 813 // 814 // 示例值:true 815 func (builder *ContentTextStyleBuilder) StrikeThrough(strikeThrough bool) *ContentTextStyleBuilder { 816 builder.strikeThrough = strikeThrough 817 builder.strikeThroughFlag = true 818 return builder 819 } 820 821 // 背景颜色 822 // 823 // 示例值: 824 func (builder *ContentTextStyleBuilder) BackColor(backColor *ContentColor) *ContentTextStyleBuilder { 825 builder.backColor = backColor 826 builder.backColorFlag = true 827 return builder 828 } 829 830 // 字体颜色 831 // 832 // 示例值: 833 func (builder *ContentTextStyleBuilder) TextColor(textColor *ContentColor) *ContentTextStyleBuilder { 834 builder.textColor = textColor 835 builder.textColorFlag = true 836 return builder 837 } 838 839 // 链接地址 840 // 841 // 示例值: 842 func (builder *ContentTextStyleBuilder) Link(link *ContentLink) *ContentTextStyleBuilder { 843 builder.link = link 844 builder.linkFlag = true 845 return builder 846 } 847 848 func (builder *ContentTextStyleBuilder) Build() *ContentTextStyle { 849 req := &ContentTextStyle{} 850 if builder.boldFlag { 851 req.Bold = &builder.bold 852 853 } 854 if builder.strikeThroughFlag { 855 req.StrikeThrough = &builder.strikeThrough 856 857 } 858 if builder.backColorFlag { 859 req.BackColor = builder.backColor 860 } 861 if builder.textColorFlag { 862 req.TextColor = builder.textColor 863 } 864 if builder.linkFlag { 865 req.Link = builder.link 866 } 867 return req 868 } 869 870 type CurrentOkrSimple struct { 871 OkrId *string `json:"okr_id,omitempty"` // OKR ID 872 PeriodId *string `json:"period_id,omitempty"` // 周期 ID 873 } 874 875 type CurrentOkrSimpleBuilder struct { 876 okrId string // OKR ID 877 okrIdFlag bool 878 periodId string // 周期 ID 879 periodIdFlag bool 880 } 881 882 func NewCurrentOkrSimpleBuilder() *CurrentOkrSimpleBuilder { 883 builder := &CurrentOkrSimpleBuilder{} 884 return builder 885 } 886 887 // OKR ID 888 // 889 // 示例值: 890 func (builder *CurrentOkrSimpleBuilder) OkrId(okrId string) *CurrentOkrSimpleBuilder { 891 builder.okrId = okrId 892 builder.okrIdFlag = true 893 return builder 894 } 895 896 // 周期 ID 897 // 898 // 示例值: 899 func (builder *CurrentOkrSimpleBuilder) PeriodId(periodId string) *CurrentOkrSimpleBuilder { 900 builder.periodId = periodId 901 builder.periodIdFlag = true 902 return builder 903 } 904 905 func (builder *CurrentOkrSimpleBuilder) Build() *CurrentOkrSimple { 906 req := &CurrentOkrSimple{} 907 if builder.okrIdFlag { 908 req.OkrId = &builder.okrId 909 910 } 911 if builder.periodIdFlag { 912 req.PeriodId = &builder.periodId 913 914 } 915 return req 916 } 917 918 type Dummy struct { 919 Id *string `json:"id,omitempty"` // id 920 } 921 922 type DummyBuilder struct { 923 id string // id 924 idFlag bool 925 } 926 927 func NewDummyBuilder() *DummyBuilder { 928 builder := &DummyBuilder{} 929 return builder 930 } 931 932 // id 933 // 934 // 示例值: 935 func (builder *DummyBuilder) Id(id string) *DummyBuilder { 936 builder.id = id 937 builder.idFlag = true 938 return builder 939 } 940 941 func (builder *DummyBuilder) Build() *Dummy { 942 req := &Dummy{} 943 if builder.idFlag { 944 req.Id = &builder.id 945 946 } 947 return req 948 } 949 950 type ImageInfo struct { 951 FileToken *string `json:"file_token,omitempty"` // 图片token 952 Url *string `json:"url,omitempty"` // 图片下载链接 953 } 954 955 type ImageInfoBuilder struct { 956 fileToken string // 图片token 957 fileTokenFlag bool 958 url string // 图片下载链接 959 urlFlag bool 960 } 961 962 func NewImageInfoBuilder() *ImageInfoBuilder { 963 builder := &ImageInfoBuilder{} 964 return builder 965 } 966 967 // 图片token 968 // 969 // 示例值:boxbcLxEnhUE3REJSAwAbVFZwPf 970 func (builder *ImageInfoBuilder) FileToken(fileToken string) *ImageInfoBuilder { 971 builder.fileToken = fileToken 972 builder.fileTokenFlag = true 973 return builder 974 } 975 976 // 图片下载链接 977 // 978 // 示例值:https://internal-api-okr.feishu-boe.cn/stream/api/downloadFile/?file_token=boxbcLxEnhUE3REJSAwAbVFZwPf&ticket=eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJ0YXJnZXRfaWQiOiI3MDQxNDMwMzc3NjQyMDgyMzIzIiwidGFyZ2V0X3R5cGUiOjMsImFjdGlvbiI6MiwiZmlsZV90b2tlbiI6ImJveGJjTHhFbmhVRTNSRUpTQXdBYlZGWndQZiIsInVzZXJfaWQiOiI2OTY5ODU1NTAxNzQ0ODM0MDkyIiwidGVuYW50X2lkIjoiNjg3NzUwMjY4NzYwOTQwNjk5MCIsImV4cCI6MTYzOTcyNTUwM30.G2RD3LJBycZuF0Myi2WD4IdJ1N5jB24KGjLrm9e4peNlF8uy2XflINVcTpvN6drshITErHu0ehibJI5Fci-Pkw 979 func (builder *ImageInfoBuilder) Url(url string) *ImageInfoBuilder { 980 builder.url = url 981 builder.urlFlag = true 982 return builder 983 } 984 985 func (builder *ImageInfoBuilder) Build() *ImageInfo { 986 req := &ImageInfo{} 987 if builder.fileTokenFlag { 988 req.FileToken = &builder.fileToken 989 990 } 991 if builder.urlFlag { 992 req.Url = &builder.url 993 994 } 995 return req 996 } 997 998 type Kr struct { 999 Id *string `json:"id,omitempty"` // KeyResult ID 1000 Pos *string `json:"pos,omitempty"` // KeyResult 在所属 Objective 中的排序 1001 Score *string `json:"score,omitempty"` // KeyResult 评分,返回值为百分制分数,需要除以 100 以获得 OKR 页面上显示的 1 分制分数 1002 Weight *string `json:"weight,omitempty"` // KeyResult 的权重 1003 Content *KrContent `json:"content,omitempty"` // KeyResult 对应的 Content 详细内容 1004 CreateTime *int `json:"create_time,omitempty"` // KeyResult 的创建时间 毫秒 1005 ModifyTime *int `json:"modify_time,omitempty"` // KeyResult 的最后修改时间 毫秒 1006 } 1007 1008 type KrBuilder struct { 1009 id string // KeyResult ID 1010 idFlag bool 1011 pos string // KeyResult 在所属 Objective 中的排序 1012 posFlag bool 1013 score string // KeyResult 评分,返回值为百分制分数,需要除以 100 以获得 OKR 页面上显示的 1 分制分数 1014 scoreFlag bool 1015 weight string // KeyResult 的权重 1016 weightFlag bool 1017 content *KrContent // KeyResult 对应的 Content 详细内容 1018 contentFlag bool 1019 createTime int // KeyResult 的创建时间 毫秒 1020 createTimeFlag bool 1021 modifyTime int // KeyResult 的最后修改时间 毫秒 1022 modifyTimeFlag bool 1023 } 1024 1025 func NewKrBuilder() *KrBuilder { 1026 builder := &KrBuilder{} 1027 return builder 1028 } 1029 1030 // KeyResult ID 1031 // 1032 // 示例值: 1033 func (builder *KrBuilder) Id(id string) *KrBuilder { 1034 builder.id = id 1035 builder.idFlag = true 1036 return builder 1037 } 1038 1039 // KeyResult 在所属 Objective 中的排序 1040 // 1041 // 示例值: 1042 func (builder *KrBuilder) Pos(pos string) *KrBuilder { 1043 builder.pos = pos 1044 builder.posFlag = true 1045 return builder 1046 } 1047 1048 // KeyResult 评分,返回值为百分制分数,需要除以 100 以获得 OKR 页面上显示的 1 分制分数 1049 // 1050 // 示例值: 1051 func (builder *KrBuilder) Score(score string) *KrBuilder { 1052 builder.score = score 1053 builder.scoreFlag = true 1054 return builder 1055 } 1056 1057 // KeyResult 的权重 1058 // 1059 // 示例值: 1060 func (builder *KrBuilder) Weight(weight string) *KrBuilder { 1061 builder.weight = weight 1062 builder.weightFlag = true 1063 return builder 1064 } 1065 1066 // KeyResult 对应的 Content 详细内容 1067 // 1068 // 示例值: 1069 func (builder *KrBuilder) Content(content *KrContent) *KrBuilder { 1070 builder.content = content 1071 builder.contentFlag = true 1072 return builder 1073 } 1074 1075 // KeyResult 的创建时间 毫秒 1076 // 1077 // 示例值: 1078 func (builder *KrBuilder) CreateTime(createTime int) *KrBuilder { 1079 builder.createTime = createTime 1080 builder.createTimeFlag = true 1081 return builder 1082 } 1083 1084 // KeyResult 的最后修改时间 毫秒 1085 // 1086 // 示例值: 1087 func (builder *KrBuilder) ModifyTime(modifyTime int) *KrBuilder { 1088 builder.modifyTime = modifyTime 1089 builder.modifyTimeFlag = true 1090 return builder 1091 } 1092 1093 func (builder *KrBuilder) Build() *Kr { 1094 req := &Kr{} 1095 if builder.idFlag { 1096 req.Id = &builder.id 1097 1098 } 1099 if builder.posFlag { 1100 req.Pos = &builder.pos 1101 1102 } 1103 if builder.scoreFlag { 1104 req.Score = &builder.score 1105 1106 } 1107 if builder.weightFlag { 1108 req.Weight = &builder.weight 1109 1110 } 1111 if builder.contentFlag { 1112 req.Content = builder.content 1113 } 1114 if builder.createTimeFlag { 1115 req.CreateTime = &builder.createTime 1116 1117 } 1118 if builder.modifyTimeFlag { 1119 req.ModifyTime = &builder.modifyTime 1120 1121 } 1122 return req 1123 } 1124 1125 type KrContent struct { 1126 Zh *string `json:"zh,omitempty"` // 中文内容 1127 En *string `json:"en,omitempty"` // 英文内容 1128 } 1129 1130 type KrContentBuilder struct { 1131 zh string // 中文内容 1132 zhFlag bool 1133 en string // 英文内容 1134 enFlag bool 1135 } 1136 1137 func NewKrContentBuilder() *KrContentBuilder { 1138 builder := &KrContentBuilder{} 1139 return builder 1140 } 1141 1142 // 中文内容 1143 // 1144 // 示例值: 1145 func (builder *KrContentBuilder) Zh(zh string) *KrContentBuilder { 1146 builder.zh = zh 1147 builder.zhFlag = true 1148 return builder 1149 } 1150 1151 // 英文内容 1152 // 1153 // 示例值: 1154 func (builder *KrContentBuilder) En(en string) *KrContentBuilder { 1155 builder.en = en 1156 builder.enFlag = true 1157 return builder 1158 } 1159 1160 func (builder *KrContentBuilder) Build() *KrContent { 1161 req := &KrContent{} 1162 if builder.zhFlag { 1163 req.Zh = &builder.zh 1164 1165 } 1166 if builder.enFlag { 1167 req.En = &builder.en 1168 1169 } 1170 return req 1171 } 1172 1173 type Objective struct { 1174 Id *string `json:"id,omitempty"` // 目标的ID 1175 OkrId *string `json:"okr_id,omitempty"` // 所属的OKR ID 1176 UserId *string `json:"user_id,omitempty"` // 拥有者的用户 UUID 1177 Pos *string `json:"pos,omitempty"` // Objective 在所属 OKR 中的排序 1178 Score *string `json:"score,omitempty"` // Objective 评分,返回值为百分制分数,需要除以 100 以获得 OKR 页面上显示的 1 分制分数 1179 Name *ObjectiveName `json:"name,omitempty"` // Objective 的详细内容 1180 Progress *ObjectiveProgress `json:"progress,omitempty"` // Objective 对应的 Progress 详细内容 1181 CreateTime *int `json:"create_time,omitempty"` // Objective 的创建时间 1182 ModifyTime *int `json:"modify_time,omitempty"` // Objective 的最后修改时间 1183 KrList []*Kr `json:"kr_list,omitempty"` // Objective 下的 KeyResult 列表 1184 AligningObjectiveList []*AlignObjective `json:"aligning_objective_list,omitempty"` // Objective 对齐别人的 Objective 列表 1185 AlignedObjectiveList []*AlignObjective `json:"aligned_objective_list,omitempty"` // 被别人对齐的 Objective 列表 1186 } 1187 1188 type ObjectiveBuilder struct { 1189 id string // 目标的ID 1190 idFlag bool 1191 okrId string // 所属的OKR ID 1192 okrIdFlag bool 1193 userId string // 拥有者的用户 UUID 1194 userIdFlag bool 1195 pos string // Objective 在所属 OKR 中的排序 1196 posFlag bool 1197 score string // Objective 评分,返回值为百分制分数,需要除以 100 以获得 OKR 页面上显示的 1 分制分数 1198 scoreFlag bool 1199 name *ObjectiveName // Objective 的详细内容 1200 nameFlag bool 1201 progress *ObjectiveProgress // Objective 对应的 Progress 详细内容 1202 progressFlag bool 1203 createTime int // Objective 的创建时间 1204 createTimeFlag bool 1205 modifyTime int // Objective 的最后修改时间 1206 modifyTimeFlag bool 1207 krList []*Kr // Objective 下的 KeyResult 列表 1208 krListFlag bool 1209 aligningObjectiveList []*AlignObjective // Objective 对齐别人的 Objective 列表 1210 aligningObjectiveListFlag bool 1211 alignedObjectiveList []*AlignObjective // 被别人对齐的 Objective 列表 1212 alignedObjectiveListFlag bool 1213 } 1214 1215 func NewObjectiveBuilder() *ObjectiveBuilder { 1216 builder := &ObjectiveBuilder{} 1217 return builder 1218 } 1219 1220 // 目标的ID 1221 // 1222 // 示例值: 1223 func (builder *ObjectiveBuilder) Id(id string) *ObjectiveBuilder { 1224 builder.id = id 1225 builder.idFlag = true 1226 return builder 1227 } 1228 1229 // 所属的OKR ID 1230 // 1231 // 示例值: 1232 func (builder *ObjectiveBuilder) OkrId(okrId string) *ObjectiveBuilder { 1233 builder.okrId = okrId 1234 builder.okrIdFlag = true 1235 return builder 1236 } 1237 1238 // 拥有者的用户 UUID 1239 // 1240 // 示例值: 1241 func (builder *ObjectiveBuilder) UserId(userId string) *ObjectiveBuilder { 1242 builder.userId = userId 1243 builder.userIdFlag = true 1244 return builder 1245 } 1246 1247 // Objective 在所属 OKR 中的排序 1248 // 1249 // 示例值: 1250 func (builder *ObjectiveBuilder) Pos(pos string) *ObjectiveBuilder { 1251 builder.pos = pos 1252 builder.posFlag = true 1253 return builder 1254 } 1255 1256 // Objective 评分,返回值为百分制分数,需要除以 100 以获得 OKR 页面上显示的 1 分制分数 1257 // 1258 // 示例值: 1259 func (builder *ObjectiveBuilder) Score(score string) *ObjectiveBuilder { 1260 builder.score = score 1261 builder.scoreFlag = true 1262 return builder 1263 } 1264 1265 // Objective 的详细内容 1266 // 1267 // 示例值: 1268 func (builder *ObjectiveBuilder) Name(name *ObjectiveName) *ObjectiveBuilder { 1269 builder.name = name 1270 builder.nameFlag = true 1271 return builder 1272 } 1273 1274 // Objective 对应的 Progress 详细内容 1275 // 1276 // 示例值: 1277 func (builder *ObjectiveBuilder) Progress(progress *ObjectiveProgress) *ObjectiveBuilder { 1278 builder.progress = progress 1279 builder.progressFlag = true 1280 return builder 1281 } 1282 1283 // Objective 的创建时间 1284 // 1285 // 示例值: 1286 func (builder *ObjectiveBuilder) CreateTime(createTime int) *ObjectiveBuilder { 1287 builder.createTime = createTime 1288 builder.createTimeFlag = true 1289 return builder 1290 } 1291 1292 // Objective 的最后修改时间 1293 // 1294 // 示例值: 1295 func (builder *ObjectiveBuilder) ModifyTime(modifyTime int) *ObjectiveBuilder { 1296 builder.modifyTime = modifyTime 1297 builder.modifyTimeFlag = true 1298 return builder 1299 } 1300 1301 // Objective 下的 KeyResult 列表 1302 // 1303 // 示例值: 1304 func (builder *ObjectiveBuilder) KrList(krList []*Kr) *ObjectiveBuilder { 1305 builder.krList = krList 1306 builder.krListFlag = true 1307 return builder 1308 } 1309 1310 // Objective 对齐别人的 Objective 列表 1311 // 1312 // 示例值: 1313 func (builder *ObjectiveBuilder) AligningObjectiveList(aligningObjectiveList []*AlignObjective) *ObjectiveBuilder { 1314 builder.aligningObjectiveList = aligningObjectiveList 1315 builder.aligningObjectiveListFlag = true 1316 return builder 1317 } 1318 1319 // 被别人对齐的 Objective 列表 1320 // 1321 // 示例值: 1322 func (builder *ObjectiveBuilder) AlignedObjectiveList(alignedObjectiveList []*AlignObjective) *ObjectiveBuilder { 1323 builder.alignedObjectiveList = alignedObjectiveList 1324 builder.alignedObjectiveListFlag = true 1325 return builder 1326 } 1327 1328 func (builder *ObjectiveBuilder) Build() *Objective { 1329 req := &Objective{} 1330 if builder.idFlag { 1331 req.Id = &builder.id 1332 1333 } 1334 if builder.okrIdFlag { 1335 req.OkrId = &builder.okrId 1336 1337 } 1338 if builder.userIdFlag { 1339 req.UserId = &builder.userId 1340 1341 } 1342 if builder.posFlag { 1343 req.Pos = &builder.pos 1344 1345 } 1346 if builder.scoreFlag { 1347 req.Score = &builder.score 1348 1349 } 1350 if builder.nameFlag { 1351 req.Name = builder.name 1352 } 1353 if builder.progressFlag { 1354 req.Progress = builder.progress 1355 } 1356 if builder.createTimeFlag { 1357 req.CreateTime = &builder.createTime 1358 1359 } 1360 if builder.modifyTimeFlag { 1361 req.ModifyTime = &builder.modifyTime 1362 1363 } 1364 if builder.krListFlag { 1365 req.KrList = builder.krList 1366 } 1367 if builder.aligningObjectiveListFlag { 1368 req.AligningObjectiveList = builder.aligningObjectiveList 1369 } 1370 if builder.alignedObjectiveListFlag { 1371 req.AlignedObjectiveList = builder.alignedObjectiveList 1372 } 1373 return req 1374 } 1375 1376 type ObjectiveName struct { 1377 Zh *string `json:"zh,omitempty"` // 中文内容 1378 En *string `json:"en,omitempty"` // 英文内容 1379 } 1380 1381 type ObjectiveNameBuilder struct { 1382 zh string // 中文内容 1383 zhFlag bool 1384 en string // 英文内容 1385 enFlag bool 1386 } 1387 1388 func NewObjectiveNameBuilder() *ObjectiveNameBuilder { 1389 builder := &ObjectiveNameBuilder{} 1390 return builder 1391 } 1392 1393 // 中文内容 1394 // 1395 // 示例值: 1396 func (builder *ObjectiveNameBuilder) Zh(zh string) *ObjectiveNameBuilder { 1397 builder.zh = zh 1398 builder.zhFlag = true 1399 return builder 1400 } 1401 1402 // 英文内容 1403 // 1404 // 示例值: 1405 func (builder *ObjectiveNameBuilder) En(en string) *ObjectiveNameBuilder { 1406 builder.en = en 1407 builder.enFlag = true 1408 return builder 1409 } 1410 1411 func (builder *ObjectiveNameBuilder) Build() *ObjectiveName { 1412 req := &ObjectiveName{} 1413 if builder.zhFlag { 1414 req.Zh = &builder.zh 1415 1416 } 1417 if builder.enFlag { 1418 req.En = &builder.en 1419 1420 } 1421 return req 1422 } 1423 1424 type ObjectiveProgress struct { 1425 Zh *string `json:"zh,omitempty"` // 中文内容 1426 En *string `json:"en,omitempty"` // 英文内容 1427 } 1428 1429 type ObjectiveProgressBuilder struct { 1430 zh string // 中文内容 1431 zhFlag bool 1432 en string // 英文内容 1433 enFlag bool 1434 } 1435 1436 func NewObjectiveProgressBuilder() *ObjectiveProgressBuilder { 1437 builder := &ObjectiveProgressBuilder{} 1438 return builder 1439 } 1440 1441 // 中文内容 1442 // 1443 // 示例值: 1444 func (builder *ObjectiveProgressBuilder) Zh(zh string) *ObjectiveProgressBuilder { 1445 builder.zh = zh 1446 builder.zhFlag = true 1447 return builder 1448 } 1449 1450 // 英文内容 1451 // 1452 // 示例值: 1453 func (builder *ObjectiveProgressBuilder) En(en string) *ObjectiveProgressBuilder { 1454 builder.en = en 1455 builder.enFlag = true 1456 return builder 1457 } 1458 1459 func (builder *ObjectiveProgressBuilder) Build() *ObjectiveProgress { 1460 req := &ObjectiveProgress{} 1461 if builder.zhFlag { 1462 req.Zh = &builder.zh 1463 1464 } 1465 if builder.enFlag { 1466 req.En = &builder.en 1467 1468 } 1469 return req 1470 } 1471 1472 type Okr struct { 1473 OkrId *string `json:"okr_id,omitempty"` // OKR ID 1474 PeriodId *string `json:"period_id,omitempty"` // 周期 ID 1475 PeriodType *string `json:"period_type,omitempty"` // 周期类型:1、月周期;2、年周期 1476 Name *OkrName `json:"name,omitempty"` // 周期展示名称 1477 CreateTime *int `json:"create_time,omitempty"` // 创建时间 毫秒 1478 ModifyTime *int `json:"modify_time,omitempty"` // 修改时间 毫秒 1479 ObjectiveList []*OkrDetailObjective `json:"objective_list,omitempty"` // objective 列表 1480 OkrScore *int `json:"okr_score,omitempty"` // 打分 1481 } 1482 1483 type OkrBuilder struct { 1484 okrId string // OKR ID 1485 okrIdFlag bool 1486 periodId string // 周期 ID 1487 periodIdFlag bool 1488 periodType string // 周期类型:1、月周期;2、年周期 1489 periodTypeFlag bool 1490 name *OkrName // 周期展示名称 1491 nameFlag bool 1492 createTime int // 创建时间 毫秒 1493 createTimeFlag bool 1494 modifyTime int // 修改时间 毫秒 1495 modifyTimeFlag bool 1496 objectiveList []*OkrDetailObjective // objective 列表 1497 objectiveListFlag bool 1498 okrScore int // 打分 1499 okrScoreFlag bool 1500 } 1501 1502 func NewOkrBuilder() *OkrBuilder { 1503 builder := &OkrBuilder{} 1504 return builder 1505 } 1506 1507 // OKR ID 1508 // 1509 // 示例值:6976173067307927084 1510 func (builder *OkrBuilder) OkrId(okrId string) *OkrBuilder { 1511 builder.okrId = okrId 1512 builder.okrIdFlag = true 1513 return builder 1514 } 1515 1516 // 周期 ID 1517 // 1518 // 示例值:6974586812973581868 1519 func (builder *OkrBuilder) PeriodId(periodId string) *OkrBuilder { 1520 builder.periodId = periodId 1521 builder.periodIdFlag = true 1522 return builder 1523 } 1524 1525 // 周期类型:1、月周期;2、年周期 1526 // 1527 // 示例值:1 1528 func (builder *OkrBuilder) PeriodType(periodType string) *OkrBuilder { 1529 builder.periodType = periodType 1530 builder.periodTypeFlag = true 1531 return builder 1532 } 1533 1534 // 周期展示名称 1535 // 1536 // 示例值: 1537 func (builder *OkrBuilder) Name(name *OkrName) *OkrBuilder { 1538 builder.name = name 1539 builder.nameFlag = true 1540 return builder 1541 } 1542 1543 // 创建时间 毫秒 1544 // 1545 // 示例值:1624267575928 1546 func (builder *OkrBuilder) CreateTime(createTime int) *OkrBuilder { 1547 builder.createTime = createTime 1548 builder.createTimeFlag = true 1549 return builder 1550 } 1551 1552 // 修改时间 毫秒 1553 // 1554 // 示例值:1624329170463 1555 func (builder *OkrBuilder) ModifyTime(modifyTime int) *OkrBuilder { 1556 builder.modifyTime = modifyTime 1557 builder.modifyTimeFlag = true 1558 return builder 1559 } 1560 1561 // objective 列表 1562 // 1563 // 示例值: 1564 func (builder *OkrBuilder) ObjectiveList(objectiveList []*OkrDetailObjective) *OkrBuilder { 1565 builder.objectiveList = objectiveList 1566 builder.objectiveListFlag = true 1567 return builder 1568 } 1569 1570 // 打分 1571 // 1572 // 示例值:0.5 1573 func (builder *OkrBuilder) OkrScore(okrScore int) *OkrBuilder { 1574 builder.okrScore = okrScore 1575 builder.okrScoreFlag = true 1576 return builder 1577 } 1578 1579 func (builder *OkrBuilder) Build() *Okr { 1580 req := &Okr{} 1581 if builder.okrIdFlag { 1582 req.OkrId = &builder.okrId 1583 1584 } 1585 if builder.periodIdFlag { 1586 req.PeriodId = &builder.periodId 1587 1588 } 1589 if builder.periodTypeFlag { 1590 req.PeriodType = &builder.periodType 1591 1592 } 1593 if builder.nameFlag { 1594 req.Name = builder.name 1595 } 1596 if builder.createTimeFlag { 1597 req.CreateTime = &builder.createTime 1598 1599 } 1600 if builder.modifyTimeFlag { 1601 req.ModifyTime = &builder.modifyTime 1602 1603 } 1604 if builder.objectiveListFlag { 1605 req.ObjectiveList = builder.objectiveList 1606 } 1607 if builder.okrScoreFlag { 1608 req.OkrScore = &builder.okrScore 1609 1610 } 1611 return req 1612 } 1613 1614 type OkrComment struct { 1615 Id *string `json:"id,omitempty"` // 全局评论ID 1616 Content *string `json:"content,omitempty"` // 全局评论内容 1617 CommentTime *int `json:"comment_time,omitempty"` // 全局评论时间 毫秒 1618 Commentator *OkrObjectiveAlignedObjectiveOwner `json:"commentator,omitempty"` // 评论人员 1619 LastModifier *OkrObjectiveAlignedObjectiveOwner `json:"last_modifier,omitempty"` // 修改评论的用户 1620 ContentModifyTime *int `json:"content_modify_time,omitempty"` // 评论的被修改时间 0 表示未被修改过, ms级别时间戳 1621 SolvedTime *int `json:"solved_time,omitempty"` // 评论被解决的时间 0 表示未解决过, ms级别时间戳 1622 } 1623 1624 type OkrCommentBuilder struct { 1625 id string // 全局评论ID 1626 idFlag bool 1627 content string // 全局评论内容 1628 contentFlag bool 1629 commentTime int // 全局评论时间 毫秒 1630 commentTimeFlag bool 1631 commentator *OkrObjectiveAlignedObjectiveOwner // 评论人员 1632 commentatorFlag bool 1633 lastModifier *OkrObjectiveAlignedObjectiveOwner // 修改评论的用户 1634 lastModifierFlag bool 1635 contentModifyTime int // 评论的被修改时间 0 表示未被修改过, ms级别时间戳 1636 contentModifyTimeFlag bool 1637 solvedTime int // 评论被解决的时间 0 表示未解决过, ms级别时间戳 1638 solvedTimeFlag bool 1639 } 1640 1641 func NewOkrCommentBuilder() *OkrCommentBuilder { 1642 builder := &OkrCommentBuilder{} 1643 return builder 1644 } 1645 1646 // 全局评论ID 1647 // 1648 // 示例值:6976173067307927084 1649 func (builder *OkrCommentBuilder) Id(id string) *OkrCommentBuilder { 1650 builder.id = id 1651 builder.idFlag = true 1652 return builder 1653 } 1654 1655 // 全局评论内容 1656 // 1657 // 示例值:well done 1658 func (builder *OkrCommentBuilder) Content(content string) *OkrCommentBuilder { 1659 builder.content = content 1660 builder.contentFlag = true 1661 return builder 1662 } 1663 1664 // 全局评论时间 毫秒 1665 // 1666 // 示例值:1624267575928 1667 func (builder *OkrCommentBuilder) CommentTime(commentTime int) *OkrCommentBuilder { 1668 builder.commentTime = commentTime 1669 builder.commentTimeFlag = true 1670 return builder 1671 } 1672 1673 // 评论人员 1674 // 1675 // 示例值: 1676 func (builder *OkrCommentBuilder) Commentator(commentator *OkrObjectiveAlignedObjectiveOwner) *OkrCommentBuilder { 1677 builder.commentator = commentator 1678 builder.commentatorFlag = true 1679 return builder 1680 } 1681 1682 // 修改评论的用户 1683 // 1684 // 示例值: 1685 func (builder *OkrCommentBuilder) LastModifier(lastModifier *OkrObjectiveAlignedObjectiveOwner) *OkrCommentBuilder { 1686 builder.lastModifier = lastModifier 1687 builder.lastModifierFlag = true 1688 return builder 1689 } 1690 1691 // 评论的被修改时间 0 表示未被修改过, ms级别时间戳 1692 // 1693 // 示例值:1624267575928 1694 func (builder *OkrCommentBuilder) ContentModifyTime(contentModifyTime int) *OkrCommentBuilder { 1695 builder.contentModifyTime = contentModifyTime 1696 builder.contentModifyTimeFlag = true 1697 return builder 1698 } 1699 1700 // 评论被解决的时间 0 表示未解决过, ms级别时间戳 1701 // 1702 // 示例值:1624267575928 1703 func (builder *OkrCommentBuilder) SolvedTime(solvedTime int) *OkrCommentBuilder { 1704 builder.solvedTime = solvedTime 1705 builder.solvedTimeFlag = true 1706 return builder 1707 } 1708 1709 func (builder *OkrCommentBuilder) Build() *OkrComment { 1710 req := &OkrComment{} 1711 if builder.idFlag { 1712 req.Id = &builder.id 1713 1714 } 1715 if builder.contentFlag { 1716 req.Content = &builder.content 1717 1718 } 1719 if builder.commentTimeFlag { 1720 req.CommentTime = &builder.commentTime 1721 1722 } 1723 if builder.commentatorFlag { 1724 req.Commentator = builder.commentator 1725 } 1726 if builder.lastModifierFlag { 1727 req.LastModifier = builder.lastModifier 1728 } 1729 if builder.contentModifyTimeFlag { 1730 req.ContentModifyTime = &builder.contentModifyTime 1731 1732 } 1733 if builder.solvedTimeFlag { 1734 req.SolvedTime = &builder.solvedTime 1735 1736 } 1737 return req 1738 } 1739 1740 type OkrObjectiveAlignment struct { 1741 Id *string `json:"id,omitempty"` // ID 1742 ToId *string `json:"to_id,omitempty"` // 目标id 1743 ToType *int `json:"to_type,omitempty"` // 目标类型 1744 } 1745 1746 type OkrObjectiveAlignmentBuilder struct { 1747 id string // ID 1748 idFlag bool 1749 toId string // 目标id 1750 toIdFlag bool 1751 toType int // 目标类型 1752 toTypeFlag bool 1753 } 1754 1755 func NewOkrObjectiveAlignmentBuilder() *OkrObjectiveAlignmentBuilder { 1756 builder := &OkrObjectiveAlignmentBuilder{} 1757 return builder 1758 } 1759 1760 // ID 1761 // 1762 // 示例值: 1763 func (builder *OkrObjectiveAlignmentBuilder) Id(id string) *OkrObjectiveAlignmentBuilder { 1764 builder.id = id 1765 builder.idFlag = true 1766 return builder 1767 } 1768 1769 // 目标id 1770 // 1771 // 示例值: 1772 func (builder *OkrObjectiveAlignmentBuilder) ToId(toId string) *OkrObjectiveAlignmentBuilder { 1773 builder.toId = toId 1774 builder.toIdFlag = true 1775 return builder 1776 } 1777 1778 // 目标类型 1779 // 1780 // 示例值: 1781 func (builder *OkrObjectiveAlignmentBuilder) ToType(toType int) *OkrObjectiveAlignmentBuilder { 1782 builder.toType = toType 1783 builder.toTypeFlag = true 1784 return builder 1785 } 1786 1787 func (builder *OkrObjectiveAlignmentBuilder) Build() *OkrObjectiveAlignment { 1788 req := &OkrObjectiveAlignment{} 1789 if builder.idFlag { 1790 req.Id = &builder.id 1791 1792 } 1793 if builder.toIdFlag { 1794 req.ToId = &builder.toId 1795 1796 } 1797 if builder.toTypeFlag { 1798 req.ToType = &builder.toType 1799 1800 } 1801 return req 1802 } 1803 1804 type OkrBatch struct { 1805 Id *string `json:"id,omitempty"` // id 1806 Permission *int `json:"permission,omitempty"` // OKR的访问权限 1807 PeriodId *string `json:"period_id,omitempty"` // period_id 1808 Name *string `json:"name,omitempty"` // 名称 1809 ObjectiveList []*OkrObjective `json:"objective_list,omitempty"` // Objective列表 1810 ConfirmStatus *int `json:"confirm_status,omitempty"` // OKR确认状态 1811 } 1812 1813 type OkrBatchBuilder struct { 1814 id string // id 1815 idFlag bool 1816 permission int // OKR的访问权限 1817 permissionFlag bool 1818 periodId string // period_id 1819 periodIdFlag bool 1820 name string // 名称 1821 nameFlag bool 1822 objectiveList []*OkrObjective // Objective列表 1823 objectiveListFlag bool 1824 confirmStatus int // OKR确认状态 1825 confirmStatusFlag bool 1826 } 1827 1828 func NewOkrBatchBuilder() *OkrBatchBuilder { 1829 builder := &OkrBatchBuilder{} 1830 return builder 1831 } 1832 1833 // id 1834 // 1835 // 示例值:11123123123123 1836 func (builder *OkrBatchBuilder) Id(id string) *OkrBatchBuilder { 1837 builder.id = id 1838 builder.idFlag = true 1839 return builder 1840 } 1841 1842 // OKR的访问权限 1843 // 1844 // 示例值:0 1845 func (builder *OkrBatchBuilder) Permission(permission int) *OkrBatchBuilder { 1846 builder.permission = permission 1847 builder.permissionFlag = true 1848 return builder 1849 } 1850 1851 // period_id 1852 // 1853 // 示例值:11123123123123 1854 func (builder *OkrBatchBuilder) PeriodId(periodId string) *OkrBatchBuilder { 1855 builder.periodId = periodId 1856 builder.periodIdFlag = true 1857 return builder 1858 } 1859 1860 // 名称 1861 // 1862 // 示例值:My OKR 1863 func (builder *OkrBatchBuilder) Name(name string) *OkrBatchBuilder { 1864 builder.name = name 1865 builder.nameFlag = true 1866 return builder 1867 } 1868 1869 // Objective列表 1870 // 1871 // 示例值: 1872 func (builder *OkrBatchBuilder) ObjectiveList(objectiveList []*OkrObjective) *OkrBatchBuilder { 1873 builder.objectiveList = objectiveList 1874 builder.objectiveListFlag = true 1875 return builder 1876 } 1877 1878 // OKR确认状态 1879 // 1880 // 示例值:0 1881 func (builder *OkrBatchBuilder) ConfirmStatus(confirmStatus int) *OkrBatchBuilder { 1882 builder.confirmStatus = confirmStatus 1883 builder.confirmStatusFlag = true 1884 return builder 1885 } 1886 1887 func (builder *OkrBatchBuilder) Build() *OkrBatch { 1888 req := &OkrBatch{} 1889 if builder.idFlag { 1890 req.Id = &builder.id 1891 1892 } 1893 if builder.permissionFlag { 1894 req.Permission = &builder.permission 1895 1896 } 1897 if builder.periodIdFlag { 1898 req.PeriodId = &builder.periodId 1899 1900 } 1901 if builder.nameFlag { 1902 req.Name = &builder.name 1903 1904 } 1905 if builder.objectiveListFlag { 1906 req.ObjectiveList = builder.objectiveList 1907 } 1908 if builder.confirmStatusFlag { 1909 req.ConfirmStatus = &builder.confirmStatus 1910 1911 } 1912 return req 1913 } 1914 1915 type OkrDetail struct { 1916 OkrId *string `json:"okr_id,omitempty"` // OKR ID 1917 PeriodId *string `json:"period_id,omitempty"` // 周期 ID 1918 PeriodType *string `json:"period_type,omitempty"` // 周期类型:1、月周期;2、年周期 1919 Name *OkrName `json:"name,omitempty"` // 周期展示名称 1920 CreateTime *int `json:"create_time,omitempty"` // 创建时间 1921 ModifyTime *int `json:"modify_time,omitempty"` // 修改时间 1922 ObjectiveList []*OkrDetailObjective `json:"objective_list,omitempty"` // objective 列表 1923 OkrScore *int `json:"okr_score,omitempty"` // 打分 1924 } 1925 1926 type OkrDetailBuilder struct { 1927 okrId string // OKR ID 1928 okrIdFlag bool 1929 periodId string // 周期 ID 1930 periodIdFlag bool 1931 periodType string // 周期类型:1、月周期;2、年周期 1932 periodTypeFlag bool 1933 name *OkrName // 周期展示名称 1934 nameFlag bool 1935 createTime int // 创建时间 1936 createTimeFlag bool 1937 modifyTime int // 修改时间 1938 modifyTimeFlag bool 1939 objectiveList []*OkrDetailObjective // objective 列表 1940 objectiveListFlag bool 1941 okrScore int // 打分 1942 okrScoreFlag bool 1943 } 1944 1945 func NewOkrDetailBuilder() *OkrDetailBuilder { 1946 builder := &OkrDetailBuilder{} 1947 return builder 1948 } 1949 1950 // OKR ID 1951 // 1952 // 示例值:6976173067307927084 1953 func (builder *OkrDetailBuilder) OkrId(okrId string) *OkrDetailBuilder { 1954 builder.okrId = okrId 1955 builder.okrIdFlag = true 1956 return builder 1957 } 1958 1959 // 周期 ID 1960 // 1961 // 示例值:6974586812973581868 1962 func (builder *OkrDetailBuilder) PeriodId(periodId string) *OkrDetailBuilder { 1963 builder.periodId = periodId 1964 builder.periodIdFlag = true 1965 return builder 1966 } 1967 1968 // 周期类型:1、月周期;2、年周期 1969 // 1970 // 示例值:1 1971 func (builder *OkrDetailBuilder) PeriodType(periodType string) *OkrDetailBuilder { 1972 builder.periodType = periodType 1973 builder.periodTypeFlag = true 1974 return builder 1975 } 1976 1977 // 周期展示名称 1978 // 1979 // 示例值: 1980 func (builder *OkrDetailBuilder) Name(name *OkrName) *OkrDetailBuilder { 1981 builder.name = name 1982 builder.nameFlag = true 1983 return builder 1984 } 1985 1986 // 创建时间 1987 // 1988 // 示例值:1624267575928 1989 func (builder *OkrDetailBuilder) CreateTime(createTime int) *OkrDetailBuilder { 1990 builder.createTime = createTime 1991 builder.createTimeFlag = true 1992 return builder 1993 } 1994 1995 // 修改时间 1996 // 1997 // 示例值:1624329170463 1998 func (builder *OkrDetailBuilder) ModifyTime(modifyTime int) *OkrDetailBuilder { 1999 builder.modifyTime = modifyTime 2000 builder.modifyTimeFlag = true 2001 return builder 2002 } 2003 2004 // objective 列表 2005 // 2006 // 示例值: 2007 func (builder *OkrDetailBuilder) ObjectiveList(objectiveList []*OkrDetailObjective) *OkrDetailBuilder { 2008 builder.objectiveList = objectiveList 2009 builder.objectiveListFlag = true 2010 return builder 2011 } 2012 2013 // 打分 2014 // 2015 // 示例值:0.5 2016 func (builder *OkrDetailBuilder) OkrScore(okrScore int) *OkrDetailBuilder { 2017 builder.okrScore = okrScore 2018 builder.okrScoreFlag = true 2019 return builder 2020 } 2021 2022 func (builder *OkrDetailBuilder) Build() *OkrDetail { 2023 req := &OkrDetail{} 2024 if builder.okrIdFlag { 2025 req.OkrId = &builder.okrId 2026 2027 } 2028 if builder.periodIdFlag { 2029 req.PeriodId = &builder.periodId 2030 2031 } 2032 if builder.periodTypeFlag { 2033 req.PeriodType = &builder.periodType 2034 2035 } 2036 if builder.nameFlag { 2037 req.Name = builder.name 2038 } 2039 if builder.createTimeFlag { 2040 req.CreateTime = &builder.createTime 2041 2042 } 2043 if builder.modifyTimeFlag { 2044 req.ModifyTime = &builder.modifyTime 2045 2046 } 2047 if builder.objectiveListFlag { 2048 req.ObjectiveList = builder.objectiveList 2049 } 2050 if builder.okrScoreFlag { 2051 req.OkrScore = &builder.okrScore 2052 2053 } 2054 return req 2055 } 2056 2057 type OkrDetailObjective struct { 2058 Id *string `json:"id,omitempty"` // Objective ID 2059 OkrId *string `json:"okr_id,omitempty"` // 所属okr id 2060 UserId *string `json:"user_id,omitempty"` // 用户id 2061 Pos *int `json:"pos,omitempty"` // pos 2062 Score *int `json:"score,omitempty"` // 得分 2063 Name *OkrName `json:"name,omitempty"` // Objective 名称 2064 Progress *OkrName `json:"progress,omitempty"` // Objective 进度描述 2065 CreateTime *int `json:"create_time,omitempty"` // 创建时间 毫秒 2066 ModifyTime *int `json:"modify_time,omitempty"` // 修改时间 毫秒 2067 KrList []*OkrDetailObjectiveKr `json:"kr_list,omitempty"` // Kr list 2068 AligningObjectiveList []*OkrDetailObjectiveAlign `json:"aligning_objective_list,omitempty"` // aligning_objective_list list 2069 AlignedObjectiveList []*OkrDetailObjectiveAlign `json:"aligned_objective_list,omitempty"` // aligned_objective_list list 2070 Weight *float64 `json:"weight,omitempty"` // 权重 2071 } 2072 2073 type OkrDetailObjectiveBuilder struct { 2074 id string // Objective ID 2075 idFlag bool 2076 okrId string // 所属okr id 2077 okrIdFlag bool 2078 userId string // 用户id 2079 userIdFlag bool 2080 pos int // pos 2081 posFlag bool 2082 score int // 得分 2083 scoreFlag bool 2084 name *OkrName // Objective 名称 2085 nameFlag bool 2086 progress *OkrName // Objective 进度描述 2087 progressFlag bool 2088 createTime int // 创建时间 毫秒 2089 createTimeFlag bool 2090 modifyTime int // 修改时间 毫秒 2091 modifyTimeFlag bool 2092 krList []*OkrDetailObjectiveKr // Kr list 2093 krListFlag bool 2094 aligningObjectiveList []*OkrDetailObjectiveAlign // aligning_objective_list list 2095 aligningObjectiveListFlag bool 2096 alignedObjectiveList []*OkrDetailObjectiveAlign // aligned_objective_list list 2097 alignedObjectiveListFlag bool 2098 weight float64 // 权重 2099 weightFlag bool 2100 } 2101 2102 func NewOkrDetailObjectiveBuilder() *OkrDetailObjectiveBuilder { 2103 builder := &OkrDetailObjectiveBuilder{} 2104 return builder 2105 } 2106 2107 // Objective ID 2108 // 2109 // 示例值:6976243668438730284 2110 func (builder *OkrDetailObjectiveBuilder) Id(id string) *OkrDetailObjectiveBuilder { 2111 builder.id = id 2112 builder.idFlag = true 2113 return builder 2114 } 2115 2116 // 所属okr id 2117 // 2118 // 示例值:6976173067307927084 2119 func (builder *OkrDetailObjectiveBuilder) OkrId(okrId string) *OkrDetailObjectiveBuilder { 2120 builder.okrId = okrId 2121 builder.okrIdFlag = true 2122 return builder 2123 } 2124 2125 // 用户id 2126 // 2127 // 示例值:ou_186301103180d3469a0bfd6e80977ec9 2128 func (builder *OkrDetailObjectiveBuilder) UserId(userId string) *OkrDetailObjectiveBuilder { 2129 builder.userId = userId 2130 builder.userIdFlag = true 2131 return builder 2132 } 2133 2134 // pos 2135 // 2136 // 示例值:0 2137 func (builder *OkrDetailObjectiveBuilder) Pos(pos int) *OkrDetailObjectiveBuilder { 2138 builder.pos = pos 2139 builder.posFlag = true 2140 return builder 2141 } 2142 2143 // 得分 2144 // 2145 // 示例值:0 2146 func (builder *OkrDetailObjectiveBuilder) Score(score int) *OkrDetailObjectiveBuilder { 2147 builder.score = score 2148 builder.scoreFlag = true 2149 return builder 2150 } 2151 2152 // Objective 名称 2153 // 2154 // 示例值: 2155 func (builder *OkrDetailObjectiveBuilder) Name(name *OkrName) *OkrDetailObjectiveBuilder { 2156 builder.name = name 2157 builder.nameFlag = true 2158 return builder 2159 } 2160 2161 // Objective 进度描述 2162 // 2163 // 示例值: 2164 func (builder *OkrDetailObjectiveBuilder) Progress(progress *OkrName) *OkrDetailObjectiveBuilder { 2165 builder.progress = progress 2166 builder.progressFlag = true 2167 return builder 2168 } 2169 2170 // 创建时间 毫秒 2171 // 2172 // 示例值:1624327915435 2173 func (builder *OkrDetailObjectiveBuilder) CreateTime(createTime int) *OkrDetailObjectiveBuilder { 2174 builder.createTime = createTime 2175 builder.createTimeFlag = true 2176 return builder 2177 } 2178 2179 // 修改时间 毫秒 2180 // 2181 // 示例值:1624329170551 2182 func (builder *OkrDetailObjectiveBuilder) ModifyTime(modifyTime int) *OkrDetailObjectiveBuilder { 2183 builder.modifyTime = modifyTime 2184 builder.modifyTimeFlag = true 2185 return builder 2186 } 2187 2188 // Kr list 2189 // 2190 // 示例值: 2191 func (builder *OkrDetailObjectiveBuilder) KrList(krList []*OkrDetailObjectiveKr) *OkrDetailObjectiveBuilder { 2192 builder.krList = krList 2193 builder.krListFlag = true 2194 return builder 2195 } 2196 2197 // aligning_objective_list list 2198 // 2199 // 示例值: 2200 func (builder *OkrDetailObjectiveBuilder) AligningObjectiveList(aligningObjectiveList []*OkrDetailObjectiveAlign) *OkrDetailObjectiveBuilder { 2201 builder.aligningObjectiveList = aligningObjectiveList 2202 builder.aligningObjectiveListFlag = true 2203 return builder 2204 } 2205 2206 // aligned_objective_list list 2207 // 2208 // 示例值: 2209 func (builder *OkrDetailObjectiveBuilder) AlignedObjectiveList(alignedObjectiveList []*OkrDetailObjectiveAlign) *OkrDetailObjectiveBuilder { 2210 builder.alignedObjectiveList = alignedObjectiveList 2211 builder.alignedObjectiveListFlag = true 2212 return builder 2213 } 2214 2215 // 权重 2216 // 2217 // 示例值:100 2218 func (builder *OkrDetailObjectiveBuilder) Weight(weight float64) *OkrDetailObjectiveBuilder { 2219 builder.weight = weight 2220 builder.weightFlag = true 2221 return builder 2222 } 2223 2224 func (builder *OkrDetailObjectiveBuilder) Build() *OkrDetailObjective { 2225 req := &OkrDetailObjective{} 2226 if builder.idFlag { 2227 req.Id = &builder.id 2228 2229 } 2230 if builder.okrIdFlag { 2231 req.OkrId = &builder.okrId 2232 2233 } 2234 if builder.userIdFlag { 2235 req.UserId = &builder.userId 2236 2237 } 2238 if builder.posFlag { 2239 req.Pos = &builder.pos 2240 2241 } 2242 if builder.scoreFlag { 2243 req.Score = &builder.score 2244 2245 } 2246 if builder.nameFlag { 2247 req.Name = builder.name 2248 } 2249 if builder.progressFlag { 2250 req.Progress = builder.progress 2251 } 2252 if builder.createTimeFlag { 2253 req.CreateTime = &builder.createTime 2254 2255 } 2256 if builder.modifyTimeFlag { 2257 req.ModifyTime = &builder.modifyTime 2258 2259 } 2260 if builder.krListFlag { 2261 req.KrList = builder.krList 2262 } 2263 if builder.aligningObjectiveListFlag { 2264 req.AligningObjectiveList = builder.aligningObjectiveList 2265 } 2266 if builder.alignedObjectiveListFlag { 2267 req.AlignedObjectiveList = builder.alignedObjectiveList 2268 } 2269 if builder.weightFlag { 2270 req.Weight = &builder.weight 2271 2272 } 2273 return req 2274 } 2275 2276 type OkrDetailObjectiveAlign struct { 2277 Id *string `json:"id,omitempty"` // Objective的ID 2278 OkrId *string `json:"okr_id,omitempty"` // OKR的ID 2279 UserId *string `json:"user_id,omitempty"` // 该Objective的Owner 2280 } 2281 2282 type OkrDetailObjectiveAlignBuilder struct { 2283 id string // Objective的ID 2284 idFlag bool 2285 okrId string // OKR的ID 2286 okrIdFlag bool 2287 userId string // 该Objective的Owner 2288 userIdFlag bool 2289 } 2290 2291 func NewOkrDetailObjectiveAlignBuilder() *OkrDetailObjectiveAlignBuilder { 2292 builder := &OkrDetailObjectiveAlignBuilder{} 2293 return builder 2294 } 2295 2296 // Objective的ID 2297 // 2298 // 示例值:6975871409026975276 2299 func (builder *OkrDetailObjectiveAlignBuilder) Id(id string) *OkrDetailObjectiveAlignBuilder { 2300 builder.id = id 2301 builder.idFlag = true 2302 return builder 2303 } 2304 2305 // OKR的ID 2306 // 2307 // 示例值:6975085709464143404 2308 func (builder *OkrDetailObjectiveAlignBuilder) OkrId(okrId string) *OkrDetailObjectiveAlignBuilder { 2309 builder.okrId = okrId 2310 builder.okrIdFlag = true 2311 return builder 2312 } 2313 2314 // 该Objective的Owner 2315 // 2316 // 示例值:6975085709464143404 2317 func (builder *OkrDetailObjectiveAlignBuilder) UserId(userId string) *OkrDetailObjectiveAlignBuilder { 2318 builder.userId = userId 2319 builder.userIdFlag = true 2320 return builder 2321 } 2322 2323 func (builder *OkrDetailObjectiveAlignBuilder) Build() *OkrDetailObjectiveAlign { 2324 req := &OkrDetailObjectiveAlign{} 2325 if builder.idFlag { 2326 req.Id = &builder.id 2327 2328 } 2329 if builder.okrIdFlag { 2330 req.OkrId = &builder.okrId 2331 2332 } 2333 if builder.userIdFlag { 2334 req.UserId = &builder.userId 2335 2336 } 2337 return req 2338 } 2339 2340 type OkrDetailObjectiveKr struct { 2341 Id *string `json:"id,omitempty"` // Key Result ID 2342 Pos *int `json:"pos,omitempty"` // pos 2343 Score *int `json:"score,omitempty"` // KeyResult打分(0 - 100) 2344 Weight *float64 `json:"weight,omitempty"` // KeyResult的权重(0 - 100)(废弃) 2345 Content *OkrName `json:"content,omitempty"` // KeyResult 内容 2346 CreateTime *int `json:"create_time,omitempty"` // 创建时间 毫秒 2347 ModifyTime *int `json:"modify_time,omitempty"` // 修改时间 毫秒 2348 } 2349 2350 type OkrDetailObjectiveKrBuilder struct { 2351 id string // Key Result ID 2352 idFlag bool 2353 pos int // pos 2354 posFlag bool 2355 score int // KeyResult打分(0 - 100) 2356 scoreFlag bool 2357 weight float64 // KeyResult的权重(0 - 100)(废弃) 2358 weightFlag bool 2359 content *OkrName // KeyResult 内容 2360 contentFlag bool 2361 createTime int // 创建时间 毫秒 2362 createTimeFlag bool 2363 modifyTime int // 修改时间 毫秒 2364 modifyTimeFlag bool 2365 } 2366 2367 func NewOkrDetailObjectiveKrBuilder() *OkrDetailObjectiveKrBuilder { 2368 builder := &OkrDetailObjectiveKrBuilder{} 2369 return builder 2370 } 2371 2372 // Key Result ID 2373 // 2374 // 示例值:6976243668438992428 2375 func (builder *OkrDetailObjectiveKrBuilder) Id(id string) *OkrDetailObjectiveKrBuilder { 2376 builder.id = id 2377 builder.idFlag = true 2378 return builder 2379 } 2380 2381 // pos 2382 // 2383 // 示例值:100 2384 func (builder *OkrDetailObjectiveKrBuilder) Pos(pos int) *OkrDetailObjectiveKrBuilder { 2385 builder.pos = pos 2386 builder.posFlag = true 2387 return builder 2388 } 2389 2390 // KeyResult打分(0 - 100) 2391 // 2392 // 示例值:100 2393 func (builder *OkrDetailObjectiveKrBuilder) Score(score int) *OkrDetailObjectiveKrBuilder { 2394 builder.score = score 2395 builder.scoreFlag = true 2396 return builder 2397 } 2398 2399 // KeyResult的权重(0 - 100)(废弃) 2400 // 2401 // 示例值:100 2402 func (builder *OkrDetailObjectiveKrBuilder) Weight(weight float64) *OkrDetailObjectiveKrBuilder { 2403 builder.weight = weight 2404 builder.weightFlag = true 2405 return builder 2406 } 2407 2408 // KeyResult 内容 2409 // 2410 // 示例值: 2411 func (builder *OkrDetailObjectiveKrBuilder) Content(content *OkrName) *OkrDetailObjectiveKrBuilder { 2412 builder.content = content 2413 builder.contentFlag = true 2414 return builder 2415 } 2416 2417 // 创建时间 毫秒 2418 // 2419 // 示例值:1624327915448 2420 func (builder *OkrDetailObjectiveKrBuilder) CreateTime(createTime int) *OkrDetailObjectiveKrBuilder { 2421 builder.createTime = createTime 2422 builder.createTimeFlag = true 2423 return builder 2424 } 2425 2426 // 修改时间 毫秒 2427 // 2428 // 示例值:1624327915448 2429 func (builder *OkrDetailObjectiveKrBuilder) ModifyTime(modifyTime int) *OkrDetailObjectiveKrBuilder { 2430 builder.modifyTime = modifyTime 2431 builder.modifyTimeFlag = true 2432 return builder 2433 } 2434 2435 func (builder *OkrDetailObjectiveKrBuilder) Build() *OkrDetailObjectiveKr { 2436 req := &OkrDetailObjectiveKr{} 2437 if builder.idFlag { 2438 req.Id = &builder.id 2439 2440 } 2441 if builder.posFlag { 2442 req.Pos = &builder.pos 2443 2444 } 2445 if builder.scoreFlag { 2446 req.Score = &builder.score 2447 2448 } 2449 if builder.weightFlag { 2450 req.Weight = &builder.weight 2451 2452 } 2453 if builder.contentFlag { 2454 req.Content = builder.content 2455 } 2456 if builder.createTimeFlag { 2457 req.CreateTime = &builder.createTime 2458 2459 } 2460 if builder.modifyTimeFlag { 2461 req.ModifyTime = &builder.modifyTime 2462 2463 } 2464 return req 2465 } 2466 2467 type OkrListInfo struct { 2468 CurrentOkr *Okr `json:"current_okr,omitempty"` // 中文内容 2469 OkrList []*Okr `json:"okr_list,omitempty"` // 英文内容 2470 } 2471 2472 type OkrListInfoBuilder struct { 2473 currentOkr *Okr // 中文内容 2474 currentOkrFlag bool 2475 okrList []*Okr // 英文内容 2476 okrListFlag bool 2477 } 2478 2479 func NewOkrListInfoBuilder() *OkrListInfoBuilder { 2480 builder := &OkrListInfoBuilder{} 2481 return builder 2482 } 2483 2484 // 中文内容 2485 // 2486 // 示例值: 2487 func (builder *OkrListInfoBuilder) CurrentOkr(currentOkr *Okr) *OkrListInfoBuilder { 2488 builder.currentOkr = currentOkr 2489 builder.currentOkrFlag = true 2490 return builder 2491 } 2492 2493 // 英文内容 2494 // 2495 // 示例值: 2496 func (builder *OkrListInfoBuilder) OkrList(okrList []*Okr) *OkrListInfoBuilder { 2497 builder.okrList = okrList 2498 builder.okrListFlag = true 2499 return builder 2500 } 2501 2502 func (builder *OkrListInfoBuilder) Build() *OkrListInfo { 2503 req := &OkrListInfo{} 2504 if builder.currentOkrFlag { 2505 req.CurrentOkr = builder.currentOkr 2506 } 2507 if builder.okrListFlag { 2508 req.OkrList = builder.okrList 2509 } 2510 return req 2511 } 2512 2513 type OkrName struct { 2514 Zh *string `json:"zh,omitempty"` // 中文内容 2515 En *string `json:"en,omitempty"` // 英文内容 2516 } 2517 2518 type OkrNameBuilder struct { 2519 zh string // 中文内容 2520 zhFlag bool 2521 en string // 英文内容 2522 enFlag bool 2523 } 2524 2525 func NewOkrNameBuilder() *OkrNameBuilder { 2526 builder := &OkrNameBuilder{} 2527 return builder 2528 } 2529 2530 // 中文内容 2531 // 2532 // 示例值: 2533 func (builder *OkrNameBuilder) Zh(zh string) *OkrNameBuilder { 2534 builder.zh = zh 2535 builder.zhFlag = true 2536 return builder 2537 } 2538 2539 // 英文内容 2540 // 2541 // 示例值: 2542 func (builder *OkrNameBuilder) En(en string) *OkrNameBuilder { 2543 builder.en = en 2544 builder.enFlag = true 2545 return builder 2546 } 2547 2548 func (builder *OkrNameBuilder) Build() *OkrName { 2549 req := &OkrName{} 2550 if builder.zhFlag { 2551 req.Zh = &builder.zh 2552 2553 } 2554 if builder.enFlag { 2555 req.En = &builder.en 2556 2557 } 2558 return req 2559 } 2560 2561 type OkrObjective struct { 2562 Id *string `json:"id,omitempty"` // Objective ID 2563 Permission *int `json:"permission,omitempty"` // 权限 2564 Content *string `json:"content,omitempty"` // Objective 内容 2565 ProgressReport *string `json:"progress_report,omitempty"` // Objective 进度记录内容 2566 Score *int `json:"score,omitempty"` // Objective 分数(0 - 100) 2567 Weight *float64 `json:"weight,omitempty"` // Objective的权重(0 - 100) 2568 ProgressRate *OkrObjectiveProgressRate `json:"progress_rate,omitempty"` // Objective进度 2569 KrList []*OkrObjectiveKr `json:"kr_list,omitempty"` // Objective KeyResult 列表 2570 AlignedObjectiveList []*OkrObjectiveAlignedObjective `json:"aligned_objective_list,omitempty"` // 对齐到该Objective的Objective列表 2571 AligningObjectiveList []*OkrObjectiveAlignedObjective `json:"aligning_objective_list,omitempty"` // 该Objective对齐到的Objective列表 2572 ProgressRecordList []*ProgressRecordSimplify `json:"progress_record_list,omitempty"` // 该Objective的进度列表 2573 ProgressRatePercentLastUpdatedTime *string `json:"progress_rate_percent_last_updated_time,omitempty"` // 最后一次进度百分比更新时间 毫秒 2574 ProgressRateStatusLastUpdatedTime *string `json:"progress_rate_status_last_updated_time,omitempty"` // 最后一次状态更新时间 毫秒 2575 ProgressRecordLastUpdatedTime *string `json:"progress_record_last_updated_time,omitempty"` // 最后一次在侧边栏新增或者编辑进展的时间 毫秒 2576 ProgressReportLastUpdatedTime *string `json:"progress_report_last_updated_time,omitempty"` // 最后一次编辑进展记录/备注的时间 毫秒 2577 ScoreLastUpdatedTime *string `json:"score_last_updated_time,omitempty"` // 最后一次打分更新时间 毫秒 2578 Deadline *string `json:"deadline,omitempty"` // 截止时间 毫秒 2579 MentionedUserList []*OkrObjectiveAlignedObjectiveOwner `json:"mentioned_user_list,omitempty"` // 该Objective提到的人员列表 2580 } 2581 2582 type OkrObjectiveBuilder struct { 2583 id string // Objective ID 2584 idFlag bool 2585 permission int // 权限 2586 permissionFlag bool 2587 content string // Objective 内容 2588 contentFlag bool 2589 progressReport string // Objective 进度记录内容 2590 progressReportFlag bool 2591 score int // Objective 分数(0 - 100) 2592 scoreFlag bool 2593 weight float64 // Objective的权重(0 - 100) 2594 weightFlag bool 2595 progressRate *OkrObjectiveProgressRate // Objective进度 2596 progressRateFlag bool 2597 krList []*OkrObjectiveKr // Objective KeyResult 列表 2598 krListFlag bool 2599 alignedObjectiveList []*OkrObjectiveAlignedObjective // 对齐到该Objective的Objective列表 2600 alignedObjectiveListFlag bool 2601 aligningObjectiveList []*OkrObjectiveAlignedObjective // 该Objective对齐到的Objective列表 2602 aligningObjectiveListFlag bool 2603 progressRecordList []*ProgressRecordSimplify // 该Objective的进度列表 2604 progressRecordListFlag bool 2605 progressRatePercentLastUpdatedTime string // 最后一次进度百分比更新时间 毫秒 2606 progressRatePercentLastUpdatedTimeFlag bool 2607 progressRateStatusLastUpdatedTime string // 最后一次状态更新时间 毫秒 2608 progressRateStatusLastUpdatedTimeFlag bool 2609 progressRecordLastUpdatedTime string // 最后一次在侧边栏新增或者编辑进展的时间 毫秒 2610 progressRecordLastUpdatedTimeFlag bool 2611 progressReportLastUpdatedTime string // 最后一次编辑进展记录/备注的时间 毫秒 2612 progressReportLastUpdatedTimeFlag bool 2613 scoreLastUpdatedTime string // 最后一次打分更新时间 毫秒 2614 scoreLastUpdatedTimeFlag bool 2615 deadline string // 截止时间 毫秒 2616 deadlineFlag bool 2617 mentionedUserList []*OkrObjectiveAlignedObjectiveOwner // 该Objective提到的人员列表 2618 mentionedUserListFlag bool 2619 } 2620 2621 func NewOkrObjectiveBuilder() *OkrObjectiveBuilder { 2622 builder := &OkrObjectiveBuilder{} 2623 return builder 2624 } 2625 2626 // Objective ID 2627 // 2628 // 示例值:1231231231231 2629 func (builder *OkrObjectiveBuilder) Id(id string) *OkrObjectiveBuilder { 2630 builder.id = id 2631 builder.idFlag = true 2632 return builder 2633 } 2634 2635 // 权限 2636 // 2637 // 示例值:0 2638 func (builder *OkrObjectiveBuilder) Permission(permission int) *OkrObjectiveBuilder { 2639 builder.permission = permission 2640 builder.permissionFlag = true 2641 return builder 2642 } 2643 2644 // Objective 内容 2645 // 2646 // 示例值:Objective 内容 2647 func (builder *OkrObjectiveBuilder) Content(content string) *OkrObjectiveBuilder { 2648 builder.content = content 2649 builder.contentFlag = true 2650 return builder 2651 } 2652 2653 // Objective 进度记录内容 2654 // 2655 // 示例值:Objective 进度记录内容 2656 func (builder *OkrObjectiveBuilder) ProgressReport(progressReport string) *OkrObjectiveBuilder { 2657 builder.progressReport = progressReport 2658 builder.progressReportFlag = true 2659 return builder 2660 } 2661 2662 // Objective 分数(0 - 100) 2663 // 2664 // 示例值:100 2665 func (builder *OkrObjectiveBuilder) Score(score int) *OkrObjectiveBuilder { 2666 builder.score = score 2667 builder.scoreFlag = true 2668 return builder 2669 } 2670 2671 // Objective的权重(0 - 100) 2672 // 2673 // 示例值:33.33 2674 func (builder *OkrObjectiveBuilder) Weight(weight float64) *OkrObjectiveBuilder { 2675 builder.weight = weight 2676 builder.weightFlag = true 2677 return builder 2678 } 2679 2680 // Objective进度 2681 // 2682 // 示例值: 2683 func (builder *OkrObjectiveBuilder) ProgressRate(progressRate *OkrObjectiveProgressRate) *OkrObjectiveBuilder { 2684 builder.progressRate = progressRate 2685 builder.progressRateFlag = true 2686 return builder 2687 } 2688 2689 // Objective KeyResult 列表 2690 // 2691 // 示例值: 2692 func (builder *OkrObjectiveBuilder) KrList(krList []*OkrObjectiveKr) *OkrObjectiveBuilder { 2693 builder.krList = krList 2694 builder.krListFlag = true 2695 return builder 2696 } 2697 2698 // 对齐到该Objective的Objective列表 2699 // 2700 // 示例值: 2701 func (builder *OkrObjectiveBuilder) AlignedObjectiveList(alignedObjectiveList []*OkrObjectiveAlignedObjective) *OkrObjectiveBuilder { 2702 builder.alignedObjectiveList = alignedObjectiveList 2703 builder.alignedObjectiveListFlag = true 2704 return builder 2705 } 2706 2707 // 该Objective对齐到的Objective列表 2708 // 2709 // 示例值: 2710 func (builder *OkrObjectiveBuilder) AligningObjectiveList(aligningObjectiveList []*OkrObjectiveAlignedObjective) *OkrObjectiveBuilder { 2711 builder.aligningObjectiveList = aligningObjectiveList 2712 builder.aligningObjectiveListFlag = true 2713 return builder 2714 } 2715 2716 // 该Objective的进度列表 2717 // 2718 // 示例值: 2719 func (builder *OkrObjectiveBuilder) ProgressRecordList(progressRecordList []*ProgressRecordSimplify) *OkrObjectiveBuilder { 2720 builder.progressRecordList = progressRecordList 2721 builder.progressRecordListFlag = true 2722 return builder 2723 } 2724 2725 // 最后一次进度百分比更新时间 毫秒 2726 // 2727 // 示例值:1618500278663 2728 func (builder *OkrObjectiveBuilder) ProgressRatePercentLastUpdatedTime(progressRatePercentLastUpdatedTime string) *OkrObjectiveBuilder { 2729 builder.progressRatePercentLastUpdatedTime = progressRatePercentLastUpdatedTime 2730 builder.progressRatePercentLastUpdatedTimeFlag = true 2731 return builder 2732 } 2733 2734 // 最后一次状态更新时间 毫秒 2735 // 2736 // 示例值:1618500278663 2737 func (builder *OkrObjectiveBuilder) ProgressRateStatusLastUpdatedTime(progressRateStatusLastUpdatedTime string) *OkrObjectiveBuilder { 2738 builder.progressRateStatusLastUpdatedTime = progressRateStatusLastUpdatedTime 2739 builder.progressRateStatusLastUpdatedTimeFlag = true 2740 return builder 2741 } 2742 2743 // 最后一次在侧边栏新增或者编辑进展的时间 毫秒 2744 // 2745 // 示例值:1618500278663 2746 func (builder *OkrObjectiveBuilder) ProgressRecordLastUpdatedTime(progressRecordLastUpdatedTime string) *OkrObjectiveBuilder { 2747 builder.progressRecordLastUpdatedTime = progressRecordLastUpdatedTime 2748 builder.progressRecordLastUpdatedTimeFlag = true 2749 return builder 2750 } 2751 2752 // 最后一次编辑进展记录/备注的时间 毫秒 2753 // 2754 // 示例值:1618500278663 2755 func (builder *OkrObjectiveBuilder) ProgressReportLastUpdatedTime(progressReportLastUpdatedTime string) *OkrObjectiveBuilder { 2756 builder.progressReportLastUpdatedTime = progressReportLastUpdatedTime 2757 builder.progressReportLastUpdatedTimeFlag = true 2758 return builder 2759 } 2760 2761 // 最后一次打分更新时间 毫秒 2762 // 2763 // 示例值:1618500278663 2764 func (builder *OkrObjectiveBuilder) ScoreLastUpdatedTime(scoreLastUpdatedTime string) *OkrObjectiveBuilder { 2765 builder.scoreLastUpdatedTime = scoreLastUpdatedTime 2766 builder.scoreLastUpdatedTimeFlag = true 2767 return builder 2768 } 2769 2770 // 截止时间 毫秒 2771 // 2772 // 示例值:1618500278663 2773 func (builder *OkrObjectiveBuilder) Deadline(deadline string) *OkrObjectiveBuilder { 2774 builder.deadline = deadline 2775 builder.deadlineFlag = true 2776 return builder 2777 } 2778 2779 // 该Objective提到的人员列表 2780 // 2781 // 示例值: 2782 func (builder *OkrObjectiveBuilder) MentionedUserList(mentionedUserList []*OkrObjectiveAlignedObjectiveOwner) *OkrObjectiveBuilder { 2783 builder.mentionedUserList = mentionedUserList 2784 builder.mentionedUserListFlag = true 2785 return builder 2786 } 2787 2788 func (builder *OkrObjectiveBuilder) Build() *OkrObjective { 2789 req := &OkrObjective{} 2790 if builder.idFlag { 2791 req.Id = &builder.id 2792 2793 } 2794 if builder.permissionFlag { 2795 req.Permission = &builder.permission 2796 2797 } 2798 if builder.contentFlag { 2799 req.Content = &builder.content 2800 2801 } 2802 if builder.progressReportFlag { 2803 req.ProgressReport = &builder.progressReport 2804 2805 } 2806 if builder.scoreFlag { 2807 req.Score = &builder.score 2808 2809 } 2810 if builder.weightFlag { 2811 req.Weight = &builder.weight 2812 2813 } 2814 if builder.progressRateFlag { 2815 req.ProgressRate = builder.progressRate 2816 } 2817 if builder.krListFlag { 2818 req.KrList = builder.krList 2819 } 2820 if builder.alignedObjectiveListFlag { 2821 req.AlignedObjectiveList = builder.alignedObjectiveList 2822 } 2823 if builder.aligningObjectiveListFlag { 2824 req.AligningObjectiveList = builder.aligningObjectiveList 2825 } 2826 if builder.progressRecordListFlag { 2827 req.ProgressRecordList = builder.progressRecordList 2828 } 2829 if builder.progressRatePercentLastUpdatedTimeFlag { 2830 req.ProgressRatePercentLastUpdatedTime = &builder.progressRatePercentLastUpdatedTime 2831 2832 } 2833 if builder.progressRateStatusLastUpdatedTimeFlag { 2834 req.ProgressRateStatusLastUpdatedTime = &builder.progressRateStatusLastUpdatedTime 2835 2836 } 2837 if builder.progressRecordLastUpdatedTimeFlag { 2838 req.ProgressRecordLastUpdatedTime = &builder.progressRecordLastUpdatedTime 2839 2840 } 2841 if builder.progressReportLastUpdatedTimeFlag { 2842 req.ProgressReportLastUpdatedTime = &builder.progressReportLastUpdatedTime 2843 2844 } 2845 if builder.scoreLastUpdatedTimeFlag { 2846 req.ScoreLastUpdatedTime = &builder.scoreLastUpdatedTime 2847 2848 } 2849 if builder.deadlineFlag { 2850 req.Deadline = &builder.deadline 2851 2852 } 2853 if builder.mentionedUserListFlag { 2854 req.MentionedUserList = builder.mentionedUserList 2855 } 2856 return req 2857 } 2858 2859 type OkrObjectiveAlignedObjective struct { 2860 Id *string `json:"id,omitempty"` // Objective的ID 2861 OkrId *string `json:"okr_id,omitempty"` // OKR的ID 2862 Owner *OkrObjectiveAlignedObjectiveOwner `json:"owner,omitempty"` // 该Objective的Owner 2863 } 2864 2865 type OkrObjectiveAlignedObjectiveBuilder struct { 2866 id string // Objective的ID 2867 idFlag bool 2868 okrId string // OKR的ID 2869 okrIdFlag bool 2870 owner *OkrObjectiveAlignedObjectiveOwner // 该Objective的Owner 2871 ownerFlag bool 2872 } 2873 2874 func NewOkrObjectiveAlignedObjectiveBuilder() *OkrObjectiveAlignedObjectiveBuilder { 2875 builder := &OkrObjectiveAlignedObjectiveBuilder{} 2876 return builder 2877 } 2878 2879 // Objective的ID 2880 // 2881 // 示例值:1231231231213 2882 func (builder *OkrObjectiveAlignedObjectiveBuilder) Id(id string) *OkrObjectiveAlignedObjectiveBuilder { 2883 builder.id = id 2884 builder.idFlag = true 2885 return builder 2886 } 2887 2888 // OKR的ID 2889 // 2890 // 示例值:12323231231213 2891 func (builder *OkrObjectiveAlignedObjectiveBuilder) OkrId(okrId string) *OkrObjectiveAlignedObjectiveBuilder { 2892 builder.okrId = okrId 2893 builder.okrIdFlag = true 2894 return builder 2895 } 2896 2897 // 该Objective的Owner 2898 // 2899 // 示例值: 2900 func (builder *OkrObjectiveAlignedObjectiveBuilder) Owner(owner *OkrObjectiveAlignedObjectiveOwner) *OkrObjectiveAlignedObjectiveBuilder { 2901 builder.owner = owner 2902 builder.ownerFlag = true 2903 return builder 2904 } 2905 2906 func (builder *OkrObjectiveAlignedObjectiveBuilder) Build() *OkrObjectiveAlignedObjective { 2907 req := &OkrObjectiveAlignedObjective{} 2908 if builder.idFlag { 2909 req.Id = &builder.id 2910 2911 } 2912 if builder.okrIdFlag { 2913 req.OkrId = &builder.okrId 2914 2915 } 2916 if builder.ownerFlag { 2917 req.Owner = builder.owner 2918 } 2919 return req 2920 } 2921 2922 type OkrObjectiveAlignedObjectiveOwner struct { 2923 OpenId *string `json:"open_id,omitempty"` // 用户的 open_id 2924 UserId *string `json:"user_id,omitempty"` // 用户的 user_id 2925 } 2926 2927 type OkrObjectiveAlignedObjectiveOwnerBuilder struct { 2928 openId string // 用户的 open_id 2929 openIdFlag bool 2930 userId string // 用户的 user_id 2931 userIdFlag bool 2932 } 2933 2934 func NewOkrObjectiveAlignedObjectiveOwnerBuilder() *OkrObjectiveAlignedObjectiveOwnerBuilder { 2935 builder := &OkrObjectiveAlignedObjectiveOwnerBuilder{} 2936 return builder 2937 } 2938 2939 // 用户的 open_id 2940 // 2941 // 示例值:od-asd2dasdasd 2942 func (builder *OkrObjectiveAlignedObjectiveOwnerBuilder) OpenId(openId string) *OkrObjectiveAlignedObjectiveOwnerBuilder { 2943 builder.openId = openId 2944 builder.openIdFlag = true 2945 return builder 2946 } 2947 2948 // 用户的 user_id 2949 // 2950 // 示例值:ou-ux987dsf6x 2951 func (builder *OkrObjectiveAlignedObjectiveOwnerBuilder) UserId(userId string) *OkrObjectiveAlignedObjectiveOwnerBuilder { 2952 builder.userId = userId 2953 builder.userIdFlag = true 2954 return builder 2955 } 2956 2957 func (builder *OkrObjectiveAlignedObjectiveOwnerBuilder) Build() *OkrObjectiveAlignedObjectiveOwner { 2958 req := &OkrObjectiveAlignedObjectiveOwner{} 2959 if builder.openIdFlag { 2960 req.OpenId = &builder.openId 2961 2962 } 2963 if builder.userIdFlag { 2964 req.UserId = &builder.userId 2965 2966 } 2967 return req 2968 } 2969 2970 type OkrObjectiveKr struct { 2971 Id *string `json:"id,omitempty"` // Key Result ID 2972 Content *string `json:"content,omitempty"` // KeyResult 内容 2973 Score *int `json:"score,omitempty"` // KeyResult打分(0 - 100) 2974 Weight *int `json:"weight,omitempty"` // KeyResult权重(0 - 100)(废弃) 2975 KrWeight *float64 `json:"kr_weight,omitempty"` // KeyResult的权重(0 - 100) 2976 ProgressRate *OkrObjectiveProgressRate `json:"progress_rate,omitempty"` // KR进度 2977 ProgressRecordList []*ProgressRecordSimplify `json:"progress_record_list,omitempty"` // 该KR的进度列表 2978 ProgressRatePercentLastUpdatedTime *string `json:"progress_rate_percent_last_updated_time,omitempty"` // 最后一次进度百分比更新时间 毫秒 2979 ProgressRateStatusLastUpdatedTime *string `json:"progress_rate_status_last_updated_time,omitempty"` // 最后一次状态更新时间 毫秒 2980 ProgressRecordLastUpdatedTime *string `json:"progress_record_last_updated_time,omitempty"` // 最后一次在侧边栏新增或者编辑进展的时间 毫秒 2981 ProgressReportLastUpdatedTime *string `json:"progress_report_last_updated_time,omitempty"` // 最后一次编辑进展记录/备注的时间 毫秒 2982 ScoreLastUpdatedTime *string `json:"score_last_updated_time,omitempty"` // 最后一次打分更新时间 毫秒 2983 Deadline *string `json:"deadline,omitempty"` // 截止时间 毫秒 2984 MentionedUserList []*OkrObjectiveAlignedObjectiveOwner `json:"mentioned_user_list,omitempty"` // 该Objective提到的人员列表 2985 } 2986 2987 type OkrObjectiveKrBuilder struct { 2988 id string // Key Result ID 2989 idFlag bool 2990 content string // KeyResult 内容 2991 contentFlag bool 2992 score int // KeyResult打分(0 - 100) 2993 scoreFlag bool 2994 weight int // KeyResult权重(0 - 100)(废弃) 2995 weightFlag bool 2996 krWeight float64 // KeyResult的权重(0 - 100) 2997 krWeightFlag bool 2998 progressRate *OkrObjectiveProgressRate // KR进度 2999 progressRateFlag bool 3000 progressRecordList []*ProgressRecordSimplify // 该KR的进度列表 3001 progressRecordListFlag bool 3002 progressRatePercentLastUpdatedTime string // 最后一次进度百分比更新时间 毫秒 3003 progressRatePercentLastUpdatedTimeFlag bool 3004 progressRateStatusLastUpdatedTime string // 最后一次状态更新时间 毫秒 3005 progressRateStatusLastUpdatedTimeFlag bool 3006 progressRecordLastUpdatedTime string // 最后一次在侧边栏新增或者编辑进展的时间 毫秒 3007 progressRecordLastUpdatedTimeFlag bool 3008 progressReportLastUpdatedTime string // 最后一次编辑进展记录/备注的时间 毫秒 3009 progressReportLastUpdatedTimeFlag bool 3010 scoreLastUpdatedTime string // 最后一次打分更新时间 毫秒 3011 scoreLastUpdatedTimeFlag bool 3012 deadline string // 截止时间 毫秒 3013 deadlineFlag bool 3014 mentionedUserList []*OkrObjectiveAlignedObjectiveOwner // 该Objective提到的人员列表 3015 mentionedUserListFlag bool 3016 } 3017 3018 func NewOkrObjectiveKrBuilder() *OkrObjectiveKrBuilder { 3019 builder := &OkrObjectiveKrBuilder{} 3020 return builder 3021 } 3022 3023 // Key Result ID 3024 // 3025 // 示例值:1231231223 3026 func (builder *OkrObjectiveKrBuilder) Id(id string) *OkrObjectiveKrBuilder { 3027 builder.id = id 3028 builder.idFlag = true 3029 return builder 3030 } 3031 3032 // KeyResult 内容 3033 // 3034 // 示例值:KeyResult 内容 3035 func (builder *OkrObjectiveKrBuilder) Content(content string) *OkrObjectiveKrBuilder { 3036 builder.content = content 3037 builder.contentFlag = true 3038 return builder 3039 } 3040 3041 // KeyResult打分(0 - 100) 3042 // 3043 // 示例值:100 3044 func (builder *OkrObjectiveKrBuilder) Score(score int) *OkrObjectiveKrBuilder { 3045 builder.score = score 3046 builder.scoreFlag = true 3047 return builder 3048 } 3049 3050 // KeyResult权重(0 - 100)(废弃) 3051 // 3052 // 示例值:100 3053 func (builder *OkrObjectiveKrBuilder) Weight(weight int) *OkrObjectiveKrBuilder { 3054 builder.weight = weight 3055 builder.weightFlag = true 3056 return builder 3057 } 3058 3059 // KeyResult的权重(0 - 100) 3060 // 3061 // 示例值:33.33 3062 func (builder *OkrObjectiveKrBuilder) KrWeight(krWeight float64) *OkrObjectiveKrBuilder { 3063 builder.krWeight = krWeight 3064 builder.krWeightFlag = true 3065 return builder 3066 } 3067 3068 // KR进度 3069 // 3070 // 示例值: 3071 func (builder *OkrObjectiveKrBuilder) ProgressRate(progressRate *OkrObjectiveProgressRate) *OkrObjectiveKrBuilder { 3072 builder.progressRate = progressRate 3073 builder.progressRateFlag = true 3074 return builder 3075 } 3076 3077 // 该KR的进度列表 3078 // 3079 // 示例值: 3080 func (builder *OkrObjectiveKrBuilder) ProgressRecordList(progressRecordList []*ProgressRecordSimplify) *OkrObjectiveKrBuilder { 3081 builder.progressRecordList = progressRecordList 3082 builder.progressRecordListFlag = true 3083 return builder 3084 } 3085 3086 // 最后一次进度百分比更新时间 毫秒 3087 // 3088 // 示例值:1618500278663 3089 func (builder *OkrObjectiveKrBuilder) ProgressRatePercentLastUpdatedTime(progressRatePercentLastUpdatedTime string) *OkrObjectiveKrBuilder { 3090 builder.progressRatePercentLastUpdatedTime = progressRatePercentLastUpdatedTime 3091 builder.progressRatePercentLastUpdatedTimeFlag = true 3092 return builder 3093 } 3094 3095 // 最后一次状态更新时间 毫秒 3096 // 3097 // 示例值:1618500278663 3098 func (builder *OkrObjectiveKrBuilder) ProgressRateStatusLastUpdatedTime(progressRateStatusLastUpdatedTime string) *OkrObjectiveKrBuilder { 3099 builder.progressRateStatusLastUpdatedTime = progressRateStatusLastUpdatedTime 3100 builder.progressRateStatusLastUpdatedTimeFlag = true 3101 return builder 3102 } 3103 3104 // 最后一次在侧边栏新增或者编辑进展的时间 毫秒 3105 // 3106 // 示例值:1618500278663 3107 func (builder *OkrObjectiveKrBuilder) ProgressRecordLastUpdatedTime(progressRecordLastUpdatedTime string) *OkrObjectiveKrBuilder { 3108 builder.progressRecordLastUpdatedTime = progressRecordLastUpdatedTime 3109 builder.progressRecordLastUpdatedTimeFlag = true 3110 return builder 3111 } 3112 3113 // 最后一次编辑进展记录/备注的时间 毫秒 3114 // 3115 // 示例值:1618500278663 3116 func (builder *OkrObjectiveKrBuilder) ProgressReportLastUpdatedTime(progressReportLastUpdatedTime string) *OkrObjectiveKrBuilder { 3117 builder.progressReportLastUpdatedTime = progressReportLastUpdatedTime 3118 builder.progressReportLastUpdatedTimeFlag = true 3119 return builder 3120 } 3121 3122 // 最后一次打分更新时间 毫秒 3123 // 3124 // 示例值:1618500278663 3125 func (builder *OkrObjectiveKrBuilder) ScoreLastUpdatedTime(scoreLastUpdatedTime string) *OkrObjectiveKrBuilder { 3126 builder.scoreLastUpdatedTime = scoreLastUpdatedTime 3127 builder.scoreLastUpdatedTimeFlag = true 3128 return builder 3129 } 3130 3131 // 截止时间 毫秒 3132 // 3133 // 示例值:1618500278663 3134 func (builder *OkrObjectiveKrBuilder) Deadline(deadline string) *OkrObjectiveKrBuilder { 3135 builder.deadline = deadline 3136 builder.deadlineFlag = true 3137 return builder 3138 } 3139 3140 // 该Objective提到的人员列表 3141 // 3142 // 示例值: 3143 func (builder *OkrObjectiveKrBuilder) MentionedUserList(mentionedUserList []*OkrObjectiveAlignedObjectiveOwner) *OkrObjectiveKrBuilder { 3144 builder.mentionedUserList = mentionedUserList 3145 builder.mentionedUserListFlag = true 3146 return builder 3147 } 3148 3149 func (builder *OkrObjectiveKrBuilder) Build() *OkrObjectiveKr { 3150 req := &OkrObjectiveKr{} 3151 if builder.idFlag { 3152 req.Id = &builder.id 3153 3154 } 3155 if builder.contentFlag { 3156 req.Content = &builder.content 3157 3158 } 3159 if builder.scoreFlag { 3160 req.Score = &builder.score 3161 3162 } 3163 if builder.weightFlag { 3164 req.Weight = &builder.weight 3165 3166 } 3167 if builder.krWeightFlag { 3168 req.KrWeight = &builder.krWeight 3169 3170 } 3171 if builder.progressRateFlag { 3172 req.ProgressRate = builder.progressRate 3173 } 3174 if builder.progressRecordListFlag { 3175 req.ProgressRecordList = builder.progressRecordList 3176 } 3177 if builder.progressRatePercentLastUpdatedTimeFlag { 3178 req.ProgressRatePercentLastUpdatedTime = &builder.progressRatePercentLastUpdatedTime 3179 3180 } 3181 if builder.progressRateStatusLastUpdatedTimeFlag { 3182 req.ProgressRateStatusLastUpdatedTime = &builder.progressRateStatusLastUpdatedTime 3183 3184 } 3185 if builder.progressRecordLastUpdatedTimeFlag { 3186 req.ProgressRecordLastUpdatedTime = &builder.progressRecordLastUpdatedTime 3187 3188 } 3189 if builder.progressReportLastUpdatedTimeFlag { 3190 req.ProgressReportLastUpdatedTime = &builder.progressReportLastUpdatedTime 3191 3192 } 3193 if builder.scoreLastUpdatedTimeFlag { 3194 req.ScoreLastUpdatedTime = &builder.scoreLastUpdatedTime 3195 3196 } 3197 if builder.deadlineFlag { 3198 req.Deadline = &builder.deadline 3199 3200 } 3201 if builder.mentionedUserListFlag { 3202 req.MentionedUserList = builder.mentionedUserList 3203 } 3204 return req 3205 } 3206 3207 type OkrObjectiveProgressRate struct { 3208 Percent *int `json:"percent,omitempty"` // Objective 进度百分比 >= 0 3209 Status *string `json:"status,omitempty"` // Objective 进度状态 3210 } 3211 3212 type OkrObjectiveProgressRateBuilder struct { 3213 percent int // Objective 进度百分比 >= 0 3214 percentFlag bool 3215 status string // Objective 进度状态 3216 statusFlag bool 3217 } 3218 3219 func NewOkrObjectiveProgressRateBuilder() *OkrObjectiveProgressRateBuilder { 3220 builder := &OkrObjectiveProgressRateBuilder{} 3221 return builder 3222 } 3223 3224 // Objective 进度百分比 >= 0 3225 // 3226 // 示例值:50 3227 func (builder *OkrObjectiveProgressRateBuilder) Percent(percent int) *OkrObjectiveProgressRateBuilder { 3228 builder.percent = percent 3229 builder.percentFlag = true 3230 return builder 3231 } 3232 3233 // Objective 进度状态 3234 // 3235 // 示例值:1 3236 func (builder *OkrObjectiveProgressRateBuilder) Status(status string) *OkrObjectiveProgressRateBuilder { 3237 builder.status = status 3238 builder.statusFlag = true 3239 return builder 3240 } 3241 3242 func (builder *OkrObjectiveProgressRateBuilder) Build() *OkrObjectiveProgressRate { 3243 req := &OkrObjectiveProgressRate{} 3244 if builder.percentFlag { 3245 req.Percent = &builder.percent 3246 3247 } 3248 if builder.statusFlag { 3249 req.Status = &builder.status 3250 3251 } 3252 return req 3253 } 3254 3255 type OkrReview struct { 3256 UserId *OkrObjectiveAlignedObjectiveOwner `json:"user_id,omitempty"` // 复盘的用户 3257 ReviewPeriodList []*OkrReviewPeriod `json:"review_period_list,omitempty"` // 用户对应的OKR复盘列表 3258 } 3259 3260 type OkrReviewBuilder struct { 3261 userId *OkrObjectiveAlignedObjectiveOwner // 复盘的用户 3262 userIdFlag bool 3263 reviewPeriodList []*OkrReviewPeriod // 用户对应的OKR复盘列表 3264 reviewPeriodListFlag bool 3265 } 3266 3267 func NewOkrReviewBuilder() *OkrReviewBuilder { 3268 builder := &OkrReviewBuilder{} 3269 return builder 3270 } 3271 3272 // 复盘的用户 3273 // 3274 // 示例值: 3275 func (builder *OkrReviewBuilder) UserId(userId *OkrObjectiveAlignedObjectiveOwner) *OkrReviewBuilder { 3276 builder.userId = userId 3277 builder.userIdFlag = true 3278 return builder 3279 } 3280 3281 // 用户对应的OKR复盘列表 3282 // 3283 // 示例值: 3284 func (builder *OkrReviewBuilder) ReviewPeriodList(reviewPeriodList []*OkrReviewPeriod) *OkrReviewBuilder { 3285 builder.reviewPeriodList = reviewPeriodList 3286 builder.reviewPeriodListFlag = true 3287 return builder 3288 } 3289 3290 func (builder *OkrReviewBuilder) Build() *OkrReview { 3291 req := &OkrReview{} 3292 if builder.userIdFlag { 3293 req.UserId = builder.userId 3294 } 3295 if builder.reviewPeriodListFlag { 3296 req.ReviewPeriodList = builder.reviewPeriodList 3297 } 3298 return req 3299 } 3300 3301 type OkrReviewPeriod struct { 3302 PeriodId *string `json:"period_id,omitempty"` // 周期ID 3303 CycleReviewList []*OkrReviewPeriodUrl `json:"cycle_review_list,omitempty"` // 复盘文档 3304 ProgressReportList []*OkrReviewPeriodUrl `json:"progress_report_list,omitempty"` // 进展报告 3305 } 3306 3307 type OkrReviewPeriodBuilder struct { 3308 periodId string // 周期ID 3309 periodIdFlag bool 3310 cycleReviewList []*OkrReviewPeriodUrl // 复盘文档 3311 cycleReviewListFlag bool 3312 progressReportList []*OkrReviewPeriodUrl // 进展报告 3313 progressReportListFlag bool 3314 } 3315 3316 func NewOkrReviewPeriodBuilder() *OkrReviewPeriodBuilder { 3317 builder := &OkrReviewPeriodBuilder{} 3318 return builder 3319 } 3320 3321 // 周期ID 3322 // 3323 // 示例值:6951461264858777132 3324 func (builder *OkrReviewPeriodBuilder) PeriodId(periodId string) *OkrReviewPeriodBuilder { 3325 builder.periodId = periodId 3326 builder.periodIdFlag = true 3327 return builder 3328 } 3329 3330 // 复盘文档 3331 // 3332 // 示例值: 3333 func (builder *OkrReviewPeriodBuilder) CycleReviewList(cycleReviewList []*OkrReviewPeriodUrl) *OkrReviewPeriodBuilder { 3334 builder.cycleReviewList = cycleReviewList 3335 builder.cycleReviewListFlag = true 3336 return builder 3337 } 3338 3339 // 进展报告 3340 // 3341 // 示例值: 3342 func (builder *OkrReviewPeriodBuilder) ProgressReportList(progressReportList []*OkrReviewPeriodUrl) *OkrReviewPeriodBuilder { 3343 builder.progressReportList = progressReportList 3344 builder.progressReportListFlag = true 3345 return builder 3346 } 3347 3348 func (builder *OkrReviewPeriodBuilder) Build() *OkrReviewPeriod { 3349 req := &OkrReviewPeriod{} 3350 if builder.periodIdFlag { 3351 req.PeriodId = &builder.periodId 3352 3353 } 3354 if builder.cycleReviewListFlag { 3355 req.CycleReviewList = builder.cycleReviewList 3356 } 3357 if builder.progressReportListFlag { 3358 req.ProgressReportList = builder.progressReportList 3359 } 3360 return req 3361 } 3362 3363 type OkrReviewPeriodUrl struct { 3364 Url *string `json:"url,omitempty"` // 文档链接 3365 CreateTime *string `json:"create_time,omitempty"` // 创建时间 毫秒 3366 } 3367 3368 type OkrReviewPeriodUrlBuilder struct { 3369 url string // 文档链接 3370 urlFlag bool 3371 createTime string // 创建时间 毫秒 3372 createTimeFlag bool 3373 } 3374 3375 func NewOkrReviewPeriodUrlBuilder() *OkrReviewPeriodUrlBuilder { 3376 builder := &OkrReviewPeriodUrlBuilder{} 3377 return builder 3378 } 3379 3380 // 文档链接 3381 // 3382 // 示例值:https://okr-boe1.feishu-boe.cn/docs/docbc0cvt2wT0Yq34Tn7YemH5Qb 3383 func (builder *OkrReviewPeriodUrlBuilder) Url(url string) *OkrReviewPeriodUrlBuilder { 3384 builder.url = url 3385 builder.urlFlag = true 3386 return builder 3387 } 3388 3389 // 创建时间 毫秒 3390 // 3391 // 示例值:1618500278663 3392 func (builder *OkrReviewPeriodUrlBuilder) CreateTime(createTime string) *OkrReviewPeriodUrlBuilder { 3393 builder.createTime = createTime 3394 builder.createTimeFlag = true 3395 return builder 3396 } 3397 3398 func (builder *OkrReviewPeriodUrlBuilder) Build() *OkrReviewPeriodUrl { 3399 req := &OkrReviewPeriodUrl{} 3400 if builder.urlFlag { 3401 req.Url = &builder.url 3402 3403 } 3404 if builder.createTimeFlag { 3405 req.CreateTime = &builder.createTime 3406 3407 } 3408 return req 3409 } 3410 3411 type OkrSimple struct { 3412 Name *OkrName `json:"name,omitempty"` // 周期展示名称 3413 OkrId *string `json:"okr_id,omitempty"` // OKR ID 3414 PeriodId *string `json:"period_id,omitempty"` // 周期 ID 3415 PeriodType *string `json:"period_type,omitempty"` // 周期类型:1、月周期;2、年周期 3416 } 3417 3418 type OkrSimpleBuilder struct { 3419 name *OkrName // 周期展示名称 3420 nameFlag bool 3421 okrId string // OKR ID 3422 okrIdFlag bool 3423 periodId string // 周期 ID 3424 periodIdFlag bool 3425 periodType string // 周期类型:1、月周期;2、年周期 3426 periodTypeFlag bool 3427 } 3428 3429 func NewOkrSimpleBuilder() *OkrSimpleBuilder { 3430 builder := &OkrSimpleBuilder{} 3431 return builder 3432 } 3433 3434 // 周期展示名称 3435 // 3436 // 示例值: 3437 func (builder *OkrSimpleBuilder) Name(name *OkrName) *OkrSimpleBuilder { 3438 builder.name = name 3439 builder.nameFlag = true 3440 return builder 3441 } 3442 3443 // OKR ID 3444 // 3445 // 示例值: 3446 func (builder *OkrSimpleBuilder) OkrId(okrId string) *OkrSimpleBuilder { 3447 builder.okrId = okrId 3448 builder.okrIdFlag = true 3449 return builder 3450 } 3451 3452 // 周期 ID 3453 // 3454 // 示例值: 3455 func (builder *OkrSimpleBuilder) PeriodId(periodId string) *OkrSimpleBuilder { 3456 builder.periodId = periodId 3457 builder.periodIdFlag = true 3458 return builder 3459 } 3460 3461 // 周期类型:1、月周期;2、年周期 3462 // 3463 // 示例值: 3464 func (builder *OkrSimpleBuilder) PeriodType(periodType string) *OkrSimpleBuilder { 3465 builder.periodType = periodType 3466 builder.periodTypeFlag = true 3467 return builder 3468 } 3469 3470 func (builder *OkrSimpleBuilder) Build() *OkrSimple { 3471 req := &OkrSimple{} 3472 if builder.nameFlag { 3473 req.Name = builder.name 3474 } 3475 if builder.okrIdFlag { 3476 req.OkrId = &builder.okrId 3477 3478 } 3479 if builder.periodIdFlag { 3480 req.PeriodId = &builder.periodId 3481 3482 } 3483 if builder.periodTypeFlag { 3484 req.PeriodType = &builder.periodType 3485 3486 } 3487 return req 3488 } 3489 3490 type Period struct { 3491 Id *string `json:"id,omitempty"` // id 3492 ZhName *string `json:"zh_name,omitempty"` // 中文名称 3493 EnName *string `json:"en_name,omitempty"` // 英文名称 3494 Status *int `json:"status,omitempty"` // 启用状态 3495 } 3496 3497 type PeriodBuilder struct { 3498 id string // id 3499 idFlag bool 3500 zhName string // 中文名称 3501 zhNameFlag bool 3502 enName string // 英文名称 3503 enNameFlag bool 3504 status int // 启用状态 3505 statusFlag bool 3506 } 3507 3508 func NewPeriodBuilder() *PeriodBuilder { 3509 builder := &PeriodBuilder{} 3510 return builder 3511 } 3512 3513 // id 3514 // 3515 // 示例值:635782378412311 3516 func (builder *PeriodBuilder) Id(id string) *PeriodBuilder { 3517 builder.id = id 3518 builder.idFlag = true 3519 return builder 3520 } 3521 3522 // 中文名称 3523 // 3524 // 示例值:中文周期 3525 func (builder *PeriodBuilder) ZhName(zhName string) *PeriodBuilder { 3526 builder.zhName = zhName 3527 builder.zhNameFlag = true 3528 return builder 3529 } 3530 3531 // 英文名称 3532 // 3533 // 示例值:english period 3534 func (builder *PeriodBuilder) EnName(enName string) *PeriodBuilder { 3535 builder.enName = enName 3536 builder.enNameFlag = true 3537 return builder 3538 } 3539 3540 // 启用状态 3541 // 3542 // 示例值:0 3543 func (builder *PeriodBuilder) Status(status int) *PeriodBuilder { 3544 builder.status = status 3545 builder.statusFlag = true 3546 return builder 3547 } 3548 3549 func (builder *PeriodBuilder) Build() *Period { 3550 req := &Period{} 3551 if builder.idFlag { 3552 req.Id = &builder.id 3553 3554 } 3555 if builder.zhNameFlag { 3556 req.ZhName = &builder.zhName 3557 3558 } 3559 if builder.enNameFlag { 3560 req.EnName = &builder.enName 3561 3562 } 3563 if builder.statusFlag { 3564 req.Status = &builder.status 3565 3566 } 3567 return req 3568 } 3569 3570 type ProgressItem struct { 3571 Content *string `json:"content,omitempty"` // 进度内容 3572 Timestamp *int `json:"timestamp,omitempty"` // 更新时间 3573 MentionList []string `json:"mention_list,omitempty"` // 负责人 3574 } 3575 3576 type ProgressItemBuilder struct { 3577 content string // 进度内容 3578 contentFlag bool 3579 timestamp int // 更新时间 3580 timestampFlag bool 3581 mentionList []string // 负责人 3582 mentionListFlag bool 3583 } 3584 3585 func NewProgressItemBuilder() *ProgressItemBuilder { 3586 builder := &ProgressItemBuilder{} 3587 return builder 3588 } 3589 3590 // 进度内容 3591 // 3592 // 示例值: 3593 func (builder *ProgressItemBuilder) Content(content string) *ProgressItemBuilder { 3594 builder.content = content 3595 builder.contentFlag = true 3596 return builder 3597 } 3598 3599 // 更新时间 3600 // 3601 // 示例值: 3602 func (builder *ProgressItemBuilder) Timestamp(timestamp int) *ProgressItemBuilder { 3603 builder.timestamp = timestamp 3604 builder.timestampFlag = true 3605 return builder 3606 } 3607 3608 // 负责人 3609 // 3610 // 示例值: 3611 func (builder *ProgressItemBuilder) MentionList(mentionList []string) *ProgressItemBuilder { 3612 builder.mentionList = mentionList 3613 builder.mentionListFlag = true 3614 return builder 3615 } 3616 3617 func (builder *ProgressItemBuilder) Build() *ProgressItem { 3618 req := &ProgressItem{} 3619 if builder.contentFlag { 3620 req.Content = &builder.content 3621 3622 } 3623 if builder.timestampFlag { 3624 req.Timestamp = &builder.timestamp 3625 3626 } 3627 if builder.mentionListFlag { 3628 req.MentionList = builder.mentionList 3629 } 3630 return req 3631 } 3632 3633 type ProgressRate struct { 3634 Percent *int `json:"percent,omitempty"` // 进度百分比 3635 Status *int `json:"status,omitempty"` // 状态 3636 } 3637 3638 type ProgressRateBuilder struct { 3639 percent int // 进度百分比 3640 percentFlag bool 3641 status int // 状态 3642 statusFlag bool 3643 } 3644 3645 func NewProgressRateBuilder() *ProgressRateBuilder { 3646 builder := &ProgressRateBuilder{} 3647 return builder 3648 } 3649 3650 // 进度百分比 3651 // 3652 // 示例值: 3653 func (builder *ProgressRateBuilder) Percent(percent int) *ProgressRateBuilder { 3654 builder.percent = percent 3655 builder.percentFlag = true 3656 return builder 3657 } 3658 3659 // 状态 3660 // 3661 // 示例值: 3662 func (builder *ProgressRateBuilder) Status(status int) *ProgressRateBuilder { 3663 builder.status = status 3664 builder.statusFlag = true 3665 return builder 3666 } 3667 3668 func (builder *ProgressRateBuilder) Build() *ProgressRate { 3669 req := &ProgressRate{} 3670 if builder.percentFlag { 3671 req.Percent = &builder.percent 3672 3673 } 3674 if builder.statusFlag { 3675 req.Status = &builder.status 3676 3677 } 3678 return req 3679 } 3680 3681 type ProgressRecord struct { 3682 ProgressId *string `json:"progress_id,omitempty"` // OKR 进展ID 3683 ModifyTime *string `json:"modify_time,omitempty"` // 进展更新时间 毫秒 3684 Content *ContentBlock `json:"content,omitempty"` // 进展 对应的 Content 详细内容 3685 } 3686 3687 type ProgressRecordBuilder struct { 3688 progressId string // OKR 进展ID 3689 progressIdFlag bool 3690 modifyTime string // 进展更新时间 毫秒 3691 modifyTimeFlag bool 3692 content *ContentBlock // 进展 对应的 Content 详细内容 3693 contentFlag bool 3694 } 3695 3696 func NewProgressRecordBuilder() *ProgressRecordBuilder { 3697 builder := &ProgressRecordBuilder{} 3698 return builder 3699 } 3700 3701 // OKR 进展ID 3702 // 3703 // 示例值:7041469619902693396 3704 func (builder *ProgressRecordBuilder) ProgressId(progressId string) *ProgressRecordBuilder { 3705 builder.progressId = progressId 3706 builder.progressIdFlag = true 3707 return builder 3708 } 3709 3710 // 进展更新时间 毫秒 3711 // 3712 // 示例值:1618500278663 3713 func (builder *ProgressRecordBuilder) ModifyTime(modifyTime string) *ProgressRecordBuilder { 3714 builder.modifyTime = modifyTime 3715 builder.modifyTimeFlag = true 3716 return builder 3717 } 3718 3719 // 进展 对应的 Content 详细内容 3720 // 3721 // 示例值: 3722 func (builder *ProgressRecordBuilder) Content(content *ContentBlock) *ProgressRecordBuilder { 3723 builder.content = content 3724 builder.contentFlag = true 3725 return builder 3726 } 3727 3728 func (builder *ProgressRecordBuilder) Build() *ProgressRecord { 3729 req := &ProgressRecord{} 3730 if builder.progressIdFlag { 3731 req.ProgressId = &builder.progressId 3732 3733 } 3734 if builder.modifyTimeFlag { 3735 req.ModifyTime = &builder.modifyTime 3736 3737 } 3738 if builder.contentFlag { 3739 req.Content = builder.content 3740 } 3741 return req 3742 } 3743 3744 type ProgressRecordSimplify struct { 3745 Id *string `json:"id,omitempty"` // OKR 进展记录ID 3746 } 3747 3748 type ProgressRecordSimplifyBuilder struct { 3749 id string // OKR 进展记录ID 3750 idFlag bool 3751 } 3752 3753 func NewProgressRecordSimplifyBuilder() *ProgressRecordSimplifyBuilder { 3754 builder := &ProgressRecordSimplifyBuilder{} 3755 return builder 3756 } 3757 3758 // OKR 进展记录ID 3759 // 3760 // 示例值:7041469619902693396 3761 func (builder *ProgressRecordSimplifyBuilder) Id(id string) *ProgressRecordSimplifyBuilder { 3762 builder.id = id 3763 builder.idFlag = true 3764 return builder 3765 } 3766 3767 func (builder *ProgressRecordSimplifyBuilder) Build() *ProgressRecordSimplify { 3768 req := &ProgressRecordSimplify{} 3769 if builder.idFlag { 3770 req.Id = &builder.id 3771 3772 } 3773 return req 3774 } 3775 3776 type UpsertObjective struct { 3777 Content *string `json:"content,omitempty"` // OKR内容 3778 MentionList []string `json:"mention_list,omitempty"` // 负责人列表 3779 KrList []*UpsertObjectiveKr `json:"kr_list,omitempty"` // KR列表 3780 ProgressRate *ProgressRate `json:"progress_rate,omitempty"` // Objective进度状态 3781 ProgressList []*ProgressItem `json:"progress_list,omitempty"` // Objective进度列表 3782 Weight *float64 `json:"weight,omitempty"` // OKR权重 3783 } 3784 3785 type UpsertObjectiveBuilder struct { 3786 content string // OKR内容 3787 contentFlag bool 3788 mentionList []string // 负责人列表 3789 mentionListFlag bool 3790 krList []*UpsertObjectiveKr // KR列表 3791 krListFlag bool 3792 progressRate *ProgressRate // Objective进度状态 3793 progressRateFlag bool 3794 progressList []*ProgressItem // Objective进度列表 3795 progressListFlag bool 3796 weight float64 // OKR权重 3797 weightFlag bool 3798 } 3799 3800 func NewUpsertObjectiveBuilder() *UpsertObjectiveBuilder { 3801 builder := &UpsertObjectiveBuilder{} 3802 return builder 3803 } 3804 3805 // OKR内容 3806 // 3807 // 示例值:okr 3808 func (builder *UpsertObjectiveBuilder) Content(content string) *UpsertObjectiveBuilder { 3809 builder.content = content 3810 builder.contentFlag = true 3811 return builder 3812 } 3813 3814 // 负责人列表 3815 // 3816 // 示例值: 3817 func (builder *UpsertObjectiveBuilder) MentionList(mentionList []string) *UpsertObjectiveBuilder { 3818 builder.mentionList = mentionList 3819 builder.mentionListFlag = true 3820 return builder 3821 } 3822 3823 // KR列表 3824 // 3825 // 示例值: 3826 func (builder *UpsertObjectiveBuilder) KrList(krList []*UpsertObjectiveKr) *UpsertObjectiveBuilder { 3827 builder.krList = krList 3828 builder.krListFlag = true 3829 return builder 3830 } 3831 3832 // Objective进度状态 3833 // 3834 // 示例值: 3835 func (builder *UpsertObjectiveBuilder) ProgressRate(progressRate *ProgressRate) *UpsertObjectiveBuilder { 3836 builder.progressRate = progressRate 3837 builder.progressRateFlag = true 3838 return builder 3839 } 3840 3841 // Objective进度列表 3842 // 3843 // 示例值: 3844 func (builder *UpsertObjectiveBuilder) ProgressList(progressList []*ProgressItem) *UpsertObjectiveBuilder { 3845 builder.progressList = progressList 3846 builder.progressListFlag = true 3847 return builder 3848 } 3849 3850 // OKR权重 3851 // 3852 // 示例值:100 3853 func (builder *UpsertObjectiveBuilder) Weight(weight float64) *UpsertObjectiveBuilder { 3854 builder.weight = weight 3855 builder.weightFlag = true 3856 return builder 3857 } 3858 3859 func (builder *UpsertObjectiveBuilder) Build() *UpsertObjective { 3860 req := &UpsertObjective{} 3861 if builder.contentFlag { 3862 req.Content = &builder.content 3863 3864 } 3865 if builder.mentionListFlag { 3866 req.MentionList = builder.mentionList 3867 } 3868 if builder.krListFlag { 3869 req.KrList = builder.krList 3870 } 3871 if builder.progressRateFlag { 3872 req.ProgressRate = builder.progressRate 3873 } 3874 if builder.progressListFlag { 3875 req.ProgressList = builder.progressList 3876 } 3877 if builder.weightFlag { 3878 req.Weight = &builder.weight 3879 3880 } 3881 return req 3882 } 3883 3884 type UpsertObjectiveKr struct { 3885 Content *string `json:"content,omitempty"` // OKR内容 3886 MentionList []string `json:"mention_list,omitempty"` // 负责人列表 3887 Score *int `json:"score,omitempty"` // 得分 3888 ProgressRate *ProgressRate `json:"progress_rate,omitempty"` // Objective进度状态 3889 ProgressList []*ProgressItem `json:"progress_list,omitempty"` // Objective进度列表 3890 Weight *float64 `json:"weight,omitempty"` // OKR权重 3891 } 3892 3893 type UpsertObjectiveKrBuilder struct { 3894 content string // OKR内容 3895 contentFlag bool 3896 mentionList []string // 负责人列表 3897 mentionListFlag bool 3898 score int // 得分 3899 scoreFlag bool 3900 progressRate *ProgressRate // Objective进度状态 3901 progressRateFlag bool 3902 progressList []*ProgressItem // Objective进度列表 3903 progressListFlag bool 3904 weight float64 // OKR权重 3905 weightFlag bool 3906 } 3907 3908 func NewUpsertObjectiveKrBuilder() *UpsertObjectiveKrBuilder { 3909 builder := &UpsertObjectiveKrBuilder{} 3910 return builder 3911 } 3912 3913 // OKR内容 3914 // 3915 // 示例值:okr 3916 func (builder *UpsertObjectiveKrBuilder) Content(content string) *UpsertObjectiveKrBuilder { 3917 builder.content = content 3918 builder.contentFlag = true 3919 return builder 3920 } 3921 3922 // 负责人列表 3923 // 3924 // 示例值: 3925 func (builder *UpsertObjectiveKrBuilder) MentionList(mentionList []string) *UpsertObjectiveKrBuilder { 3926 builder.mentionList = mentionList 3927 builder.mentionListFlag = true 3928 return builder 3929 } 3930 3931 // 得分 3932 // 3933 // 示例值:100 3934 func (builder *UpsertObjectiveKrBuilder) Score(score int) *UpsertObjectiveKrBuilder { 3935 builder.score = score 3936 builder.scoreFlag = true 3937 return builder 3938 } 3939 3940 // Objective进度状态 3941 // 3942 // 示例值: 3943 func (builder *UpsertObjectiveKrBuilder) ProgressRate(progressRate *ProgressRate) *UpsertObjectiveKrBuilder { 3944 builder.progressRate = progressRate 3945 builder.progressRateFlag = true 3946 return builder 3947 } 3948 3949 // Objective进度列表 3950 // 3951 // 示例值: 3952 func (builder *UpsertObjectiveKrBuilder) ProgressList(progressList []*ProgressItem) *UpsertObjectiveKrBuilder { 3953 builder.progressList = progressList 3954 builder.progressListFlag = true 3955 return builder 3956 } 3957 3958 // OKR权重 3959 // 3960 // 示例值:100 3961 func (builder *UpsertObjectiveKrBuilder) Weight(weight float64) *UpsertObjectiveKrBuilder { 3962 builder.weight = weight 3963 builder.weightFlag = true 3964 return builder 3965 } 3966 3967 func (builder *UpsertObjectiveKrBuilder) Build() *UpsertObjectiveKr { 3968 req := &UpsertObjectiveKr{} 3969 if builder.contentFlag { 3970 req.Content = &builder.content 3971 3972 } 3973 if builder.mentionListFlag { 3974 req.MentionList = builder.mentionList 3975 } 3976 if builder.scoreFlag { 3977 req.Score = &builder.score 3978 3979 } 3980 if builder.progressRateFlag { 3981 req.ProgressRate = builder.progressRate 3982 } 3983 if builder.progressListFlag { 3984 req.ProgressList = builder.progressList 3985 } 3986 if builder.weightFlag { 3987 req.Weight = &builder.weight 3988 3989 } 3990 return req 3991 } 3992 3993 type User struct { 3994 Id *string `json:"id,omitempty"` // id 3995 } 3996 3997 type UserBuilder struct { 3998 id string // id 3999 idFlag bool 4000 } 4001 4002 func NewUserBuilder() *UserBuilder { 4003 builder := &UserBuilder{} 4004 return builder 4005 } 4006 4007 // id 4008 // 4009 // 示例值: 4010 func (builder *UserBuilder) Id(id string) *UserBuilder { 4011 builder.id = id 4012 builder.idFlag = true 4013 return builder 4014 } 4015 4016 func (builder *UserBuilder) Build() *User { 4017 req := &User{} 4018 if builder.idFlag { 4019 req.Id = &builder.id 4020 4021 } 4022 return req 4023 } 4024 4025 type UserOkr struct { 4026 Id *string `json:"id,omitempty"` // OKR ID 4027 Name *string `json:"name,omitempty"` // OKR周期名称(lang指定中英文) 4028 Permission *int `json:"permission,omitempty"` // 权限,0无权限,1有权限 4029 ObjectiveList []*UserOkrObjective `json:"objective_list,omitempty"` // OKR的Objective 列表 4030 } 4031 4032 type UserOkrBuilder struct { 4033 id string // OKR ID 4034 idFlag bool 4035 name string // OKR周期名称(lang指定中英文) 4036 nameFlag bool 4037 permission int // 权限,0无权限,1有权限 4038 permissionFlag bool 4039 objectiveList []*UserOkrObjective // OKR的Objective 列表 4040 objectiveListFlag bool 4041 } 4042 4043 func NewUserOkrBuilder() *UserOkrBuilder { 4044 builder := &UserOkrBuilder{} 4045 return builder 4046 } 4047 4048 // OKR ID 4049 // 4050 // 示例值: 4051 func (builder *UserOkrBuilder) Id(id string) *UserOkrBuilder { 4052 builder.id = id 4053 builder.idFlag = true 4054 return builder 4055 } 4056 4057 // OKR周期名称(lang指定中英文) 4058 // 4059 // 示例值: 4060 func (builder *UserOkrBuilder) Name(name string) *UserOkrBuilder { 4061 builder.name = name 4062 builder.nameFlag = true 4063 return builder 4064 } 4065 4066 // 权限,0无权限,1有权限 4067 // 4068 // 示例值: 4069 func (builder *UserOkrBuilder) Permission(permission int) *UserOkrBuilder { 4070 builder.permission = permission 4071 builder.permissionFlag = true 4072 return builder 4073 } 4074 4075 // OKR的Objective 列表 4076 // 4077 // 示例值: 4078 func (builder *UserOkrBuilder) ObjectiveList(objectiveList []*UserOkrObjective) *UserOkrBuilder { 4079 builder.objectiveList = objectiveList 4080 builder.objectiveListFlag = true 4081 return builder 4082 } 4083 4084 func (builder *UserOkrBuilder) Build() *UserOkr { 4085 req := &UserOkr{} 4086 if builder.idFlag { 4087 req.Id = &builder.id 4088 4089 } 4090 if builder.nameFlag { 4091 req.Name = &builder.name 4092 4093 } 4094 if builder.permissionFlag { 4095 req.Permission = &builder.permission 4096 4097 } 4098 if builder.objectiveListFlag { 4099 req.ObjectiveList = builder.objectiveList 4100 } 4101 return req 4102 } 4103 4104 type UserOkrObjective struct { 4105 Id *string `json:"id,omitempty"` // Objective ID 4106 Permission *int `json:"permission,omitempty"` // 权限,0无权限,1有权限 4107 Content *string `json:"content,omitempty"` // Objective 内容 4108 ProgressReport *string `json:"progress_report,omitempty"` // Objective 进度记录内容 4109 Score *string `json:"score,omitempty"` // Objective 分数(0 - 100) 4110 ProgressRate *UserOkrObjectiveProgressRate `json:"progress_rate,omitempty"` // Objective进度 4111 KrList []*UserOkrObjectiveKr `json:"kr_list,omitempty"` // Objective KeyResult 列表 4112 AlignedObjectiveList []*UserOkrObjectiveAlignedObjective `json:"aligned_objective_list,omitempty"` // 对齐到该Objective的Objective列表 4113 AligningObjectiveList []*UserOkrObjectiveAlignedObjective `json:"aligning_objective_list,omitempty"` // 该Objective对齐到的Objective列表 4114 } 4115 4116 type UserOkrObjectiveBuilder struct { 4117 id string // Objective ID 4118 idFlag bool 4119 permission int // 权限,0无权限,1有权限 4120 permissionFlag bool 4121 content string // Objective 内容 4122 contentFlag bool 4123 progressReport string // Objective 进度记录内容 4124 progressReportFlag bool 4125 score string // Objective 分数(0 - 100) 4126 scoreFlag bool 4127 progressRate *UserOkrObjectiveProgressRate // Objective进度 4128 progressRateFlag bool 4129 krList []*UserOkrObjectiveKr // Objective KeyResult 列表 4130 krListFlag bool 4131 alignedObjectiveList []*UserOkrObjectiveAlignedObjective // 对齐到该Objective的Objective列表 4132 alignedObjectiveListFlag bool 4133 aligningObjectiveList []*UserOkrObjectiveAlignedObjective // 该Objective对齐到的Objective列表 4134 aligningObjectiveListFlag bool 4135 } 4136 4137 func NewUserOkrObjectiveBuilder() *UserOkrObjectiveBuilder { 4138 builder := &UserOkrObjectiveBuilder{} 4139 return builder 4140 } 4141 4142 // Objective ID 4143 // 4144 // 示例值: 4145 func (builder *UserOkrObjectiveBuilder) Id(id string) *UserOkrObjectiveBuilder { 4146 builder.id = id 4147 builder.idFlag = true 4148 return builder 4149 } 4150 4151 // 权限,0无权限,1有权限 4152 // 4153 // 示例值: 4154 func (builder *UserOkrObjectiveBuilder) Permission(permission int) *UserOkrObjectiveBuilder { 4155 builder.permission = permission 4156 builder.permissionFlag = true 4157 return builder 4158 } 4159 4160 // Objective 内容 4161 // 4162 // 示例值: 4163 func (builder *UserOkrObjectiveBuilder) Content(content string) *UserOkrObjectiveBuilder { 4164 builder.content = content 4165 builder.contentFlag = true 4166 return builder 4167 } 4168 4169 // Objective 进度记录内容 4170 // 4171 // 示例值: 4172 func (builder *UserOkrObjectiveBuilder) ProgressReport(progressReport string) *UserOkrObjectiveBuilder { 4173 builder.progressReport = progressReport 4174 builder.progressReportFlag = true 4175 return builder 4176 } 4177 4178 // Objective 分数(0 - 100) 4179 // 4180 // 示例值: 4181 func (builder *UserOkrObjectiveBuilder) Score(score string) *UserOkrObjectiveBuilder { 4182 builder.score = score 4183 builder.scoreFlag = true 4184 return builder 4185 } 4186 4187 // Objective进度 4188 // 4189 // 示例值: 4190 func (builder *UserOkrObjectiveBuilder) ProgressRate(progressRate *UserOkrObjectiveProgressRate) *UserOkrObjectiveBuilder { 4191 builder.progressRate = progressRate 4192 builder.progressRateFlag = true 4193 return builder 4194 } 4195 4196 // Objective KeyResult 列表 4197 // 4198 // 示例值: 4199 func (builder *UserOkrObjectiveBuilder) KrList(krList []*UserOkrObjectiveKr) *UserOkrObjectiveBuilder { 4200 builder.krList = krList 4201 builder.krListFlag = true 4202 return builder 4203 } 4204 4205 // 对齐到该Objective的Objective列表 4206 // 4207 // 示例值: 4208 func (builder *UserOkrObjectiveBuilder) AlignedObjectiveList(alignedObjectiveList []*UserOkrObjectiveAlignedObjective) *UserOkrObjectiveBuilder { 4209 builder.alignedObjectiveList = alignedObjectiveList 4210 builder.alignedObjectiveListFlag = true 4211 return builder 4212 } 4213 4214 // 该Objective对齐到的Objective列表 4215 // 4216 // 示例值: 4217 func (builder *UserOkrObjectiveBuilder) AligningObjectiveList(aligningObjectiveList []*UserOkrObjectiveAlignedObjective) *UserOkrObjectiveBuilder { 4218 builder.aligningObjectiveList = aligningObjectiveList 4219 builder.aligningObjectiveListFlag = true 4220 return builder 4221 } 4222 4223 func (builder *UserOkrObjectiveBuilder) Build() *UserOkrObjective { 4224 req := &UserOkrObjective{} 4225 if builder.idFlag { 4226 req.Id = &builder.id 4227 4228 } 4229 if builder.permissionFlag { 4230 req.Permission = &builder.permission 4231 4232 } 4233 if builder.contentFlag { 4234 req.Content = &builder.content 4235 4236 } 4237 if builder.progressReportFlag { 4238 req.ProgressReport = &builder.progressReport 4239 4240 } 4241 if builder.scoreFlag { 4242 req.Score = &builder.score 4243 4244 } 4245 if builder.progressRateFlag { 4246 req.ProgressRate = builder.progressRate 4247 } 4248 if builder.krListFlag { 4249 req.KrList = builder.krList 4250 } 4251 if builder.alignedObjectiveListFlag { 4252 req.AlignedObjectiveList = builder.alignedObjectiveList 4253 } 4254 if builder.aligningObjectiveListFlag { 4255 req.AligningObjectiveList = builder.aligningObjectiveList 4256 } 4257 return req 4258 } 4259 4260 type UserOkrObjectiveAlignedObjective struct { 4261 Id *string `json:"id,omitempty"` // Objective的ID 4262 OkrId *string `json:"okr_id,omitempty"` // OKR的ID 4263 Owner *UserOkrObjectiveAlignedObjectiveOwner `json:"owner,omitempty"` // 该Objective的Owner 4264 } 4265 4266 type UserOkrObjectiveAlignedObjectiveBuilder struct { 4267 id string // Objective的ID 4268 idFlag bool 4269 okrId string // OKR的ID 4270 okrIdFlag bool 4271 owner *UserOkrObjectiveAlignedObjectiveOwner // 该Objective的Owner 4272 ownerFlag bool 4273 } 4274 4275 func NewUserOkrObjectiveAlignedObjectiveBuilder() *UserOkrObjectiveAlignedObjectiveBuilder { 4276 builder := &UserOkrObjectiveAlignedObjectiveBuilder{} 4277 return builder 4278 } 4279 4280 // Objective的ID 4281 // 4282 // 示例值: 4283 func (builder *UserOkrObjectiveAlignedObjectiveBuilder) Id(id string) *UserOkrObjectiveAlignedObjectiveBuilder { 4284 builder.id = id 4285 builder.idFlag = true 4286 return builder 4287 } 4288 4289 // OKR的ID 4290 // 4291 // 示例值: 4292 func (builder *UserOkrObjectiveAlignedObjectiveBuilder) OkrId(okrId string) *UserOkrObjectiveAlignedObjectiveBuilder { 4293 builder.okrId = okrId 4294 builder.okrIdFlag = true 4295 return builder 4296 } 4297 4298 // 该Objective的Owner 4299 // 4300 // 示例值: 4301 func (builder *UserOkrObjectiveAlignedObjectiveBuilder) Owner(owner *UserOkrObjectiveAlignedObjectiveOwner) *UserOkrObjectiveAlignedObjectiveBuilder { 4302 builder.owner = owner 4303 builder.ownerFlag = true 4304 return builder 4305 } 4306 4307 func (builder *UserOkrObjectiveAlignedObjectiveBuilder) Build() *UserOkrObjectiveAlignedObjective { 4308 req := &UserOkrObjectiveAlignedObjective{} 4309 if builder.idFlag { 4310 req.Id = &builder.id 4311 4312 } 4313 if builder.okrIdFlag { 4314 req.OkrId = &builder.okrId 4315 4316 } 4317 if builder.ownerFlag { 4318 req.Owner = builder.owner 4319 } 4320 return req 4321 } 4322 4323 type UserOkrObjectiveAlignedObjectiveOwner struct { 4324 OpenId *string `json:"open_id,omitempty"` // 用户的 open_id 4325 EmployeeId *string `json:"employee_id,omitempty"` // 用户的 employee_id 4326 EmployeeNo *string `json:"employee_no,omitempty"` // 工号 4327 UnionId *string `json:"union_id,omitempty"` // 用户的 union_id 4328 Name *string `json:"name,omitempty"` // 用户名 4329 } 4330 4331 type UserOkrObjectiveAlignedObjectiveOwnerBuilder struct { 4332 openId string // 用户的 open_id 4333 openIdFlag bool 4334 employeeId string // 用户的 employee_id 4335 employeeIdFlag bool 4336 employeeNo string // 工号 4337 employeeNoFlag bool 4338 unionId string // 用户的 union_id 4339 unionIdFlag bool 4340 name string // 用户名 4341 nameFlag bool 4342 } 4343 4344 func NewUserOkrObjectiveAlignedObjectiveOwnerBuilder() *UserOkrObjectiveAlignedObjectiveOwnerBuilder { 4345 builder := &UserOkrObjectiveAlignedObjectiveOwnerBuilder{} 4346 return builder 4347 } 4348 4349 // 用户的 open_id 4350 // 4351 // 示例值: 4352 func (builder *UserOkrObjectiveAlignedObjectiveOwnerBuilder) OpenId(openId string) *UserOkrObjectiveAlignedObjectiveOwnerBuilder { 4353 builder.openId = openId 4354 builder.openIdFlag = true 4355 return builder 4356 } 4357 4358 // 用户的 employee_id 4359 // 4360 // 示例值: 4361 func (builder *UserOkrObjectiveAlignedObjectiveOwnerBuilder) EmployeeId(employeeId string) *UserOkrObjectiveAlignedObjectiveOwnerBuilder { 4362 builder.employeeId = employeeId 4363 builder.employeeIdFlag = true 4364 return builder 4365 } 4366 4367 // 工号 4368 // 4369 // 示例值: 4370 func (builder *UserOkrObjectiveAlignedObjectiveOwnerBuilder) EmployeeNo(employeeNo string) *UserOkrObjectiveAlignedObjectiveOwnerBuilder { 4371 builder.employeeNo = employeeNo 4372 builder.employeeNoFlag = true 4373 return builder 4374 } 4375 4376 // 用户的 union_id 4377 // 4378 // 示例值: 4379 func (builder *UserOkrObjectiveAlignedObjectiveOwnerBuilder) UnionId(unionId string) *UserOkrObjectiveAlignedObjectiveOwnerBuilder { 4380 builder.unionId = unionId 4381 builder.unionIdFlag = true 4382 return builder 4383 } 4384 4385 // 用户名 4386 // 4387 // 示例值: 4388 func (builder *UserOkrObjectiveAlignedObjectiveOwnerBuilder) Name(name string) *UserOkrObjectiveAlignedObjectiveOwnerBuilder { 4389 builder.name = name 4390 builder.nameFlag = true 4391 return builder 4392 } 4393 4394 func (builder *UserOkrObjectiveAlignedObjectiveOwnerBuilder) Build() *UserOkrObjectiveAlignedObjectiveOwner { 4395 req := &UserOkrObjectiveAlignedObjectiveOwner{} 4396 if builder.openIdFlag { 4397 req.OpenId = &builder.openId 4398 4399 } 4400 if builder.employeeIdFlag { 4401 req.EmployeeId = &builder.employeeId 4402 4403 } 4404 if builder.employeeNoFlag { 4405 req.EmployeeNo = &builder.employeeNo 4406 4407 } 4408 if builder.unionIdFlag { 4409 req.UnionId = &builder.unionId 4410 4411 } 4412 if builder.nameFlag { 4413 req.Name = &builder.name 4414 4415 } 4416 return req 4417 } 4418 4419 type UserOkrObjectiveKr struct { 4420 Id *string `json:"id,omitempty"` // Key Result ID 4421 Content *string `json:"content,omitempty"` // KeyResult 内容 4422 Score *int `json:"score,omitempty"` // KeyResult打分(0 - 100) 4423 Weight *int `json:"weight,omitempty"` // KeyResult权重(0 - 100) 4424 ProgressRate *UserOkrObjectiveProgressRate `json:"progress_rate,omitempty"` // Objective进度 4425 } 4426 4427 type UserOkrObjectiveKrBuilder struct { 4428 id string // Key Result ID 4429 idFlag bool 4430 content string // KeyResult 内容 4431 contentFlag bool 4432 score int // KeyResult打分(0 - 100) 4433 scoreFlag bool 4434 weight int // KeyResult权重(0 - 100) 4435 weightFlag bool 4436 progressRate *UserOkrObjectiveProgressRate // Objective进度 4437 progressRateFlag bool 4438 } 4439 4440 func NewUserOkrObjectiveKrBuilder() *UserOkrObjectiveKrBuilder { 4441 builder := &UserOkrObjectiveKrBuilder{} 4442 return builder 4443 } 4444 4445 // Key Result ID 4446 // 4447 // 示例值: 4448 func (builder *UserOkrObjectiveKrBuilder) Id(id string) *UserOkrObjectiveKrBuilder { 4449 builder.id = id 4450 builder.idFlag = true 4451 return builder 4452 } 4453 4454 // KeyResult 内容 4455 // 4456 // 示例值: 4457 func (builder *UserOkrObjectiveKrBuilder) Content(content string) *UserOkrObjectiveKrBuilder { 4458 builder.content = content 4459 builder.contentFlag = true 4460 return builder 4461 } 4462 4463 // KeyResult打分(0 - 100) 4464 // 4465 // 示例值: 4466 func (builder *UserOkrObjectiveKrBuilder) Score(score int) *UserOkrObjectiveKrBuilder { 4467 builder.score = score 4468 builder.scoreFlag = true 4469 return builder 4470 } 4471 4472 // KeyResult权重(0 - 100) 4473 // 4474 // 示例值: 4475 func (builder *UserOkrObjectiveKrBuilder) Weight(weight int) *UserOkrObjectiveKrBuilder { 4476 builder.weight = weight 4477 builder.weightFlag = true 4478 return builder 4479 } 4480 4481 // Objective进度 4482 // 4483 // 示例值: 4484 func (builder *UserOkrObjectiveKrBuilder) ProgressRate(progressRate *UserOkrObjectiveProgressRate) *UserOkrObjectiveKrBuilder { 4485 builder.progressRate = progressRate 4486 builder.progressRateFlag = true 4487 return builder 4488 } 4489 4490 func (builder *UserOkrObjectiveKrBuilder) Build() *UserOkrObjectiveKr { 4491 req := &UserOkrObjectiveKr{} 4492 if builder.idFlag { 4493 req.Id = &builder.id 4494 4495 } 4496 if builder.contentFlag { 4497 req.Content = &builder.content 4498 4499 } 4500 if builder.scoreFlag { 4501 req.Score = &builder.score 4502 4503 } 4504 if builder.weightFlag { 4505 req.Weight = &builder.weight 4506 4507 } 4508 if builder.progressRateFlag { 4509 req.ProgressRate = builder.progressRate 4510 } 4511 return req 4512 } 4513 4514 type UserOkrObjectiveProgressRate struct { 4515 Percent *int `json:"percent,omitempty"` // Objective 进度百分比 >= 0 4516 Status *string `json:"status,omitempty"` // Objective 进度状态,undefined 未更新,normal 正常,risky 有风险,overdue 已延期 4517 } 4518 4519 type UserOkrObjectiveProgressRateBuilder struct { 4520 percent int // Objective 进度百分比 >= 0 4521 percentFlag bool 4522 status string // Objective 进度状态,undefined 未更新,normal 正常,risky 有风险,overdue 已延期 4523 statusFlag bool 4524 } 4525 4526 func NewUserOkrObjectiveProgressRateBuilder() *UserOkrObjectiveProgressRateBuilder { 4527 builder := &UserOkrObjectiveProgressRateBuilder{} 4528 return builder 4529 } 4530 4531 // Objective 进度百分比 >= 0 4532 // 4533 // 示例值: 4534 func (builder *UserOkrObjectiveProgressRateBuilder) Percent(percent int) *UserOkrObjectiveProgressRateBuilder { 4535 builder.percent = percent 4536 builder.percentFlag = true 4537 return builder 4538 } 4539 4540 // Objective 进度状态,undefined 未更新,normal 正常,risky 有风险,overdue 已延期 4541 // 4542 // 示例值: 4543 func (builder *UserOkrObjectiveProgressRateBuilder) Status(status string) *UserOkrObjectiveProgressRateBuilder { 4544 builder.status = status 4545 builder.statusFlag = true 4546 return builder 4547 } 4548 4549 func (builder *UserOkrObjectiveProgressRateBuilder) Build() *UserOkrObjectiveProgressRate { 4550 req := &UserOkrObjectiveProgressRate{} 4551 if builder.percentFlag { 4552 req.Percent = &builder.percent 4553 4554 } 4555 if builder.statusFlag { 4556 req.Status = &builder.status 4557 4558 } 4559 return req 4560 } 4561 4562 type UploadImageReqBodyBuilder struct { 4563 data io.Reader // 图片 4564 dataFlag bool 4565 targetId string // 图片的目标ID 4566 targetIdFlag bool 4567 targetType int // 图片使用的目标类型 4568 targetTypeFlag bool 4569 } 4570 4571 func NewUploadImageReqBodyBuilder() *UploadImageReqBodyBuilder { 4572 builder := &UploadImageReqBodyBuilder{} 4573 return builder 4574 } 4575 4576 // 图片 4577 // 4578 //示例值:file binary 4579 func (builder *UploadImageReqBodyBuilder) Data(data io.Reader) *UploadImageReqBodyBuilder { 4580 builder.data = data 4581 builder.dataFlag = true 4582 return builder 4583 } 4584 4585 // 图片的目标ID 4586 // 4587 //示例值:6974586812998174252 4588 func (builder *UploadImageReqBodyBuilder) TargetId(targetId string) *UploadImageReqBodyBuilder { 4589 builder.targetId = targetId 4590 builder.targetIdFlag = true 4591 return builder 4592 } 4593 4594 // 图片使用的目标类型 4595 // 4596 //示例值:1 4597 func (builder *UploadImageReqBodyBuilder) TargetType(targetType int) *UploadImageReqBodyBuilder { 4598 builder.targetType = targetType 4599 builder.targetTypeFlag = true 4600 return builder 4601 } 4602 4603 func (builder *UploadImageReqBodyBuilder) Build() *UploadImageReqBody { 4604 req := &UploadImageReqBody{} 4605 if builder.dataFlag { 4606 req.Data = builder.data 4607 } 4608 if builder.targetIdFlag { 4609 req.TargetId = &builder.targetId 4610 } 4611 if builder.targetTypeFlag { 4612 req.TargetType = &builder.targetType 4613 } 4614 return req 4615 } 4616 4617 type UploadImagePathReqBodyBuilder struct { 4618 dataPath string // 图片 4619 dataPathFlag bool 4620 targetId string // 图片的目标ID 4621 targetIdFlag bool 4622 targetType int // 图片使用的目标类型 4623 targetTypeFlag bool 4624 } 4625 4626 func NewUploadImagePathReqBodyBuilder() *UploadImagePathReqBodyBuilder { 4627 builder := &UploadImagePathReqBodyBuilder{} 4628 return builder 4629 } 4630 4631 // 图片 4632 // 4633 // 示例值:file binary 4634 func (builder *UploadImagePathReqBodyBuilder) DataPath(dataPath string) *UploadImagePathReqBodyBuilder { 4635 builder.dataPath = dataPath 4636 builder.dataPathFlag = true 4637 return builder 4638 } 4639 4640 // 图片的目标ID 4641 // 4642 // 示例值:6974586812998174252 4643 func (builder *UploadImagePathReqBodyBuilder) TargetId(targetId string) *UploadImagePathReqBodyBuilder { 4644 builder.targetId = targetId 4645 builder.targetIdFlag = true 4646 return builder 4647 } 4648 4649 // 图片使用的目标类型 4650 // 4651 // 示例值:1 4652 func (builder *UploadImagePathReqBodyBuilder) TargetType(targetType int) *UploadImagePathReqBodyBuilder { 4653 builder.targetType = targetType 4654 builder.targetTypeFlag = true 4655 return builder 4656 } 4657 4658 func (builder *UploadImagePathReqBodyBuilder) Build() (*UploadImageReqBody, error) { 4659 req := &UploadImageReqBody{} 4660 if builder.dataPathFlag { 4661 data, err := larkcore.File2Bytes(builder.dataPath) 4662 if err != nil { 4663 return nil, err 4664 } 4665 req.Data = bytes.NewBuffer(data) 4666 } 4667 if builder.targetIdFlag { 4668 req.TargetId = &builder.targetId 4669 } 4670 if builder.targetTypeFlag { 4671 req.TargetType = &builder.targetType 4672 } 4673 return req, nil 4674 } 4675 4676 type UploadImageReqBuilder struct { 4677 apiReq *larkcore.ApiReq 4678 body *UploadImageReqBody 4679 } 4680 4681 func NewUploadImageReqBuilder() *UploadImageReqBuilder { 4682 builder := &UploadImageReqBuilder{} 4683 builder.apiReq = &larkcore.ApiReq{ 4684 PathParams: larkcore.PathParams{}, 4685 QueryParams: larkcore.QueryParams{}, 4686 } 4687 return builder 4688 } 4689 4690 // 上传图片 4691 func (builder *UploadImageReqBuilder) Body(body *UploadImageReqBody) *UploadImageReqBuilder { 4692 builder.body = body 4693 return builder 4694 } 4695 4696 func (builder *UploadImageReqBuilder) Build() *UploadImageReq { 4697 req := &UploadImageReq{} 4698 req.apiReq = &larkcore.ApiReq{} 4699 req.apiReq.Body = builder.body 4700 return req 4701 } 4702 4703 type UploadImageReqBody struct { 4704 Data io.Reader `json:"data,omitempty"` // 图片 4705 TargetId *string `json:"target_id,omitempty"` // 图片的目标ID 4706 TargetType *int `json:"target_type,omitempty"` // 图片使用的目标类型 4707 } 4708 4709 type UploadImageReq struct { 4710 apiReq *larkcore.ApiReq 4711 Body *UploadImageReqBody `body:""` 4712 } 4713 4714 type UploadImageRespData struct { 4715 Data *ImageInfo `json:"data,omitempty"` // 图片url和token信息 4716 } 4717 4718 type UploadImageResp struct { 4719 *larkcore.ApiResp `json:"-"` 4720 larkcore.CodeError 4721 Data *UploadImageRespData `json:"data"` // 业务数据 4722 } 4723 4724 func (resp *UploadImageResp) Success() bool { 4725 return resp.Code == 0 4726 } 4727 4728 type BatchGetOkrReqBuilder struct { 4729 apiReq *larkcore.ApiReq 4730 } 4731 4732 func NewBatchGetOkrReqBuilder() *BatchGetOkrReqBuilder { 4733 builder := &BatchGetOkrReqBuilder{} 4734 builder.apiReq = &larkcore.ApiReq{ 4735 PathParams: larkcore.PathParams{}, 4736 QueryParams: larkcore.QueryParams{}, 4737 } 4738 return builder 4739 } 4740 4741 // 此次调用中使用的用户ID的类型 4742 // 4743 // 示例值: 4744 func (builder *BatchGetOkrReqBuilder) UserIdType(userIdType string) *BatchGetOkrReqBuilder { 4745 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4746 return builder 4747 } 4748 4749 // OKR ID 列表,最多10个 4750 // 4751 // 示例值:7043693679567028244 4752 func (builder *BatchGetOkrReqBuilder) OkrIds(okrIds []string) *BatchGetOkrReqBuilder { 4753 builder.apiReq.QueryParams.Set("okr_ids", fmt.Sprint(okrIds)) 4754 return builder 4755 } 4756 4757 // 请求OKR的语言版本(比如@的人名),lang=en_us/zh_cn,请求 Query中 4758 // 4759 // 示例值:zh_cn 4760 func (builder *BatchGetOkrReqBuilder) Lang(lang string) *BatchGetOkrReqBuilder { 4761 builder.apiReq.QueryParams.Set("lang", fmt.Sprint(lang)) 4762 return builder 4763 } 4764 4765 func (builder *BatchGetOkrReqBuilder) Build() *BatchGetOkrReq { 4766 req := &BatchGetOkrReq{} 4767 req.apiReq = &larkcore.ApiReq{} 4768 req.apiReq.QueryParams = builder.apiReq.QueryParams 4769 return req 4770 } 4771 4772 type BatchGetOkrReq struct { 4773 apiReq *larkcore.ApiReq 4774 } 4775 4776 type BatchGetOkrRespData struct { 4777 OkrList []*OkrBatch `json:"okr_list,omitempty"` // OKR 列表 4778 } 4779 4780 type BatchGetOkrResp struct { 4781 *larkcore.ApiResp `json:"-"` 4782 larkcore.CodeError 4783 Data *BatchGetOkrRespData `json:"data"` // 业务数据 4784 } 4785 4786 func (resp *BatchGetOkrResp) Success() bool { 4787 return resp.Code == 0 4788 } 4789 4790 type ListPeriodReqBuilder struct { 4791 apiReq *larkcore.ApiReq 4792 } 4793 4794 func NewListPeriodReqBuilder() *ListPeriodReqBuilder { 4795 builder := &ListPeriodReqBuilder{} 4796 builder.apiReq = &larkcore.ApiReq{ 4797 PathParams: larkcore.PathParams{}, 4798 QueryParams: larkcore.QueryParams{}, 4799 } 4800 return builder 4801 } 4802 4803 // 分页标志page_token 4804 // 4805 // 示例值:xaasdasdax 4806 func (builder *ListPeriodReqBuilder) PageToken(pageToken string) *ListPeriodReqBuilder { 4807 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 4808 return builder 4809 } 4810 4811 // 分页大小,默认10 4812 // 4813 // 示例值:10 4814 func (builder *ListPeriodReqBuilder) PageSize(pageSize int) *ListPeriodReqBuilder { 4815 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 4816 return builder 4817 } 4818 4819 func (builder *ListPeriodReqBuilder) Build() *ListPeriodReq { 4820 req := &ListPeriodReq{} 4821 req.apiReq = &larkcore.ApiReq{} 4822 req.apiReq.QueryParams = builder.apiReq.QueryParams 4823 return req 4824 } 4825 4826 type ListPeriodReq struct { 4827 apiReq *larkcore.ApiReq 4828 } 4829 4830 type ListPeriodRespData struct { 4831 PageToken *string `json:"page_token,omitempty"` // 分页标志 4832 HasMore *bool `json:"has_more,omitempty"` // 是否有更多 4833 Items []*Period `json:"items,omitempty"` // 数据项 4834 } 4835 4836 type ListPeriodResp struct { 4837 *larkcore.ApiResp `json:"-"` 4838 larkcore.CodeError 4839 Data *ListPeriodRespData `json:"data"` // 业务数据 4840 } 4841 4842 func (resp *ListPeriodResp) Success() bool { 4843 return resp.Code == 0 4844 } 4845 4846 type CreateProgressRecordReqBodyBuilder struct { 4847 sourceTitle string // 进展来源 4848 sourceTitleFlag bool 4849 sourceUrl string // 进展来源链接 4850 sourceUrlFlag bool 4851 targetId string // 目标id,与target_type对应 4852 targetIdFlag bool 4853 targetType int // 目标类型 4854 targetTypeFlag bool 4855 content *ContentBlock // 进展详情 富文本格式 4856 contentFlag bool 4857 } 4858 4859 func NewCreateProgressRecordReqBodyBuilder() *CreateProgressRecordReqBodyBuilder { 4860 builder := &CreateProgressRecordReqBodyBuilder{} 4861 return builder 4862 } 4863 4864 // 进展来源 4865 // 4866 //示例值:周报系统 4867 func (builder *CreateProgressRecordReqBodyBuilder) SourceTitle(sourceTitle string) *CreateProgressRecordReqBodyBuilder { 4868 builder.sourceTitle = sourceTitle 4869 builder.sourceTitleFlag = true 4870 return builder 4871 } 4872 4873 // 进展来源链接 4874 // 4875 //示例值:https://www.zhoubao.com 4876 func (builder *CreateProgressRecordReqBodyBuilder) SourceUrl(sourceUrl string) *CreateProgressRecordReqBodyBuilder { 4877 builder.sourceUrl = sourceUrl 4878 builder.sourceUrlFlag = true 4879 return builder 4880 } 4881 4882 // 目标id,与target_type对应 4883 // 4884 //示例值:7041430377642082323 4885 func (builder *CreateProgressRecordReqBodyBuilder) TargetId(targetId string) *CreateProgressRecordReqBodyBuilder { 4886 builder.targetId = targetId 4887 builder.targetIdFlag = true 4888 return builder 4889 } 4890 4891 // 目标类型 4892 // 4893 //示例值:1 4894 func (builder *CreateProgressRecordReqBodyBuilder) TargetType(targetType int) *CreateProgressRecordReqBodyBuilder { 4895 builder.targetType = targetType 4896 builder.targetTypeFlag = true 4897 return builder 4898 } 4899 4900 // 进展详情 富文本格式 4901 // 4902 //示例值: 4903 func (builder *CreateProgressRecordReqBodyBuilder) Content(content *ContentBlock) *CreateProgressRecordReqBodyBuilder { 4904 builder.content = content 4905 builder.contentFlag = true 4906 return builder 4907 } 4908 4909 func (builder *CreateProgressRecordReqBodyBuilder) Build() *CreateProgressRecordReqBody { 4910 req := &CreateProgressRecordReqBody{} 4911 if builder.sourceTitleFlag { 4912 req.SourceTitle = &builder.sourceTitle 4913 } 4914 if builder.sourceUrlFlag { 4915 req.SourceUrl = &builder.sourceUrl 4916 } 4917 if builder.targetIdFlag { 4918 req.TargetId = &builder.targetId 4919 } 4920 if builder.targetTypeFlag { 4921 req.TargetType = &builder.targetType 4922 } 4923 if builder.contentFlag { 4924 req.Content = builder.content 4925 } 4926 return req 4927 } 4928 4929 type CreateProgressRecordPathReqBodyBuilder struct { 4930 sourceTitle string // 进展来源 4931 sourceTitleFlag bool 4932 sourceUrl string // 进展来源链接 4933 sourceUrlFlag bool 4934 targetId string // 目标id,与target_type对应 4935 targetIdFlag bool 4936 targetType int // 目标类型 4937 targetTypeFlag bool 4938 content *ContentBlock // 进展详情 富文本格式 4939 contentFlag bool 4940 } 4941 4942 func NewCreateProgressRecordPathReqBodyBuilder() *CreateProgressRecordPathReqBodyBuilder { 4943 builder := &CreateProgressRecordPathReqBodyBuilder{} 4944 return builder 4945 } 4946 4947 // 进展来源 4948 // 4949 // 示例值:周报系统 4950 func (builder *CreateProgressRecordPathReqBodyBuilder) SourceTitle(sourceTitle string) *CreateProgressRecordPathReqBodyBuilder { 4951 builder.sourceTitle = sourceTitle 4952 builder.sourceTitleFlag = true 4953 return builder 4954 } 4955 4956 // 进展来源链接 4957 // 4958 // 示例值:https://www.zhoubao.com 4959 func (builder *CreateProgressRecordPathReqBodyBuilder) SourceUrl(sourceUrl string) *CreateProgressRecordPathReqBodyBuilder { 4960 builder.sourceUrl = sourceUrl 4961 builder.sourceUrlFlag = true 4962 return builder 4963 } 4964 4965 // 目标id,与target_type对应 4966 // 4967 // 示例值:7041430377642082323 4968 func (builder *CreateProgressRecordPathReqBodyBuilder) TargetId(targetId string) *CreateProgressRecordPathReqBodyBuilder { 4969 builder.targetId = targetId 4970 builder.targetIdFlag = true 4971 return builder 4972 } 4973 4974 // 目标类型 4975 // 4976 // 示例值:1 4977 func (builder *CreateProgressRecordPathReqBodyBuilder) TargetType(targetType int) *CreateProgressRecordPathReqBodyBuilder { 4978 builder.targetType = targetType 4979 builder.targetTypeFlag = true 4980 return builder 4981 } 4982 4983 // 进展详情 富文本格式 4984 // 4985 // 示例值: 4986 func (builder *CreateProgressRecordPathReqBodyBuilder) Content(content *ContentBlock) *CreateProgressRecordPathReqBodyBuilder { 4987 builder.content = content 4988 builder.contentFlag = true 4989 return builder 4990 } 4991 4992 func (builder *CreateProgressRecordPathReqBodyBuilder) Build() (*CreateProgressRecordReqBody, error) { 4993 req := &CreateProgressRecordReqBody{} 4994 if builder.sourceTitleFlag { 4995 req.SourceTitle = &builder.sourceTitle 4996 } 4997 if builder.sourceUrlFlag { 4998 req.SourceUrl = &builder.sourceUrl 4999 } 5000 if builder.targetIdFlag { 5001 req.TargetId = &builder.targetId 5002 } 5003 if builder.targetTypeFlag { 5004 req.TargetType = &builder.targetType 5005 } 5006 if builder.contentFlag { 5007 req.Content = builder.content 5008 } 5009 return req, nil 5010 } 5011 5012 type CreateProgressRecordReqBuilder struct { 5013 apiReq *larkcore.ApiReq 5014 body *CreateProgressRecordReqBody 5015 } 5016 5017 func NewCreateProgressRecordReqBuilder() *CreateProgressRecordReqBuilder { 5018 builder := &CreateProgressRecordReqBuilder{} 5019 builder.apiReq = &larkcore.ApiReq{ 5020 PathParams: larkcore.PathParams{}, 5021 QueryParams: larkcore.QueryParams{}, 5022 } 5023 return builder 5024 } 5025 5026 // 创建OKR进展记录 5027 func (builder *CreateProgressRecordReqBuilder) Body(body *CreateProgressRecordReqBody) *CreateProgressRecordReqBuilder { 5028 builder.body = body 5029 return builder 5030 } 5031 5032 func (builder *CreateProgressRecordReqBuilder) Build() *CreateProgressRecordReq { 5033 req := &CreateProgressRecordReq{} 5034 req.apiReq = &larkcore.ApiReq{} 5035 req.apiReq.Body = builder.body 5036 return req 5037 } 5038 5039 type CreateProgressRecordReqBody struct { 5040 SourceTitle *string `json:"source_title,omitempty"` // 进展来源 5041 SourceUrl *string `json:"source_url,omitempty"` // 进展来源链接 5042 TargetId *string `json:"target_id,omitempty"` // 目标id,与target_type对应 5043 TargetType *int `json:"target_type,omitempty"` // 目标类型 5044 Content *ContentBlock `json:"content,omitempty"` // 进展详情 富文本格式 5045 } 5046 5047 type CreateProgressRecordReq struct { 5048 apiReq *larkcore.ApiReq 5049 Body *CreateProgressRecordReqBody `body:""` 5050 } 5051 5052 type CreateProgressRecordRespData struct { 5053 Data *ProgressRecord `json:"data,omitempty"` // 成功创建的进展详情 5054 } 5055 5056 type CreateProgressRecordResp struct { 5057 *larkcore.ApiResp `json:"-"` 5058 larkcore.CodeError 5059 Data *CreateProgressRecordRespData `json:"data"` // 业务数据 5060 } 5061 5062 func (resp *CreateProgressRecordResp) Success() bool { 5063 return resp.Code == 0 5064 } 5065 5066 type DeleteProgressRecordReqBuilder struct { 5067 apiReq *larkcore.ApiReq 5068 } 5069 5070 func NewDeleteProgressRecordReqBuilder() *DeleteProgressRecordReqBuilder { 5071 builder := &DeleteProgressRecordReqBuilder{} 5072 builder.apiReq = &larkcore.ApiReq{ 5073 PathParams: larkcore.PathParams{}, 5074 QueryParams: larkcore.QueryParams{}, 5075 } 5076 return builder 5077 } 5078 5079 // 待删除的 OKR进展记录 ID 5080 // 5081 // 示例值:7041857032248410131 5082 func (builder *DeleteProgressRecordReqBuilder) ProgressId(progressId string) *DeleteProgressRecordReqBuilder { 5083 builder.apiReq.PathParams.Set("progress_id", fmt.Sprint(progressId)) 5084 return builder 5085 } 5086 5087 func (builder *DeleteProgressRecordReqBuilder) Build() *DeleteProgressRecordReq { 5088 req := &DeleteProgressRecordReq{} 5089 req.apiReq = &larkcore.ApiReq{} 5090 req.apiReq.PathParams = builder.apiReq.PathParams 5091 return req 5092 } 5093 5094 type DeleteProgressRecordReq struct { 5095 apiReq *larkcore.ApiReq 5096 } 5097 5098 type DeleteProgressRecordResp struct { 5099 *larkcore.ApiResp `json:"-"` 5100 larkcore.CodeError 5101 } 5102 5103 func (resp *DeleteProgressRecordResp) Success() bool { 5104 return resp.Code == 0 5105 } 5106 5107 type GetProgressRecordReqBuilder struct { 5108 apiReq *larkcore.ApiReq 5109 } 5110 5111 func NewGetProgressRecordReqBuilder() *GetProgressRecordReqBuilder { 5112 builder := &GetProgressRecordReqBuilder{} 5113 builder.apiReq = &larkcore.ApiReq{ 5114 PathParams: larkcore.PathParams{}, 5115 QueryParams: larkcore.QueryParams{}, 5116 } 5117 return builder 5118 } 5119 5120 // 待查询的 OKR进展记录 ID 5121 // 5122 // 示例值:7041857032248410131 5123 func (builder *GetProgressRecordReqBuilder) ProgressId(progressId string) *GetProgressRecordReqBuilder { 5124 builder.apiReq.PathParams.Set("progress_id", fmt.Sprint(progressId)) 5125 return builder 5126 } 5127 5128 func (builder *GetProgressRecordReqBuilder) Build() *GetProgressRecordReq { 5129 req := &GetProgressRecordReq{} 5130 req.apiReq = &larkcore.ApiReq{} 5131 req.apiReq.PathParams = builder.apiReq.PathParams 5132 return req 5133 } 5134 5135 type GetProgressRecordReq struct { 5136 apiReq *larkcore.ApiReq 5137 } 5138 5139 type GetProgressRecordRespData struct { 5140 ProgressId *string `json:"progress_id,omitempty"` // OKR 进展ID 5141 ModifyTime *string `json:"modify_time,omitempty"` // 进展更新时间 毫秒 5142 Content *ContentBlock `json:"content,omitempty"` // 进展 对应的 Content 详细内容 5143 } 5144 5145 type GetProgressRecordResp struct { 5146 *larkcore.ApiResp `json:"-"` 5147 larkcore.CodeError 5148 Data *GetProgressRecordRespData `json:"data"` // 业务数据 5149 } 5150 5151 func (resp *GetProgressRecordResp) Success() bool { 5152 return resp.Code == 0 5153 } 5154 5155 type UpdateProgressRecordReqBodyBuilder struct { 5156 content *ContentBlock // 进展详情 富文本格式 5157 contentFlag bool 5158 } 5159 5160 func NewUpdateProgressRecordReqBodyBuilder() *UpdateProgressRecordReqBodyBuilder { 5161 builder := &UpdateProgressRecordReqBodyBuilder{} 5162 return builder 5163 } 5164 5165 // 进展详情 富文本格式 5166 // 5167 //示例值: 5168 func (builder *UpdateProgressRecordReqBodyBuilder) Content(content *ContentBlock) *UpdateProgressRecordReqBodyBuilder { 5169 builder.content = content 5170 builder.contentFlag = true 5171 return builder 5172 } 5173 5174 func (builder *UpdateProgressRecordReqBodyBuilder) Build() *UpdateProgressRecordReqBody { 5175 req := &UpdateProgressRecordReqBody{} 5176 if builder.contentFlag { 5177 req.Content = builder.content 5178 } 5179 return req 5180 } 5181 5182 type UpdateProgressRecordPathReqBodyBuilder struct { 5183 content *ContentBlock // 进展详情 富文本格式 5184 contentFlag bool 5185 } 5186 5187 func NewUpdateProgressRecordPathReqBodyBuilder() *UpdateProgressRecordPathReqBodyBuilder { 5188 builder := &UpdateProgressRecordPathReqBodyBuilder{} 5189 return builder 5190 } 5191 5192 // 进展详情 富文本格式 5193 // 5194 // 示例值: 5195 func (builder *UpdateProgressRecordPathReqBodyBuilder) Content(content *ContentBlock) *UpdateProgressRecordPathReqBodyBuilder { 5196 builder.content = content 5197 builder.contentFlag = true 5198 return builder 5199 } 5200 5201 func (builder *UpdateProgressRecordPathReqBodyBuilder) Build() (*UpdateProgressRecordReqBody, error) { 5202 req := &UpdateProgressRecordReqBody{} 5203 if builder.contentFlag { 5204 req.Content = builder.content 5205 } 5206 return req, nil 5207 } 5208 5209 type UpdateProgressRecordReqBuilder struct { 5210 apiReq *larkcore.ApiReq 5211 body *UpdateProgressRecordReqBody 5212 } 5213 5214 func NewUpdateProgressRecordReqBuilder() *UpdateProgressRecordReqBuilder { 5215 builder := &UpdateProgressRecordReqBuilder{} 5216 builder.apiReq = &larkcore.ApiReq{ 5217 PathParams: larkcore.PathParams{}, 5218 QueryParams: larkcore.QueryParams{}, 5219 } 5220 return builder 5221 } 5222 5223 // 待更新的 OKR进展记录 ID 5224 // 5225 // 示例值:7041857032248410131 5226 func (builder *UpdateProgressRecordReqBuilder) ProgressId(progressId string) *UpdateProgressRecordReqBuilder { 5227 builder.apiReq.PathParams.Set("progress_id", fmt.Sprint(progressId)) 5228 return builder 5229 } 5230 5231 // 根据OKR进展记录ID更新进展详情 5232 func (builder *UpdateProgressRecordReqBuilder) Body(body *UpdateProgressRecordReqBody) *UpdateProgressRecordReqBuilder { 5233 builder.body = body 5234 return builder 5235 } 5236 5237 func (builder *UpdateProgressRecordReqBuilder) Build() *UpdateProgressRecordReq { 5238 req := &UpdateProgressRecordReq{} 5239 req.apiReq = &larkcore.ApiReq{} 5240 req.apiReq.PathParams = builder.apiReq.PathParams 5241 req.apiReq.Body = builder.body 5242 return req 5243 } 5244 5245 type UpdateProgressRecordReqBody struct { 5246 Content *ContentBlock `json:"content,omitempty"` // 进展详情 富文本格式 5247 } 5248 5249 type UpdateProgressRecordReq struct { 5250 apiReq *larkcore.ApiReq 5251 Body *UpdateProgressRecordReqBody `body:""` 5252 } 5253 5254 type UpdateProgressRecordRespData struct { 5255 Data *ProgressRecord `json:"data,omitempty"` // 更新后的进行详情 5256 } 5257 5258 type UpdateProgressRecordResp struct { 5259 *larkcore.ApiResp `json:"-"` 5260 larkcore.CodeError 5261 Data *UpdateProgressRecordRespData `json:"data"` // 业务数据 5262 } 5263 5264 func (resp *UpdateProgressRecordResp) Success() bool { 5265 return resp.Code == 0 5266 } 5267 5268 type ListUserOkrReqBuilder struct { 5269 apiReq *larkcore.ApiReq 5270 } 5271 5272 func NewListUserOkrReqBuilder() *ListUserOkrReqBuilder { 5273 builder := &ListUserOkrReqBuilder{} 5274 builder.apiReq = &larkcore.ApiReq{ 5275 PathParams: larkcore.PathParams{}, 5276 QueryParams: larkcore.QueryParams{}, 5277 } 5278 return builder 5279 } 5280 5281 // 目标用户id 5282 // 5283 // 示例值:ou-asdasdasdasdasd 5284 func (builder *ListUserOkrReqBuilder) UserId(userId string) *ListUserOkrReqBuilder { 5285 builder.apiReq.PathParams.Set("user_id", fmt.Sprint(userId)) 5286 return builder 5287 } 5288 5289 // 此次调用中使用的用户ID的类型 5290 // 5291 // 示例值: 5292 func (builder *ListUserOkrReqBuilder) UserIdType(userIdType string) *ListUserOkrReqBuilder { 5293 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 5294 return builder 5295 } 5296 5297 // 请求列表的偏移,offset>=0 5298 // 5299 // 示例值:0 5300 func (builder *ListUserOkrReqBuilder) Offset(offset string) *ListUserOkrReqBuilder { 5301 builder.apiReq.QueryParams.Set("offset", fmt.Sprint(offset)) 5302 return builder 5303 } 5304 5305 // 列表长度,0-10 5306 // 5307 // 示例值:5 5308 func (builder *ListUserOkrReqBuilder) Limit(limit string) *ListUserOkrReqBuilder { 5309 builder.apiReq.QueryParams.Set("limit", fmt.Sprint(limit)) 5310 return builder 5311 } 5312 5313 // 请求OKR的语言版本(比如@的人名),lang=en_us/zh_cn 5314 // 5315 // 示例值:zh_cn 5316 func (builder *ListUserOkrReqBuilder) Lang(lang string) *ListUserOkrReqBuilder { 5317 builder.apiReq.QueryParams.Set("lang", fmt.Sprint(lang)) 5318 return builder 5319 } 5320 5321 // period_id列表,最多10个 5322 // 5323 // 示例值:["6951461264858777132"] 5324 func (builder *ListUserOkrReqBuilder) PeriodIds(periodIds []string) *ListUserOkrReqBuilder { 5325 builder.apiReq.QueryParams.Set("period_ids", fmt.Sprint(periodIds)) 5326 return builder 5327 } 5328 5329 func (builder *ListUserOkrReqBuilder) Build() *ListUserOkrReq { 5330 req := &ListUserOkrReq{} 5331 req.apiReq = &larkcore.ApiReq{} 5332 req.apiReq.PathParams = builder.apiReq.PathParams 5333 req.apiReq.QueryParams = builder.apiReq.QueryParams 5334 return req 5335 } 5336 5337 type ListUserOkrReq struct { 5338 apiReq *larkcore.ApiReq 5339 } 5340 5341 type ListUserOkrRespData struct { 5342 Total *int `json:"total,omitempty"` // OKR周期总数 5343 OkrList []*OkrBatch `json:"okr_list,omitempty"` // OKR 列表 5344 } 5345 5346 type ListUserOkrResp struct { 5347 *larkcore.ApiResp `json:"-"` 5348 larkcore.CodeError 5349 Data *ListUserOkrRespData `json:"data"` // 业务数据 5350 } 5351 5352 func (resp *ListUserOkrResp) Success() bool { 5353 return resp.Code == 0 5354 }