@go.Package { name = "github.com/onsonr/sonr/gen/vault" } module vault import "package://pkg.pkl-lang.org/pkl-go/pkl.golang@0.5.0#/go.pkl" abstract class Client { chainId: String keyringBackend: String output: String node: String broadcastMode: String apiUrl: String addressPrefix: String } class Sonr extends Client { chainId = "sonr-testnet-1" keyringBackend = "test" output = "json" rpcUrl = "tcp://localhost:26657" broadcastMode = "async" apiUrl = "http://localhost:1317" addressPrefix = "idx" } abstract class DB { filename: String } class Sqlite extends DB { filename = "vault.db" } class PrimaryKey extends go.Field { structTags { ["gorm"] = "primaryKey" ["json"] = "%{name},omitempty" } } class Unique extends go.Field { structTags { ["gorm"] = "unique" ["json"] = "%{name},omitempty" } } class Default extends go.Field { defaultValue: String structTags { ["gorm"] = "default:%{defaultValue}" ["json"] = "%{name},omitempty" } } class NotNull extends go.Field { structTags { ["gorm"] = "not null" } } class AutoIncrement extends go.Field { structTags { ["gorm"] = "autoIncrement" } } class ForeignKey extends go.Field { references: String structTags { ["gorm"] = "foreignKey:%{references}" } } abstract class Model { table: String } class JsonField extends go.Field { structTags { ["json"] = "%{name},omitempty" } } class Account extends Model { table = "accounts" @PrimaryKey id: UInt @JsonField name: String @JsonField address: String @JsonField publicKey: Dynamic @JsonField createdAt: String? } class Asset extends Model { table = "assets" @PrimaryKey id: UInt @JsonField name: String @JsonField symbol: String @JsonField decimals: Int @JsonField chainId: Int? @JsonField createdAt: String? } class Chain extends Model { table = "chains" @PrimaryKey id: UInt @JsonField name: String @JsonField networkId: String @JsonField createdAt: String? } class Credential extends Model { table = "credentials" @PrimaryKey id: UInt @JsonField subject: String @JsonField controller: String @JsonField attestationType: String @JsonField origin: String @JsonField credentialId: Dynamic @JsonField publicKey: Dynamic @JsonField transport: String @JsonField signCount: UInt @JsonField userPresent: Boolean @JsonField userVerified: Boolean @JsonField backupEligible: Boolean @JsonField backupState: Boolean @JsonField cloneWarning: Boolean @JsonField createdAt: String? @JsonField updatedAt: String? } class Profile extends Model { table = "profiles" @PrimaryKey id: String @JsonField subject: String @JsonField controller: String @JsonField originUri: String? @JsonField publicMetadata: String? @JsonField privateMetadata: String? @JsonField createdAt: String? @JsonField updatedAt: String? } class Property extends Model { table = "properties" @PrimaryKey id: UInt @JsonField profileId: String @JsonField key: String @JsonField accumulator: Dynamic @JsonField propertyKey: Dynamic } class Keyshare extends Model { table = "keyshares" @PrimaryKey id: UInt @JsonField metadata: String @JsonField payloads: String @JsonField protocol: String @JsonField publicKey: Dynamic @JsonField role: Int @JsonField version: Int @JsonField createdAt: String? } class PublicKey extends Model { table = "public_keys" @PrimaryKey id: UInt @JsonField role: Int @JsonField algorithm: Int @JsonField encoding: Int @JsonField raw: Dynamic @JsonField hex: String @JsonField multibase: String @JsonField jwk: Dynamic @JsonField createdAt: String? } class Permission extends Model { table = "permissions" @PrimaryKey id: UInt @JsonField serviceId: String @JsonField grants: String @JsonField scopes: String @JsonField createdAt: String? @JsonField updatedAt: String? }