Changes
100 changed files (+259/-1)
-
-
@@ -6,3 +6,5 @@ # SPDX-License-Identifier: AGPL-3.0-onlydprint 0.47.5 bun 1.1.45 terraform 1.10.3 protoc-gen-go 1.36.5 go 1.24.1
-
-
-
@@ -7,3 +7,8 @@ [[annotations]]path = "packages/assets/*" SPDX-FileCopyrightText = "2024 Shota FUJI <pockawoooh@gmail.com>" SPDX-License-Identifier = "AGPL-3.0-only" [[annotations]] path = ["packages/**/go.sum", "go.work.sum"] SPDX-FileCopyrightText = "2025 Shota FUJI <pockawoooh@gmail.com>" SPDX-License-Identifier = "AGPL-3.0-only"
-
-
-
@@ -19,6 +19,10 @@ },{ "exts": ["tf"], "command": "terraform fmt -" }, { "exts": ["go"], "command": "gofmt" } ] },
-
-
go.work (new)
-
@@ -0,0 +1,9 @@// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only go 1.24.1 use ( ./packages/proto ./packages/test_go_consumer )
-
-
go.work.sum (new)
-
@@ -0,0 +1,4 @@github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
-
-
-
@@ -6,3 +6,7 @@# What: 自動生成された .js/.dts ファイルの格納先。 # Why: `yamori/` ディレクトリ配下の .proto ファイルから自動生成されるため。 /es # What: 自動生成された .go ファイルの格納先。 # Why: `yamori/` ディレクトリ配下の .proto ファイルから自動生成されるため。 /go
-
-
-
@@ -11,3 +11,7 @@ out: esopt: - target=js+dts - import_extension=js - local: protoc-gen-go out: go opt: - module=pocka.jp/x/yamori/proto/go
-
-
packages/proto/go.mod (new)
-
@@ -0,0 +1,8 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only module pocka.jp/x/yamori/proto go 1.24.1 require google.golang.org/protobuf v1.36.5
-
-
packages/proto/go.sum (new)
-
@@ -0,0 +1,3 @@github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
-
-
-
@@ -10,7 +10,7 @@ "wireit": {"make": { "command": "buf generate", "files": ["yamori/**/*.proto", "buf.gen.yaml"], "output": ["es/**"], "output": ["es/**", "go/**"], "packageLocks": ["bun.lockb"] }, "js": {
-
@@ -24,6 +24,15 @@ ]}, "dts": { "files": ["es/**/*.d.ts"], "dependencies": [ { "script": "make", "cascade": false } ] }, "go": { "files": ["go/**/*.go"], "dependencies": [ { "script": "make",
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.capability.v1; option go_package = "pocka.jp/x/yamori/proto/go/capability/v1"; // アクセス許可キー。 message CapabilityKey { // キーを識別・検証するための任意のバイト列。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.error.v1; option go_package = "pocka.jp/x/yamori/proto/go/error/v1"; message CapabilityError { // エラーの原因となったキーのパス。セキュリティのため空の場合もある。 // 記法は google.protobuf.FieldMask と同様。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.error.v1; option go_package = "pocka.jp/x/yamori/proto/go/error/v1"; // メッセージにおいて指定が必須のフィールドが指定されていない場合のエラー。 message MissingFieldError { // 必須だが空のフィールドのパス。記法は google.protobuf.FieldMask と同様。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.error.v1; option go_package = "pocka.jp/x/yamori/proto/go/error/v1"; // データをこれ以上保存できない場合のエラー。 message NoStorageSpace { // デバッグ・調査用のメッセージ。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.error.v1; option go_package = "pocka.jp/x/yamori/proto/go/error/v1"; // 対象のリソースが存在しない場合のエラー。 message NotFound { // リソースの型名。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.error.v1; option go_package = "pocka.jp/x/yamori/proto/go/error/v1"; // メソッドが未実装の際のエラー。 message NotImplemented { // 開発者向けの詳細。バックエンドで既知のメソッドを実装できない場合
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.error.v1; option go_package = "pocka.jp/x/yamori/proto/go/error/v1"; // 予期せぬエラー。事前に定義されていないエラーは全てこのメッセージ // で表される。また、プラットフォーム・配布形態固有のため各サービス // で定義できないものもこれで表される。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.idempotency.v1; option go_package = "pocka.jp/x/yamori/proto/go/idempotency/v1"; // 冪等性を確保するための任意文字列。リクエストを発行する側が // 生成してリクエストに付与する。冪等性が必要なメソッドはこの // メッセージをフィールドに持つこと。
-
-
-
@@ -7,6 +7,8 @@ package yamori.paid_leave_provision.v1;import "yamori/paid_leave_provision/v1/paid_leave_provision_table_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/paid_leave_provision/v1"; message ListSystemProvisionTablesRequest { // ok.tables の各要素にかけるマスク。 PaidLeaveProvisionTableReadMask read_mask = 1;
-
-
-
@@ -8,6 +8,8 @@import "yamori/error/v1/system_error.proto"; import "yamori/paid_leave_provision/v1/paid_leave_provision_table.proto"; option go_package = "pocka.jp/x/yamori/proto/go/paid_leave_provision/v1"; message ListSystemProvisionTablesResponse { message OK { repeated PaidLeaveProvisionTable tables = 1;
-
-
-
@@ -8,6 +8,8 @@import "yamori/paid_leave_provision/v1/list_system_provision_tables_request.proto"; import "yamori/paid_leave_provision/v1/list_system_provision_tables_response.proto"; option go_package = "pocka.jp/x/yamori/proto/go/paid_leave_provision/v1"; service PaidLeaveProvisionService { // システムによって定義されている、法令で定められている最低限の日数の付与テーブルの // 一覧を取得する。
-
-
-
@@ -9,6 +9,8 @@ import "yamori/capability/v1/capability_key.proto";import "yamori/paid_leave_provision/v1/paid_leave_provision_table_id.proto"; import "yamori/paid_leave_provision/v1/paid_leave_provision_table_revision.proto"; option go_package = "pocka.jp/x/yamori/proto/go/paid_leave_provision/v1"; message PaidLeaveProvisionTable { PaidLeaveProvisionTableID id = 1;
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.paid_leave_provision.v1; option go_package = "pocka.jp/x/yamori/proto/go/paid_leave_provision/v1"; // 年次有給休暇の付与テーブルを識別する一意の ID 。 // 付与テーブルの ID は `pt-` というプリフィクスを持つ。 message PaidLeaveProvisionTableID {
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.paid_leave_provision.v1; option go_package = "pocka.jp/x/yamori/proto/go/paid_leave_provision/v1"; // PaidLeaveProvisionTable を出力する際のフィールドマスク。 message PaidLeaveProvisionTableReadMask { // レスポンスに含める PaidLeaveProvisionTable のフィールド番号。
-
-
-
@@ -7,6 +7,8 @@ package yamori.paid_leave_provision.v1;import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/paid_leave_provision/v1"; message PaidLeaveProvisionTableRevision { // この版を参照する開始日。最初の版は空となる。 yamori.type.v1.Date start_at = 1;
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.type.v1; option go_package = "pocka.jp/x/yamori/proto/go/type/v1"; message Date { // 1~9999, 0 (未指定) の場合は年を指定しない月日。 uint32 year = 1;
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.work_record.v1; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 休日。なお、ここでいう「休日」とは労働基準法における定義であり、 // "国民の祝日に関する法律" で定義されている「休日」とはなんら // 関係がない。 "day off" は包括的な "休み" だが、他にいい表現が
-
-
-
@@ -5,4 +5,6 @@ edition = "2023";package yamori.work_record.v1; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message DayOffWriteInput {}
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/work_record/v1/record_kind.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message HalvedRecord { // 前半 (午前) の記録。 RecordKind am = 1;
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/work_record/v1/record_kind_write_input.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message HalvedRecordWriteInput { // 前半 (午前) の記録。 RecordKindWriteInput am = 1;
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 時間単位年次有給休暇。 message HourlyPaidLeave { // この有給休暇が付与された年月日。
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message HourlyPaidLeaveWriteInput { // 利用した時間。 (1~24) uint32 hours = 1;
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/work_record/v1/leave.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 一日未満、もしくは半日未満の時間単位で法定・特別休暇を取得した。 message HourlyWorkspaceDefinedLeave { // 対象となる法定・特別休暇。
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/work_record/v1/leave_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message HourlyWorkspaceDefinedLeaveWriteInput { // 対象となる法定・特別休暇の ID 。 LeaveID leave_id = 1;
-
-
-
@@ -9,6 +9,8 @@ import "yamori/capability/v1/capability_key.proto";import "yamori/work_record/v1/leave_id.proto"; import "yamori/work_record/v1/leave_revision.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 休暇や休業。英語としては果てしなく微妙だが、法令の英語表記及び // 一般的な英語の言い回しで「休日」と「休暇 (休業) 」を区別しないため // 労働基準法で用いられている "paid leave" から "leave" だけを抜き
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/work_record/v1/leave_revision_input.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 休暇や休業を作成する際のペイロード。 message LeaveCreateInput { // 有給休暇の出勤率計算を行う際に、この休暇・休業を行った日を出勤した
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.work_record.v1; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 休暇や休業を識別するための ID 。 // `lv-` というプリフィクスを持つ。 message LeaveID {
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.work_record.v1; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // Leave を出力する際のフィールドマスク。 message LeaveReadMask { // 出力に含める Leave のフィールド番号。
-
-
-
@@ -9,6 +9,8 @@ import "yamori/type/v1/date.proto";import "yamori/work_record/v1/leave_revision_id.proto"; import "yamori/work_record/v1/leave_snapshot.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 休暇や休業の定義は常に一定とは限らない。運用中にマスタデータをそのまま変更して // しまうと過去のデータにも影響を与えてしまうため、バージョン管理を行う。 // このメッセージは各バージョンのスナップショット。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.work_record.v1; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 休暇・休業の各バージョンを識別するための ID 。 // `lr-` というプリフィクスを持つ。 message LeaveRevisionID {
-
-
-
@@ -8,6 +8,8 @@import "yamori/type/v1/date.proto"; import "yamori/work_record/v1/leave_snapshot.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message LeaveRevisionInput { // このバージョンを適用する開始日。 yamori.type.v1.Date start_at = 1;
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.work_record.v1; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message LeaveSnapshot { // 有給休暇の出勤率計算を行う際に、この休暇・休業を行った日を出勤した // としてみなすかどうか。
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 年次有給休暇。 message PaidLeave { // この有給休暇が付与された年月日。
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message PaidLeaveWriteInput { // 利用する年次有給休暇が付与された年月日。 // 未指定の場合は最も消滅日が近いものを利用する。
-
-
-
@@ -11,6 +11,8 @@ import "yamori/work_record/v1/paid_leave.proto";import "yamori/work_record/v1/skipped.proto"; import "yamori/work_record/v1/worked.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 勤怠の記録。 message RecordKind { oneof kind {
-
-
-
@@ -11,6 +11,8 @@ import "yamori/work_record/v1/paid_leave_write_input.proto";import "yamori/work_record/v1/skipped_write_input.proto"; import "yamori/work_record/v1/worked_write_input.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message RecordKindWriteInput { oneof kind { // 出勤した。
-
-
-
@@ -8,6 +8,8 @@import "yamori/work_record/v1/hourly_paid_leave.proto"; import "yamori/work_record/v1/hourly_workspace_defined_leave.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 欠勤したことを表すレコード。 message Skipped { // 利用した時間単位年次有給休暇。
-
-
-
@@ -8,6 +8,8 @@import "yamori/work_record/v1/hourly_paid_leave_write_input.proto"; import "yamori/work_record/v1/hourly_workspace_defined_leave_write_input.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message SkippedWriteInput { // 利用した時間単位年次有給休暇。 // 年次有給休暇付与の出勤率算定時に欠勤扱いを避けるために利用する
-
-
-
@@ -8,6 +8,8 @@import "yamori/work_record/v1/hourly_paid_leave.proto"; import "yamori/work_record/v1/paid_leave.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 一日の所定労働時間を下回る休暇。 message TimeOff { oneof kind {
-
-
-
@@ -8,6 +8,8 @@import "yamori/work_record/v1/hourly_paid_leave_write_input.proto"; import "yamori/work_record/v1/paid_leave_write_input.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // フィールド詳細に関する説明は TimeOff を参照。 message TimeOffWriteInput { oneof kind {
-
-
-
@@ -13,6 +13,8 @@ import "yamori/work_record/v1/paid_leave.proto";import "yamori/work_record/v1/record_kind.proto"; import "yamori/work_record/v1/working_day.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message WorkRecord { reserved 5, 6;
-
-
-
@@ -13,6 +13,8 @@ import "yamori/work_record/v1/paid_leave_write_input.proto";import "yamori/work_record/v1/record_kind_write_input.proto"; import "yamori/work_record/v1/working_day_write_input.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message WorkRecordBatchWriteInput { reserved 5, 6;
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.work_record.v1; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message WorkRecordBatchWriteMask { // 更新する WorkRecordBatchWriteInput のフィールド番号。 // `dates` は処理に必ず必要なため未指定でも読まれる。
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message WorkRecordFilter { // 取得範囲開始日。結果にはこの日が含まれる。 // 未指定の場合はサーバ時間でのリクエスト処理日となる。
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/work_record/v1/leave_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // yamori.work_record.v1.WorkRecord を出力する際のマスク。 message WorkRecordReadMask { reserved 5, 6;
-
-
-
@@ -8,6 +8,8 @@import "yamori/work_record/v1/hourly_paid_leave.proto"; import "yamori/work_record/v1/hourly_workspace_defined_leave.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; // 出勤したことを表すレコード。 message Worked { // 利用した時間単位年次有給休暇。
-
-
-
@@ -8,6 +8,8 @@import "yamori/work_record/v1/hourly_paid_leave_write_input.proto"; import "yamori/work_record/v1/hourly_workspace_defined_leave_write_input.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message WorkedWriteInput { // 利用した時間単位年次有給休暇。 HourlyPaidLeaveWriteInput hourly_paid_leave = 1;
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/work_record/v1/time_off.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message WorkingDay { // 労働者が出勤したかどうか。 bool has_worker_worked = 1;
-
-
-
@@ -7,6 +7,8 @@ package yamori.work_record.v1;import "yamori/work_record/v1/time_off_write_input.proto"; option go_package = "pocka.jp/x/yamori/proto/go/work_record/v1"; message WorkingDayWriteInput { // 労働者が出勤したかどうか。 bool has_worker_worked = 1;
-
-
-
@@ -12,6 +12,8 @@ import "yamori/type/v1/date.proto";import "yamori/worker/v1/worker_read_mask.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message CreateRequest { yamori.idempotency.v1.Key idempotency_key = 1;
-
-
-
@@ -11,6 +11,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/worker/v1/worker.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message CreateResponse { message Result { // 作成された労働者。
-
-
-
@@ -11,6 +11,8 @@ import "yamori/worker/v1/worker_id.proto";import "yamori/worker/v1/worker_read_mask.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message GetRequest { // [必須] 対象労働者の所属するワークスペースの ID 。 yamori.workspace.v1.WorkspaceID workspace_id = 1;
-
-
-
@@ -10,6 +10,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/worker/v1/worker.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message GetResponse { oneof result { Worker ok = 1;
-
-
-
@@ -10,6 +10,8 @@ import "yamori/worker/v1/paid_leave_provision_filter.proto";import "yamori/worker/v1/worker_read_mask.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message ListRequest { // [必須] 対象ワークスペースの ID 。 yamori.workspace.v1.WorkspaceID workspace_id = 1;
-
-
-
@@ -11,6 +11,8 @@ import "yamori/error/v1/system_error.proto";import "yamori/worker/v1/worker.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message ListResponse { message Result { // 一覧の属するワークスペース。
-
-
-
@@ -8,6 +8,8 @@import "google/protobuf/timestamp.proto"; import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message PaidLeaveProvision { // 付与日。 yamori.type.v1.Date provided_at = 1;
-
-
-
@@ -7,6 +7,8 @@ package yamori.worker.v1;import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message PaidLeaveProvisionFilter { // 付与日がこの日付と同じかそれ以降の付与に限定する。 yamori.type.v1.Date provided_at_since = 1;
-
-
-
@@ -7,6 +7,8 @@ package yamori.worker.v1;import "yamori/type/v1/date.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message PaidLeaveProvisionInput { // [必須] 付与日。キーとなるため同日の付与履歴がある場合は上書きをする。 yamori.type.v1.Date provided_at = 1;
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.worker.v1; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message PaidLeaveProvisionInputMask { // 書き込む `PaidLeaveProvisionInput` のフィールド番号。 // `provided_at` は必須のため未指定でも読まれる。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.worker.v1; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message PaidLeaveProvisionReadMask { // 出力に含める yamori.worker.v1.PaidLeaveProvision のフィールド番号。 repeated int32 fields = 1;
-
-
-
@@ -12,6 +12,8 @@ import "yamori/worker/v1/paid_leave_provision_read_mask.proto";import "yamori/worker/v1/worker_id.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message ProvidePaidLeaveRequest { // [必須] 対象労働者が所属するワークスペースの ID 。 yamori.workspace.v1.WorkspaceID workspace_id = 1;
-
-
-
@@ -11,6 +11,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/worker/v1/paid_leave_provision.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message ProvidePaidLeaveResponse { message OK { PaidLeaveProvision paid_leave_provision = 1;
-
-
-
@@ -12,6 +12,8 @@ import "yamori/work_record/v1/work_record.proto";import "yamori/worker/v1/paid_leave_provision.proto"; import "yamori/worker/v1/worker_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; // 被雇用の労働者を表す。 message Worker { WorkerID id = 1;
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.worker.v1; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; // システムによって割り振られたワークスペース内で一意の識別子。 // 労働者の ID は `wr-` というプリフィクスを持つ。 message WorkerID {
-
-
-
@@ -9,6 +9,8 @@ import "yamori/paid_leave_provision/v1/paid_leave_provision_table_read_mask.proto";import "yamori/work_record/v1/work_record_read_mask.proto"; import "yamori/worker/v1/paid_leave_provision_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; // Worker を出力する際のフィールドマスク。 message WorkerReadMask { // 出力に含める yamori.worker.v1.Worker のフィールド番号。
-
-
-
@@ -16,6 +16,8 @@ import "yamori/worker/v1/provide_paid_leave_response.proto";import "yamori/worker/v1/write_work_record_request.proto"; import "yamori/worker/v1/write_work_record_response.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; service WorkerService { // ID を指定して労働者を取得する。 rpc Get(GetRequest) returns (GetResponse);
-
-
-
@@ -12,6 +12,8 @@ import "yamori/work_record/v1/work_record_read_mask.proto";import "yamori/worker/v1/worker_id.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message WriteWorkRecordRequest { // [必須] 対象労働者が所属するワークスペースの ID 。 yamori.workspace.v1.WorkspaceID workspace_id = 1;
-
-
-
@@ -11,6 +11,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/work_record/v1/work_record.proto"; option go_package = "pocka.jp/x/yamori/proto/go/worker/v1"; message WriteWorkRecordResponse { message OK { // 更新後の勤怠記録。
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.workspace.v1; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message Abbreviations { // 休日の省略表示。 string dayoff = 1;
-
-
-
@@ -11,6 +11,8 @@ import "yamori/work_record/v1/leave_create_input.proto";import "yamori/work_record/v1/leave_read_mask.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message CreateLeaveDefinitionRequest { yamori.idempotency.v1.Key idempotency_key = 1;
-
-
-
@@ -12,6 +12,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/work_record/v1/leave.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message CreateLeaveDefinitionResponse { oneof result { // 作成された休暇休業定義。
-
-
-
@@ -8,6 +8,8 @@import "yamori/idempotency/v1/key.proto"; import "yamori/workspace/v1/workspace_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message CreateRequest { yamori.idempotency.v1.Key idempotency_key = 1;
-
-
-
@@ -10,6 +10,8 @@ import "yamori/error/v1/no_storage_space.proto";import "yamori/error/v1/system_error.proto"; import "yamori/workspace/v1/workspace.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message CreateResponse { message Result { // 作成されたワークスペース。
-
-
-
@@ -10,6 +10,8 @@ import "yamori/work_record/v1/leave_id.proto";import "yamori/work_record/v1/leave_read_mask.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message DeleteLeaveDefinitionRequest { // DeleteLeaveDefinitionResponse.ok.deleted に対してかけるマスク。 yamori.work_record.v1.LeaveReadMask read_mask = 1;
-
-
-
@@ -11,6 +11,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/work_record/v1/leave.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message DeleteLeaveDefinitionResponse { message Result { // 削除された定義。
-
-
-
@@ -9,6 +9,8 @@ import "yamori/capability/v1/capability_key.proto";import "yamori/workspace/v1/workspace_id.proto"; import "yamori/workspace/v1/workspace_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message DeleteRequest { // [必須] 削除対象のワークスペースの ID 。 WorkspaceID id = 1;
-
-
-
@@ -11,6 +11,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/workspace/v1/workspace.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message DeleteResponse { message Result { // 削除されたワークスペース。
-
-
-
@@ -8,6 +8,8 @@import "yamori/workspace/v1/workspace_id.proto"; import "yamori/workspace/v1/workspace_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message GetRequest { // 対象のワークスペースの ID 。 WorkspaceID workspace_id = 1;
-
-
-
@@ -10,6 +10,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/workspace/v1/workspace.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message GetResponse { oneof result { // 対象のワークスペース。
-
-
-
@@ -7,6 +7,8 @@ package yamori.workspace.v1;import "yamori/workspace/v1/workspace_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message ListRequest { // ok.workspaces の各要素に対してかけるフィールドマスク。 WorkspaceReadMask read_mask = 1;
-
-
-
@@ -8,6 +8,8 @@import "yamori/error/v1/system_error.proto"; import "yamori/workspace/v1/workspace.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message ListResponse { message Result { // アクセス可能なワークスペースの一覧。
-
-
-
@@ -11,6 +11,8 @@ import "yamori/workspace/v1/abbreviations.proto";import "yamori/workspace/v1/workspace_id.proto"; import "yamori/workspace/v1/workspace_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message UpdateRequest { // [必須] 更新対象のワークスペースの ID 。 WorkspaceID id = 1;
-
-
-
@@ -11,6 +11,8 @@ import "yamori/error/v1/not_found.proto";import "yamori/error/v1/system_error.proto"; import "yamori/workspace/v1/workspace.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; message UpdateResponse { message Result { // 更新後のワークスペース。
-
-
-
@@ -11,6 +11,8 @@ import "yamori/work_record/v1/leave.proto";import "yamori/workspace/v1/abbreviations.proto"; import "yamori/workspace/v1/workspace_id.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; // 労働者や勤怠記録といった全てのデータの管理単位。 // 会社や組織と考えて問題ない。 message Workspace {
-
-
-
@@ -5,6 +5,8 @@ edition = "2023";package yamori.workspace.v1; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; // システムによって割り振られたシステム内で一意の識別子。 // ワークスペースの ID は `ws-` というプリフィクスを持つ。 message WorkspaceID {
-
-
-
@@ -8,6 +8,8 @@import "yamori/paid_leave_provision/v1/paid_leave_provision_table_read_mask.proto"; import "yamori/work_record/v1/leave_read_mask.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; // Workspace を出力する際のフィールドマスク。 message WorkspaceReadMask { // レスポンスに含める Workspace のフィールド番号。
-
-
-
@@ -20,6 +20,8 @@ import "yamori/workspace/v1/list_response.proto";import "yamori/workspace/v1/update_request.proto"; import "yamori/workspace/v1/update_response.proto"; option go_package = "pocka.jp/x/yamori/proto/go/workspace/v1"; service WorkspaceService { // ID を指定してワークスペースを取得する。 rpc Get(GetRequest) returns (GetResponse);
-
-
-
@@ -0,0 +1,8 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only module pocka.jp/x/yamori/test_go_consumer go 1.24.1 require google.golang.org/protobuf v1.36.5
-
-
-
@@ -0,0 +1,3 @@github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
-
-
-
@@ -0,0 +1,21 @@// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com> // SPDX-License-Identifier: AGPL-3.0-only package main import ( "fmt" "google.golang.org/protobuf/proto" types "pocka.jp/x/yamori/proto/go/type/v1" ) func main() { date := &types.Date{ Year: proto.Uint32(2025), Month: proto.Uint32(1), Day: proto.Uint32(1), } fmt.Printf("%d-%d-%d\n", *date.Year, *date.Month, *date.Day) }
-