--
--



--
-- Name: public; Type: SCHEMA; Schema: -; Owner: dante
--

-- *not* creating schema, since initdb creates it


ALTER SCHEMA public OWNER TO dante;

--
-- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: dante
--

COMMENT ON SCHEMA public IS '';


--
-- Name: ChallengeStatus; Type: TYPE; Schema: public; Owner: dante
--

CREATE TYPE public."ChallengeStatus" AS ENUM (
    'CONFIRMED',
    'FAILED',
    'PENDING',
    'WORKING'
);


ALTER TYPE public."ChallengeStatus" OWNER TO dante;

--
-- Name: RespondentType; Type: TYPE; Schema: public; Owner: dante
--

CREATE TYPE public."RespondentType" AS ENUM (
    'ai',
    'admin'
);


ALTER TYPE public."RespondentType" OWNER TO dante;

--
-- Name: TransactionNetwork; Type: TYPE; Schema: public; Owner: dante
--

CREATE TYPE public."TransactionNetwork" AS ENUM (
    'TRC20',
    'BEP20'
);


ALTER TYPE public."TransactionNetwork" OWNER TO dante;

--
-- Name: TransactionStatus; Type: TYPE; Schema: public; Owner: dante
--

CREATE TYPE public."TransactionStatus" AS ENUM (
    'PENDING',
    'SUCCESS',
    'FAILED'
);


ALTER TYPE public."TransactionStatus" OWNER TO dante;



