use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize)] pub struct DatabaseInfo { pub name: String, pub owner: String, pub encoding: String, pub collation: String, pub ctype: String, pub tablespace: String, pub connection_limit: i32, pub size: String, pub description: Option, } #[derive(Debug, Deserialize)] pub struct CreateDatabaseParams { pub name: String, pub owner: Option, pub template: Option, pub encoding: Option, pub tablespace: Option, pub connection_limit: Option, } #[derive(Debug, Serialize, Deserialize)] pub struct RoleInfo { pub name: String, pub is_superuser: bool, pub can_login: bool, pub can_create_db: bool, pub can_create_role: bool, pub inherit: bool, pub is_replication: bool, pub connection_limit: i32, pub password_set: bool, pub valid_until: Option, pub member_of: Vec, pub members: Vec, pub description: Option, } #[derive(Debug, Deserialize)] pub struct CreateRoleParams { pub name: String, pub password: Option, pub login: bool, pub superuser: bool, pub createdb: bool, pub createrole: bool, pub inherit: bool, pub replication: bool, pub connection_limit: Option, pub valid_until: Option, pub in_roles: Vec, } #[derive(Debug, Deserialize)] pub struct AlterRoleParams { pub name: String, pub password: Option, pub login: Option, pub superuser: Option, pub createdb: Option, pub createrole: Option, pub inherit: Option, pub replication: Option, pub connection_limit: Option, pub valid_until: Option, pub rename_to: Option, } #[derive(Debug, Serialize, Deserialize)] pub struct TablePrivilege { pub grantee: String, pub table_schema: String, pub table_name: String, pub privilege_type: String, pub is_grantable: bool, } #[derive(Debug, Serialize, Deserialize)] pub struct SessionInfo { pub pid: i32, pub usename: Option, pub datname: Option, pub state: Option, pub query: Option, pub query_start: Option, pub wait_event_type: Option, pub wait_event: Option, pub client_addr: Option, } #[derive(Debug, Deserialize)] pub struct GrantRevokeParams { pub action: String, pub privileges: Vec, pub object_type: String, pub object_name: String, pub role_name: String, pub with_grant_option: bool, } #[derive(Debug, Deserialize)] pub struct RoleMembershipParams { pub action: String, pub role_name: String, pub member_name: String, }