From ee607930ffdcff02b48aa8300cfe7201c7ac33b3 Mon Sep 17 00:00:00 2001 From: Antoine Grondin Date: Fri, 5 Sep 2025 17:28:29 +0900 Subject: [PATCH] refine invitation proto --- go/types/v1/organization.pb.go | 54 +++++++++++++++++-------------- js/types/v1/organization_pb.ts | 12 ++++--- proto/types/v1/organization.proto | 5 +-- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/go/types/v1/organization.pb.go b/go/types/v1/organization.pb.go index 5c5a881..713fe9f 100644 --- a/go/types/v1/organization.pb.go +++ b/go/types/v1/organization.pb.go @@ -141,8 +141,8 @@ func (x *Organization) GetCreatedAt() *timestamppb.Timestamp { type Invitation struct { state protoimpl.MessageState `protogen:"open.v1"` Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - InvitedToOrgId int64 `protobuf:"varint,2,opt,name=invited_to_org_id,json=invitedToOrgId,proto3" json:"invited_to_org_id,omitempty"` - InvitedUserId int64 `protobuf:"varint,3,opt,name=invited_user_id,json=invitedUserId,proto3" json:"invited_user_id,omitempty"` + InvitedTo *Organization `protobuf:"bytes,2,opt,name=invited_to,json=invitedTo,proto3" json:"invited_to,omitempty"` + InvitedBy *PublicUser `protobuf:"bytes,3,opt,name=invited_by,json=invitedBy,proto3" json:"invited_by,omitempty"` InvitedUserEmail string `protobuf:"bytes,4,opt,name=invited_user_email,json=invitedUserEmail,proto3" json:"invited_user_email,omitempty"` State Invitation_State `protobuf:"varint,5,opt,name=state,proto3,enum=types.v1.Invitation_State" json:"state,omitempty"` CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` @@ -191,18 +191,18 @@ func (x *Invitation) GetId() int64 { return 0 } -func (x *Invitation) GetInvitedToOrgId() int64 { +func (x *Invitation) GetInvitedTo() *Organization { if x != nil { - return x.InvitedToOrgId + return x.InvitedTo } - return 0 + return nil } -func (x *Invitation) GetInvitedUserId() int64 { +func (x *Invitation) GetInvitedBy() *PublicUser { if x != nil { - return x.InvitedUserId + return x.InvitedBy } - return 0 + return nil } func (x *Invitation) GetInvitedUserEmail() string { @@ -258,17 +258,19 @@ var File_types_v1_organization_proto protoreflect.FileDescriptor const file_types_v1_organization_proto_rawDesc = "" + "\n" + - "\x1btypes/v1/organization.proto\x12\btypes.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x94\x01\n" + + "\x1btypes/v1/organization.proto\x12\btypes.v1\x1a\x1bbuf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x13types/v1/user.proto\"\x94\x01\n" + "\fOrganization\x12\x0e\n" + "\x02id\x18\x01 \x01(\x03R\x02id\x129\n" + "\x04name\x18\x02 \x01(\tB%\xbaH\"r \x10\x03\x18'2\x1a^[a-zA-Z0-9][a-zA-Z0-9-]+$R\x04name\x129\n" + "\n" + - "created_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xc5\x04\n" + + "created_at\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\xde\x04\n" + "\n" + "Invitation\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x03R\x02id\x12)\n" + - "\x11invited_to_org_id\x18\x02 \x01(\x03R\x0einvitedToOrgId\x12&\n" + - "\x0finvited_user_id\x18\x03 \x01(\x03R\rinvitedUserId\x12,\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x125\n" + + "\n" + + "invited_to\x18\x02 \x01(\v2\x16.types.v1.OrganizationR\tinvitedTo\x123\n" + + "\n" + + "invited_by\x18\x03 \x01(\v2\x14.types.v1.PublicUserR\tinvitedBy\x12,\n" + "\x12invited_user_email\x18\x04 \x01(\tR\x10invitedUserEmail\x120\n" + "\x05state\x18\x05 \x01(\x0e2\x1a.types.v1.Invitation.StateR\x05state\x129\n" + "\n" + @@ -309,20 +311,23 @@ var file_types_v1_organization_proto_goTypes = []any{ (*Organization)(nil), // 1: types.v1.Organization (*Invitation)(nil), // 2: types.v1.Invitation (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp + (*PublicUser)(nil), // 4: types.v1.PublicUser } var file_types_v1_organization_proto_depIdxs = []int32{ 3, // 0: types.v1.Organization.created_at:type_name -> google.protobuf.Timestamp - 0, // 1: types.v1.Invitation.state:type_name -> types.v1.Invitation.State - 3, // 2: types.v1.Invitation.created_at:type_name -> google.protobuf.Timestamp - 3, // 3: types.v1.Invitation.updated_at:type_name -> google.protobuf.Timestamp - 3, // 4: types.v1.Invitation.expires_at:type_name -> google.protobuf.Timestamp - 3, // 5: types.v1.Invitation.accepted_at:type_name -> google.protobuf.Timestamp - 3, // 6: types.v1.Invitation.revoked_at:type_name -> google.protobuf.Timestamp - 7, // [7:7] is the sub-list for method output_type - 7, // [7:7] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 1, // 1: types.v1.Invitation.invited_to:type_name -> types.v1.Organization + 4, // 2: types.v1.Invitation.invited_by:type_name -> types.v1.PublicUser + 0, // 3: types.v1.Invitation.state:type_name -> types.v1.Invitation.State + 3, // 4: types.v1.Invitation.created_at:type_name -> google.protobuf.Timestamp + 3, // 5: types.v1.Invitation.updated_at:type_name -> google.protobuf.Timestamp + 3, // 6: types.v1.Invitation.expires_at:type_name -> google.protobuf.Timestamp + 3, // 7: types.v1.Invitation.accepted_at:type_name -> google.protobuf.Timestamp + 3, // 8: types.v1.Invitation.revoked_at:type_name -> google.protobuf.Timestamp + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name } func init() { file_types_v1_organization_proto_init() } @@ -330,6 +335,7 @@ func file_types_v1_organization_proto_init() { if File_types_v1_organization_proto != nil { return } + file_types_v1_user_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/js/types/v1/organization_pb.ts b/js/types/v1/organization_pb.ts index 3a6b997..2426d19 100644 --- a/js/types/v1/organization_pb.ts +++ b/js/types/v1/organization_pb.ts @@ -7,13 +7,15 @@ import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2"; import { file_buf_validate_validate } from "../../buf/validate/validate_pb"; import type { Timestamp } from "@bufbuild/protobuf/wkt"; import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt"; +import type { PublicUser } from "./user_pb"; +import { file_types_v1_user } from "./user_pb"; import type { Message } from "@bufbuild/protobuf"; /** * Describes the file types/v1/organization.proto. */ export const file_types_v1_organization: GenFile = /*@__PURE__*/ - fileDesc("Cht0eXBlcy92MS9vcmdhbml6YXRpb24ucHJvdG8SCHR5cGVzLnYxIn8KDE9yZ2FuaXphdGlvbhIKCgJpZBgBIAEoAxIzCgRuYW1lGAIgASgJQiW6SCJyIBADGCcyGl5bYS16QS1aMC05XVthLXpBLVowLTktXSskEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItEDCgpJbnZpdGF0aW9uEgoKAmlkGAEgASgDEhkKEWludml0ZWRfdG9fb3JnX2lkGAIgASgDEhcKD2ludml0ZWRfdXNlcl9pZBgDIAEoAxIaChJpbnZpdGVkX3VzZXJfZW1haWwYBCABKAkSKQoFc3RhdGUYBSABKA4yGi50eXBlcy52MS5JbnZpdGF0aW9uLlN0YXRlEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi8KC2FjY2VwdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpyZXZva2VkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJLCgVTdGF0ZRINCglVTkRFRklORUQQABILCgdQRU5ESU5HEAESDAoIQUNDRVBURUQQAhILCgdSRVZPS0VEEAMSCwoHRVhQSVJFRBAEQpEBCgxjb20udHlwZXMudjFCEU9yZ2FuaXphdGlvblByb3RvUAFaLWdpdGh1Yi5jb20vaHVtYW5sb2dpby9hcGkvZ28vdHlwZXMvdjE7dHlwZXN2MaICA1RYWKoCCFR5cGVzLlYxygIIVHlwZXNcVjHiAhRUeXBlc1xWMVxHUEJNZXRhZGF0YeoCCVR5cGVzOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_protobuf_timestamp]); + fileDesc("Cht0eXBlcy92MS9vcmdhbml6YXRpb24ucHJvdG8SCHR5cGVzLnYxIn8KDE9yZ2FuaXphdGlvbhIKCgJpZBgBIAEoAxIzCgRuYW1lGAIgASgJQiW6SCJyIBADGCcyGl5bYS16QS1aMC05XVthLXpBLVowLTktXSskEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIvMDCgpJbnZpdGF0aW9uEgoKAmlkGAEgASgDEioKCmludml0ZWRfdG8YAiABKAsyFi50eXBlcy52MS5Pcmdhbml6YXRpb24SKAoKaW52aXRlZF9ieRgDIAEoCzIULnR5cGVzLnYxLlB1YmxpY1VzZXISGgoSaW52aXRlZF91c2VyX2VtYWlsGAQgASgJEikKBXN0YXRlGAUgASgOMhoudHlwZXMudjEuSW52aXRhdGlvbi5TdGF0ZRIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpleHBpcmVzX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgthY2NlcHRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKcmV2b2tlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSwoFU3RhdGUSDQoJVU5ERUZJTkVEEAASCwoHUEVORElORxABEgwKCEFDQ0VQVEVEEAISCwoHUkVWT0tFRBADEgsKB0VYUElSRUQQBEKRAQoMY29tLnR5cGVzLnYxQhFPcmdhbml6YXRpb25Qcm90b1ABWi1naXRodWIuY29tL2h1bWFubG9naW8vYXBpL2dvL3R5cGVzL3YxO3R5cGVzdjGiAgNUWFiqAghUeXBlcy5WMcoCCFR5cGVzXFYx4gIUVHlwZXNcVjFcR1BCTWV0YWRhdGHqAglUeXBlczo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_timestamp, file_types_v1_user]); /** * @generated from message types.v1.Organization @@ -52,14 +54,14 @@ export type Invitation = Message<"types.v1.Invitation"> & { id: bigint; /** - * @generated from field: int64 invited_to_org_id = 2; + * @generated from field: types.v1.Organization invited_to = 2; */ - invitedToOrgId: bigint; + invitedTo?: Organization; /** - * @generated from field: int64 invited_user_id = 3; + * @generated from field: types.v1.PublicUser invited_by = 3; */ - invitedUserId: bigint; + invitedBy?: PublicUser; /** * @generated from field: string invited_user_email = 4; diff --git a/proto/types/v1/organization.proto b/proto/types/v1/organization.proto index 6cf8b7d..c86dc21 100644 --- a/proto/types/v1/organization.proto +++ b/proto/types/v1/organization.proto @@ -4,6 +4,7 @@ package types.v1; import "buf/validate/validate.proto"; import "google/protobuf/timestamp.proto"; +import "types/v1/user.proto"; option go_package = "types/v1;typesv1"; @@ -26,8 +27,8 @@ message Invitation { EXPIRED = 4; } int64 id = 1; - int64 invited_to_org_id = 2; - int64 invited_user_id = 3; + Organization invited_to = 2; + PublicUser invited_by = 3; string invited_user_email = 4; State state = 5; google.protobuf.Timestamp created_at = 6;