--
-- Name: Conversation; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."Conversation" (
    id text NOT NULL,
    "telegramUserId" text NOT NULL,
    "telegramChatId" text NOT NULL,
    title text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."Conversation" OWNER TO dante;

--
-- Name: FirmDocument; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."FirmDocument" (
    id integer NOT NULL,
    name text NOT NULL,
    fields jsonb NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."FirmDocument" OWNER TO dante;

--
-- Name: FirmDocument_id_seq; Type: SEQUENCE; Schema: public; Owner: dante
--

CREATE SEQUENCE public."FirmDocument_id_seq"
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER SEQUENCE public."FirmDocument_id_seq" OWNER TO dante;

--
-- Name: FirmDocument_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dante
--

ALTER SEQUENCE public."FirmDocument_id_seq" OWNED BY public."FirmDocument".id;


--
-- Name: GeneralDocument; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."GeneralDocument" (
    id integer NOT NULL,
    document jsonb NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."GeneralDocument" OWNER TO dante;

--
-- Name: GeneralDocument_id_seq; Type: SEQUENCE; Schema: public; Owner: dante
--

CREATE SEQUENCE public."GeneralDocument_id_seq"
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER SEQUENCE public."GeneralDocument_id_seq" OWNER TO dante;

--
-- Name: GeneralDocument_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dante
--

ALTER SEQUENCE public."GeneralDocument_id_seq" OWNED BY public."GeneralDocument".id;


--
-- Name: Literals; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."Literals" (
    id integer NOT NULL,
    "aiModel" text DEFAULT 'openai/gpt-4.1-mini'::text NOT NULL,
    "finalPrompt" text NOT NULL,
    commands jsonb NOT NULL,
    companies jsonb NOT NULL,
    "introText" text,
    "strategiesText" text,
    "rulesText" text,
    "templateText" text,
    "welcomeText" text,
    "skillPrompt" text,
    "enthusiasmPrompt" text,
    "customerPrompt" text,
    "companyRankingPrompt" text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."Literals" OWNER TO dante;

--
-- Name: Literals_id_seq; Type: SEQUENCE; Schema: public; Owner: dante
--

CREATE SEQUENCE public."Literals_id_seq"
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER SEQUENCE public."Literals_id_seq" OWNER TO dante;

--
-- Name: Literals_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dante
--

ALTER SEQUENCE public."Literals_id_seq" OWNED BY public."Literals".id;


--
-- Name: Message; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."Message" (
    id text NOT NULL,
    role text NOT NULL,
    content text NOT NULL,
    "conversationId" text NOT NULL,
    "isRead" boolean DEFAULT false NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
);


ALTER TABLE public."Message" OWNER TO dante;

--
-- Name: Product; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."Product" (
    id integer NOT NULL,
    plan text NOT NULL,
    description text,
    price double precision NOT NULL,
    firm text NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."Product" OWNER TO dante;

--
-- Name: Product_id_seq; Type: SEQUENCE; Schema: public; Owner: dante
--

CREATE SEQUENCE public."Product_id_seq"
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER SEQUENCE public."Product_id_seq" OWNER TO dante;

--
-- Name: Product_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dante
--

ALTER SEQUENCE public."Product_id_seq" OWNED BY public."Product".id;


--
-- Name: TelegramUser; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."TelegramUser" (
    id text NOT NULL,
    "telegramId" text NOT NULL,
    username text,
    "firstName" text,
    "lastName" text,
    balance double precision DEFAULT 0 NOT NULL,
    "lastInteraction" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "consultingRequest" text DEFAULT 'no'::text NOT NULL,
    respondent public."RespondentType" DEFAULT 'ai'::public."RespondentType" NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."TelegramUser" OWNER TO dante;

--
-- Name: UserBotState; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."UserBotState" (
    id text NOT NULL,
    "telegramUserId" text NOT NULL,
    state text DEFAULT 'INITIAL'::text NOT NULL,
    "selectedProductId" integer,
    "selectedNetwork" text,
    "additionalData" jsonb DEFAULT '{}'::jsonb,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."UserBotState" OWNER TO dante;

--
-- Name: UserProduct; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."UserProduct" (
    id text NOT NULL,
    "userId" text NOT NULL,
    "productId" integer NOT NULL,
    "challengeStatus" public."ChallengeStatus" DEFAULT 'PENDING'::public."ChallengeStatus" NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."UserProduct" OWNER TO dante;

--
-- Name: UserTicket; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."UserTicket" (
    id text NOT NULL,
    "telegramUserId" text NOT NULL,
    content text NOT NULL,
    checked boolean DEFAULT false NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."UserTicket" OWNER TO dante;

--
-- Name: UserTransaction; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."UserTransaction" (
    id text NOT NULL,
    "telegramUserId" text NOT NULL,
    "transactionHash" text NOT NULL,
    network public."TransactionNetwork" NOT NULL,
    value double precision NOT NULL,
    status public."TransactionStatus" DEFAULT 'PENDING'::public."TransactionStatus" NOT NULL,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."UserTransaction" OWNER TO dante;

--
-- Name: Wallet; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public."Wallet" (
    id integer NOT NULL,
    network public."TransactionNetwork" NOT NULL,
    name text NOT NULL,
    address text NOT NULL,
    description text,
    "createdAt" timestamp(3) without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
    "updatedAt" timestamp(3) without time zone NOT NULL
);


ALTER TABLE public."Wallet" OWNER TO dante;

--
-- Name: Wallet_id_seq; Type: SEQUENCE; Schema: public; Owner: dante
--

CREATE SEQUENCE public."Wallet_id_seq"
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER SEQUENCE public."Wallet_id_seq" OWNER TO dante;

--
-- Name: Wallet_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dante
--

ALTER SEQUENCE public."Wallet_id_seq" OWNED BY public."Wallet".id;


--
-- Name: _prisma_migrations; Type: TABLE; Schema: public; Owner: dante
--

CREATE TABLE public._prisma_migrations (
    id character varying(36) NOT NULL,
    checksum character varying(64) NOT NULL,
    finished_at timestamp with time zone,
    migration_name character varying(255) NOT NULL,
    logs text,
    rolled_back_at timestamp with time zone,
    started_at timestamp with time zone DEFAULT now() NOT NULL,
    applied_steps_count integer DEFAULT 0 NOT NULL
);


ALTER TABLE public._prisma_migrations OWNER TO dante;

--
-- Name: FirmDocument id; Type: DEFAULT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."FirmDocument" ALTER COLUMN id SET DEFAULT nextval('public."FirmDocument_id_seq"'::regclass);


--
-- Name: GeneralDocument id; Type: DEFAULT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."GeneralDocument" ALTER COLUMN id SET DEFAULT nextval('public."GeneralDocument_id_seq"'::regclass);


--
-- Name: Literals id; Type: DEFAULT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Literals" ALTER COLUMN id SET DEFAULT nextval('public."Literals_id_seq"'::regclass);


--
-- Name: Product id; Type: DEFAULT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Product" ALTER COLUMN id SET DEFAULT nextval('public."Product_id_seq"'::regclass);


--
-- Name: Wallet id; Type: DEFAULT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Wallet" ALTER COLUMN id SET DEFAULT nextval('public."Wallet_id_seq"'::regclass);


--
-- Data for Name: Conversation; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."Conversation" (id, "telegramUserId", "telegramChatId", title, "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: FirmDocument; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."FirmDocument" (id, name, fields, "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: GeneralDocument; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."GeneralDocument" (id, document, "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: Literals; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."Literals" (id, "aiModel", "finalPrompt", commands, companies, "introText", "strategiesText", "rulesText", "templateText", "welcomeText", "skillPrompt", "enthusiasmPrompt", "customerPrompt", "companyRankingPrompt", "createdAt") FROM stdin;
1	openai/gpt-4.1-mini	شما یک ربات هوش مصنوعی هستید که باید با لحن دوستانه به سوالات کاربران پاسخ دهید. وظیفه شما راهنمایی کاربران در مسیر درست و کمک به آنها برای دستیابی به اهدافشان است. سعی کنید همیشه پاسخ‌های مفید و دقیق ارائه دهید.\n\nاستراتژی‌های گفتگو:\n- شخصی‌سازی: ببین طرف چه مشکلی داره و راه‌حل مخصوص خودش رو براش پیدا کن\n- کشف نیازها: با سؤالای هوشمندانه، مشکلات واقعی کاربر رو کشف کن، حتی اونایی که خودش هم شاید ندونه داره!\n- داستان‌گویی: از موفقیت‌های مشتری‌های قبلی بگو تا طرف بتونه خودشو جای اونا تصور کنه و بگه "منم می‌تونم!"\n- حل مشکل: تمرکزت روی حل مشکل واقعی کاربر باشه، نه اینکه فقط ویژگی‌های محصول رو ردیف کنی\n- صمیمیت و اعتماد: جوری حرف بزن که طرف احساس کنه با یه دوست قدیمی داره صحبت می‌کنه و بهت اعتماد کنه\n\nقوانین گفتگو:\n- پاسخ‌ها رو جذاب نگه دار! انگار داری با دوستت حرف می‌زنی، راحت و صمیمی باش\n- تو هر پاسخت، حتماً یه سؤالی از کاربر بپرس که گفتگو ادامه پیدا کنه، خب؟\n- مشکلات احتمالی رو زرنگی کن و از قبل حدس بزن، جوابشون رو هم آماده داشته باش\n- از کلمات پرانرژی و احساسی استفاده کن که کاربر حسابی انگیزه بگیره و دست به کار شه\n\n\nدستورات لیترال:\n- /help: پرامپت: کامند /help لیست تمام دستورات موجود را به کاربر نشان می‌دهد. این کامند به کاربران کمک می‌کند تا با امکانات ربات آشنا شوند و بدانند برای هر کار از چه دستوری باید استفاده کنند. توضیحات شامل معرفی دستورات shop/ برای ورود به فروشگاه، new/ برای شروع گفتگوی جدید و ticket/ برای درخواست مشاوره می‌باشد.\n- /shop: پرامپت: کامند /shop به کاربر اجازه می‌دهد تا وارد فروشگاه شود و محصولات موجود را مشاهده کند. این کامند به کاربران کمک می‌کند تا با خدمات و محصولات ارائه شده آشنا شوند.\n\nاطلاعات مرتبط با سوال کاربر (از این اطلاعات برای پاسخ استفاده کنید):\n{context}\n\nتاریخچه گفتگو:\n{chat_history}\n\nسوال کاربر: {question}\n\nپاسخ دستیار :	[{"id": 1, "value": "🔍 راهنمای دستورات:\\n\\n🛒 /shop - ورود به فروشگاه و مشاهده محصولات\\n🔄 /new - شروع گفتگوی جدید\\n👨‍💼 /ticket - درخواست مشاوره مستقیم با کارشناسان پشتیبانی", "prompt": "کامند /help لیست تمام دستورات موجود را به کاربر نشان می‌دهد. این کامند به کاربران کمک می‌کند تا با امکانات ربات آشنا شوند و بدانند برای هر کار از چه دستوری باید استفاده کنند. توضیحات شامل معرفی دستورات shop/ برای ورود به فروشگاه، new/ برای شروع گفتگوی جدید و ticket/ برای درخواست مشاوره می‌باشد.", "command": "/help"}, {"id": 2, "value": "آدرس فروشگاه: @OurShopBot\\n\\nدر اینجا می‌توانید محصولات و خدمات ما را مشاهده کنید و از تخفیف‌های ویژه بهره‌مند شوید.", "prompt": "کامند /shop به کاربر اجازه می‌دهد تا وارد فروشگاه شود و محصولات موجود را مشاهده کند. این کامند به کاربران کمک می‌کند تا با خدمات و محصولات ارائه شده آشنا شوند.", "command": "/shop"}]	[]	شما یک ربات هوش مصنوعی هستید که باید با لحن دوستانه به سوالات کاربران پاسخ دهید. وظیفه شما راهنمایی کاربران در مسیر درست و کمک به آنها برای دستیابی به اهدافشان است. سعی کنید همیشه پاسخ‌های مفید و دقیق ارائه دهید.	- شخصی‌سازی: ببین طرف چه مشکلی داره و راه‌حل مخصوص خودش رو براش پیدا کن\n- کشف نیازها: با سؤالای هوشمندانه، مشکلات واقعی کاربر رو کشف کن، حتی اونایی که خودش هم شاید ندونه داره!\n- داستان‌گویی: از موفقیت‌های مشتری‌های قبلی بگو تا طرف بتونه خودشو جای اونا تصور کنه و بگه "منم می‌تونم!"\n- حل مشکل: تمرکزت روی حل مشکل واقعی کاربر باشه، نه اینکه فقط ویژگی‌های محصول رو ردیف کنی\n- صمیمیت و اعتماد: جوری حرف بزن که طرف احساس کنه با یه دوست قدیمی داره صحبت می‌کنه و بهت اعتماد کنه	- پاسخ‌ها رو جذاب نگه دار! انگار داری با دوستت حرف می‌زنی، راحت و صمیمی باش\n- تو هر پاسخت، حتماً یه سؤالی از کاربر بپرس که گفتگو ادامه پیدا کنه، خب؟\n- مشکلات احتمالی رو زرنگی کن و از قبل حدس بزن، جوابشون رو هم آماده داشته باش\n- از کلمات پرانرژی و احساسی استفاده کن که کاربر حسابی انگیزه بگیره و دست به کار شه\n	اطلاعات مرتبط با سوال کاربر (از این اطلاعات برای پاسخ استفاده کنید):\n{context}\n\nتاریخچه گفتگو:\n{chat_history}\n\nسوال کاربر: {question}\n\nپاسخ دستیار :	🌟 سلام و درود خدمت شما دوست عزیز 👋 خیلی خوشحالم که اینجا هستید! 😊 امیدوارم روز خوبی داشته باشید ✨ چطور میتونم امروز به شما کمک کنم؟ 🤔	کاربر دارای سطح مهارت {مهارت} است. با توجه به این سطح، محتوا را هرچه سطح مهارت بالاتر بود تخصصی‌تر و هرچه پایین‌تر ساده‌تر توضیح بده.	کاربر با سطح اشتیاق به خرید {اشتیاق} است. هرچه اشتیاق بالاتر باشد سوال‌هایی بپرس که مستقیم کاربر را به سمت خرید می‌برد و اگر پایین بود سعی کن با سوال‌هایی بپرسی که اعتراض‌ها و موانع خرید مشتری برطرف شود.	کاربر {وضعیت_خرید} است. اگر خریدار قبلی است سوالات را فنی‌تر پاسخ بده و اگر خریدار جدید است سوالاتی بپرس که نامحسوس او را به سمت خرید محصول هدایت کند.	برای پاسخگویی به سوالات، از شرکت‌های {لیست_شرکت_ها_و_مقدار_محبوبیت} استفاده کن. برای شرکت‌های محبوب‌تر اطلاعات دقیق‌تر و جزئیات بیشتری ارائه بده و برای شرکت‌های کم‌محبوب‌تر اطلاعات کلی‌تر و مختصرتری ارائه کن. اولویت پاسخگویی با شرکت‌های محبوب‌تر باشد.	2025-05-12 16:24:23.704
\.


--
-- Data for Name: Message; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."Message" (id, role, content, "conversationId", "isRead", "createdAt") FROM stdin;
\.


--
-- Data for Name: Product; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."Product" (id, plan, description, price, firm, "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: TelegramUser; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."TelegramUser" (id, "telegramId", username, "firstName", "lastName", balance, "lastInteraction", "consultingRequest", respondent, "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: UserBotState; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."UserBotState" (id, "telegramUserId", state, "selectedProductId", "selectedNetwork", "additionalData", "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: UserProduct; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."UserProduct" (id, "userId", "productId", "challengeStatus", "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: UserTicket; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."UserTicket" (id, "telegramUserId", content, checked, "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: UserTransaction; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."UserTransaction" (id, "telegramUserId", "transactionHash", network, value, status, "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: Wallet; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public."Wallet" (id, network, name, address, description, "createdAt", "updatedAt") FROM stdin;
\.


--
-- Data for Name: _prisma_migrations; Type: TABLE DATA; Schema: public; Owner: dante
--

COPY public._prisma_migrations (id, checksum, finished_at, migration_name, logs, rolled_back_at, started_at, applied_steps_count) FROM stdin;
fbca2082-ff04-4e1a-9bb3-6273c81d4519	d0b3890f476826bb9ce320d233285fe63c17cf5cf522ac8f6791f5fdcf990747	2025-05-24 13:41:35.490561+00	20250524134134_init	\N	\N	2025-05-24 13:41:35.237901+00	1
\.



--
-- Name: Conversation Conversation_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Conversation"
    ADD CONSTRAINT "Conversation_pkey" PRIMARY KEY (id);


--
-- Name: FirmDocument FirmDocument_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."FirmDocument"
    ADD CONSTRAINT "FirmDocument_pkey" PRIMARY KEY (id);


--
-- Name: GeneralDocument GeneralDocument_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."GeneralDocument"
    ADD CONSTRAINT "GeneralDocument_pkey" PRIMARY KEY (id);


--
-- Name: Literals Literals_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Literals"
    ADD CONSTRAINT "Literals_pkey" PRIMARY KEY (id);


--
-- Name: Message Message_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Message"
    ADD CONSTRAINT "Message_pkey" PRIMARY KEY (id);


--
-- Name: Product Product_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Product"
    ADD CONSTRAINT "Product_pkey" PRIMARY KEY (id);


--
-- Name: TelegramUser TelegramUser_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."TelegramUser"
    ADD CONSTRAINT "TelegramUser_pkey" PRIMARY KEY (id);


--
-- Name: UserBotState UserBotState_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserBotState"
    ADD CONSTRAINT "UserBotState_pkey" PRIMARY KEY (id);


--
-- Name: UserProduct UserProduct_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserProduct"
    ADD CONSTRAINT "UserProduct_pkey" PRIMARY KEY (id);


--
-- Name: UserTicket UserTicket_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserTicket"
    ADD CONSTRAINT "UserTicket_pkey" PRIMARY KEY (id);


--
-- Name: UserTransaction UserTransaction_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserTransaction"
    ADD CONSTRAINT "UserTransaction_pkey" PRIMARY KEY (id);


--
-- Name: Wallet Wallet_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Wallet"
    ADD CONSTRAINT "Wallet_pkey" PRIMARY KEY (id);


--
-- Name: _prisma_migrations _prisma_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public._prisma_migrations
    ADD CONSTRAINT _prisma_migrations_pkey PRIMARY KEY (id);


--
-- Name: Conversation_telegramChatId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "Conversation_telegramChatId_idx" ON public."Conversation" USING btree ("telegramChatId");


--
-- Name: Conversation_telegramUserId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "Conversation_telegramUserId_idx" ON public."Conversation" USING btree ("telegramUserId");


--
-- Name: Message_conversationId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "Message_conversationId_idx" ON public."Message" USING btree ("conversationId");


--
-- Name: TelegramUser_telegramId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "TelegramUser_telegramId_idx" ON public."TelegramUser" USING btree ("telegramId");


--
-- Name: TelegramUser_telegramId_key; Type: INDEX; Schema: public; Owner: dante
--

CREATE UNIQUE INDEX "TelegramUser_telegramId_key" ON public."TelegramUser" USING btree ("telegramId");


--
-- Name: UserBotState_telegramUserId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "UserBotState_telegramUserId_idx" ON public."UserBotState" USING btree ("telegramUserId");


--
-- Name: UserProduct_productId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "UserProduct_productId_idx" ON public."UserProduct" USING btree ("productId");


--
-- Name: UserProduct_userId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "UserProduct_userId_idx" ON public."UserProduct" USING btree ("userId");


--
-- Name: UserProduct_userId_productId_key; Type: INDEX; Schema: public; Owner: dante
--

CREATE UNIQUE INDEX "UserProduct_userId_productId_key" ON public."UserProduct" USING btree ("userId", "productId");


--
-- Name: UserTicket_telegramUserId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "UserTicket_telegramUserId_idx" ON public."UserTicket" USING btree ("telegramUserId");


--
-- Name: UserTransaction_telegramUserId_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "UserTransaction_telegramUserId_idx" ON public."UserTransaction" USING btree ("telegramUserId");


--
-- Name: UserTransaction_transactionHash_idx; Type: INDEX; Schema: public; Owner: dante
--

CREATE INDEX "UserTransaction_transactionHash_idx" ON public."UserTransaction" USING btree ("transactionHash");


--
-- Name: UserTransaction_transactionHash_key; Type: INDEX; Schema: public; Owner: dante
--

CREATE UNIQUE INDEX "UserTransaction_transactionHash_key" ON public."UserTransaction" USING btree ("transactionHash");


--
-- Name: Conversation Conversation_telegramUserId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Conversation"
    ADD CONSTRAINT "Conversation_telegramUserId_fkey" FOREIGN KEY ("telegramUserId") REFERENCES public."TelegramUser"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: Message Message_conversationId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."Message"
    ADD CONSTRAINT "Message_conversationId_fkey" FOREIGN KEY ("conversationId") REFERENCES public."Conversation"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: UserBotState UserBotState_telegramUserId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserBotState"
    ADD CONSTRAINT "UserBotState_telegramUserId_fkey" FOREIGN KEY ("telegramUserId") REFERENCES public."TelegramUser"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: UserProduct UserProduct_productId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserProduct"
    ADD CONSTRAINT "UserProduct_productId_fkey" FOREIGN KEY ("productId") REFERENCES public."Product"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: UserProduct UserProduct_userId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserProduct"
    ADD CONSTRAINT "UserProduct_userId_fkey" FOREIGN KEY ("userId") REFERENCES public."TelegramUser"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: UserTicket UserTicket_telegramUserId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserTicket"
    ADD CONSTRAINT "UserTicket_telegramUserId_fkey" FOREIGN KEY ("telegramUserId") REFERENCES public."TelegramUser"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: UserTransaction UserTransaction_telegramUserId_fkey; Type: FK CONSTRAINT; Schema: public; Owner: dante
--

ALTER TABLE ONLY public."UserTransaction"
    ADD CONSTRAINT "UserTransaction_telegramUserId_fkey" FOREIGN KEY ("telegramUserId") REFERENCES public."TelegramUser"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- Name: SCHEMA public; Type: ACL; Schema: -; Owner: dante
--

REVOKE USAGE ON SCHEMA public FROM PUBLIC;


--
--

