- Replace individual state structs with unified ListingDraft struct - Add EditingListing state with field selection interface - Implement individual field editing states (Title, Description, Price, Slots, StartTime, Duration) - Add field-specific keyboards with Back buttons and Clear functionality for description - Update all handlers to use ListingDraft instead of separate state structs - Rename Confirming to ViewingDraft for clarity - Add proper validation and error handling for all field edits - Enable seamless navigation between edit screen and confirmation - Maintain all existing functionality while adding edit capabilities
25 lines
795 B
Rust
25 lines
795 B
Rust
use log::info;
|
|
use teloxide::{prelude::*, types::Message, Bot};
|
|
|
|
use crate::HandlerResult;
|
|
|
|
pub async fn handle_start(bot: Bot, msg: Message) -> HandlerResult {
|
|
let welcome_message = "🎯 Welcome to Pawctioneer Bot! 🎯\n\n\
|
|
This bot helps you participate in various types of auctions:\n\
|
|
• Standard auctions with anti-sniping protection\n\
|
|
• Multi-slot auctions (multiple winners)\n\
|
|
• Fixed price sales\n\
|
|
• Blind auctions\n\n\
|
|
Use /help to see all available commands.\n\n\
|
|
Ready to start your auction experience? 🚀";
|
|
|
|
info!(
|
|
"User {} ({}) started the bot",
|
|
msg.chat.username().unwrap_or("unknown"),
|
|
msg.chat.id
|
|
);
|
|
|
|
bot.send_message(msg.chat.id, welcome_message).await?;
|
|
Ok(())
|
|
}
|