import argv import envoy import gleam/erlang/process import gleam/int import gleam/io import pog import server import server/context.{type Context, Context} import server/user import shared/role pub fn main() -> Nil { let db_process_name = process.new_name("db_conn") let db = pog.named_connection(db_process_name) let assert Ok(static_directory) = server.static_directory() let assert Ok(secret_key) = envoy.get("SECRET_KEY") let assert Ok(pog_config) = server.read_connection_uri(db_process_name) let assert Ok(_) = pog.start(pog_config) let ctx = Context(db:, static_directory:, secret_key:) case argv.load().arguments { ["sow"] -> sow_users(ctx) _ -> Nil } } fn sow_users(ctx: Context) -> Nil { let max_users = 50 int.range(1, max_users, with: Nil, run: fn(_, i) { let id = int.to_string(i) let assert Ok(_) = user.register( ctx:, user_name: "user_" <> id, user_role: role.None, user_password: "password_" <> id, user_email: "user_" <> id <> "@email.com", user_phone: "phone_" <> id, is_active: True, ) Nil }) io.println("󱢗 " <> int.to_string(max_users) <> " users generated") }